xiaobin66636 2024-03-15 21:27 采纳率: 77.8%
浏览 21
已结题

STC89C516与89C52有哪些寄存器不能通用?

STC89C52的那个寄存器89C516不能用,或者52的代码的那些地方要改成516的代码?

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-03-15 21:27
    关注

    xiaobin66636 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    对于STC89C516和89C52,有以下几个寄存器不能通用:

    1. ISP_CON 寄存器: STC89C516和89C52在使用ISP(In-System Programming,即在线编程)功能时,该寄存器的位定义不同,因此不能通用。在89C52中,ISP_CON寄存器用于配置ISP的相关参数。而在89C516中,该寄存器用于配置ISP和UART通讯的相关参数。因此,在编程时需要根据具体芯片型号来设置ISP_CON寄存器的位。

    2. AUXR 寄存器: STC89C516和89C52在使用AUXR寄存器(Auxiliary Register,辅助寄存器)时,该寄存器的某些位定义不同,因此不能通用。在89C52中,AUXR寄存器的位用于配置定时器0和定时器1的工作模式和时钟源等参数。而在89C516中,该寄存器的位用于配置中断优先级和外设的相关功能。在使用AUXR寄存器时,需要注意相关位的定义和使用方式。

    3. P_SW1 及 P_SW2 寄存器: 在89C516中,有两个特殊功能寄存器P_SW1和P_SW2,用于配置内部外设的映射。这些寄存器不存在于89C52中,因此不能通用。在使用89C516时,如果需要使用P_SW1和P_SW2寄存器来映射内部外设,需要注意其位定义和使用方式。

    为了使89C52的代码能够在89C516上运行,我们需要将一些相关代码进行修改:

    1. ISP_CON 寄存器的配置: 如果89C52代码中使用了ISP功能,并设置了ISP_CON寄存器的相关位,需要根据89C516寄存器描述手册的说明,修改相应的位定义。

    2. AUXR 寄存器的配置: 如果89C52代码中使用了AUXR寄存器,并设置了特定位,需要根据89C516寄存器描述手册的说明,修改相应的位定义。

    3. P_SW1 和 P_SW2 寄存器的进圈 : 如果89C52代码中涉及到P_SW1和P_SW2寄存器的配置,需要将相关代码注释掉或进行适当修改,因为这些寄存器在89C516中不存在。

    总结起来,要使89C52代码能够在89C516上运行,需要:

    1. 修改ISP_CON寄存器的配置,根据89C516寄存器描述手册修改相关位定义和设置。

    2. 修改AUXR寄存器的配置,根据89C516寄存器描述手册修改相关位定义和设置。

    3. 注意89C516特有的寄存器P_SW1和P_SW2的使用情况,避免在89C516上使用不存在的寄存器。

    请注意,以上列出的是一些可能需要修改的寄存器和相关代码,具体修改需根据具体应用和代码的实际情况进行。在进行任何修改之前,建议阅读89C516芯片的数据手册和相应的寄存器描述手册,以确保正确理解和使用寄存器功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月24日
  • 已采纳回答 3月16日
  • 创建了问题 3月15日