MCS-51内核衍生型单片机芯片及应用_第1页
MCS-51内核衍生型单片机芯片及应用_第2页
MCS-51内核衍生型单片机芯片及应用_第3页
MCS-51内核衍生型单片机芯片及应用_第4页
MCS-51内核衍生型单片机芯片及应用_第5页
已阅读5页,还剩189页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 MCS-51内核衍生型单片机芯片及应用5.1 89C51RX系列单片机概述5.2 P89C51RX系列芯片引脚功能5.3 P89C51RX系列芯片片内存储器结构 5.4 可编程计数器阵列PCA及其应用5.5 89C51RX系列中断控制系统5.6 硬件看门狗 5.7 P89C6XX2 系列简介*5.8 P89C66X系列简介5.9 SST公司SST89E(V)RD及SST89C5XRD2系列芯片 5.10 MCS-51兼容芯片的差异及其仿真 习题5 89C51RX系列单片机以增强型80C51作内核,其硬件资源、指令系统及引脚排列与相同封装形式的增强型MCS-51芯片保持100%兼容。与增

2、强型MCS-51相比,89C51RX系列的最大特点是扩展了片内存储器的种类和容量。在89C51RX系列芯片中程序存储器的容量最大可达64KB,片内RAM存储器容量为5121024 B,并集成了可编程计数器阵列PCA(完全兼容Intel 8XC51FX系列芯片内嵌的可编程计数器阵列)和硬件看门狗计数器WDT。可见,89C51RX系列芯片硬件资源丰富,一片89C51RX芯片即可构成一个功能相对完善的单片机应用系统。5.1 89C51RX系列单片机概述89C51RX系列包括Philips公司的P89C51RXXH系列(Philips公司第一代89C51RX系列芯片)、P89C51RXX 系列(Phi

3、lips公司第二代89C51RX系列芯片)、Atmel公司的89C51RX 系列(包括AT89C51RX、T89C51RX、TS87C51RX系列)以及SST公司的SST89E(V)554RC、SST89E(V)564RD和SST89E(V)5XRD2系列芯片。89C51RX系列芯片常见型号性能指标如表5-1所示。表5-1 89C51RX系列芯片常见型号性能指标 续表 1. Philips公司第一代P89C51RXXH系列芯片1999年3月,Philips 公司先后推出了以增强型80C51作内核的新一代8位单片机芯片P89C51RCH、P89C51RDH、P89C51RAH、P89C51RBH

4、、P89C51RA2H、P89C51RB2H、P89C51RC2H、P89C51RD2H等,这些芯片统称为第一代P89C51RX系列芯片,彼此之间只是片内存储器的种类、容量以及编程电压不同。P89C51RX系列芯片具有如下特点: (1) 采用增强型80C51内核,其硬件资源、封装形式及引脚排列、指令系统与增强型MCS-51芯片保持100%兼容,即P89C51RX系列完全可以替换具有相同封装形式的8XC5X、8XC5XX2系列芯片。 (2) 扩充了片内RAM存储器容量,在89C51RX内部,除了256 B的内部RAM外,还集成了256768 B的内部扩展RAM(简称ERAM)。为此,该系列芯片在

5、辅助功能存放器AUXR中增加了内部扩展RAM/外部RAM选择位EXTRAM。当EXTRAM位为0时,MOVX指令的读/写对象为内部扩展RAM;当EXTRAM位为1时,MOVX指令的读/写对象为外部RAM。(3) 集成了与Intel 8XC51FX系列芯片完全兼容的可编程计数器阵列PCA模块。(4) 可使用与 MCS-51相同的“12时钟/机器周期模式(在标准时钟模式下,晶振频率为033MHz),也可采用“6时钟/机器周期模式(晶振频率为020MHz,指令执行时间缩短一半)。(5) 内置了硬件看门狗计数器WDT。(6) 具有7个中断源(4个中断优先级)。2. Philips公司第二代P89C51

6、RX系列芯片2002年5月,Philips公司推出了第二代P89C51RX系列芯片,主要特征是器件型号中没有字母“H,与第一代P89C51RX系列芯片相比,做了如下改进:(1) 第一代P89C51RX芯片时钟模式配置位FX2的记录载体为OTP ROM,缺省时为6时钟模式,可编程为12时钟模式,但编程后不能再恢复为6时钟模式;而第二代P89C51RX系列芯片时钟模式配置位FX2的记录载体为Flash ROM,缺省时为12时钟模式,可编程为6时钟模式,且可以通过并行编程方式擦除,恢复为12时钟模式。(2) 增加了时钟模式控制存放器CKCON。即当FX2位处于擦除状态(未编程,FX2位为1)时,可通

7、过软件修改时钟控制存放器CKCON的X2位来选择系统时钟模式(但值得注意的是,位于Flash ROM保密字节内的系统时钟配置位FX2比CKCON存放器内的X2位优先,即当FX2位被编程后,X2位无效)。(3) 当CPU运行在“6时钟/机器周期模式时,可通过CKCON存放器选择外设时钟模式,如图5-1所示。图5-1 CKCON存放器各位含义当CPU运行在“12时钟/机器周期模式时,外设时钟固定为“12时钟/机器周期,与CKCON存放器外设时钟选择位无关。具体情况如表5-2所示。表5-2 第二代P89C51RX系列芯片CPU和外设时钟选择位的关系3. Atmel公司T89C51RX系统芯片Atme

8、l公司于2000年前后推出了以Flash ROM作为片内程序存储器的AT89C51RX系列、T89C51RX系列,以OTP ROM作为片内程序存储器的TS87C51RX系列芯片等。其中,AT89C51RX、T89C51RX芯片的硬件资源、引脚排列与P89C51RX系列保持100%兼容,但资源比P89C51RX系列多,主要表达在:(1) 局部型号的芯片,如AT89C51ED2、T89C51RX系列等,集成了2KB、可擦写10万次的E2PROM存储器,方便了系统参数的保存与修改。(2) AT89C51RX系列芯片局部型号,如AT89C51RC2、AT89C51RB2、AT89C51RD2集成了SP

9、I串行总线接口部件。(3) 在PLCC68封装、VQFP64封装的T89C51RX芯片中,增加了P4、P5两个8位I/O口,即I/O引脚数目为48根(6口8位)。(4) 工作电压范围宽。P89C51RX系列芯片的电源电压为(5.010%)V,而T89C51RX系列芯片的电源电压为3.05.5V,其低电压版本电源电压仅为2.73.6V。(5) 集成了溢出时间可调的硬件看门狗电路。(6) 改进了X2时钟模式,即在“6时钟/机器周期状态下,可以选择每一外设的时钟频率。在T89C51RX系列芯片内CKCON存放器各位的含义与Philips第二代P89C51RX系列芯片相同。(7) 可以选择外部RAM读

10、选通、写选通脉冲宽度。缺省状态下,读选通、写选通脉冲宽度为“6时钟/机器周期(与传统的MCS-51兼容),但在T89C51RX中,可以选择30时钟周期,以便读/写存取速度慢的外部RAM存储器。P89C51RX系列芯片具有PDIP40、PLCC44(CLCC44)、PQFP44三种封装形式,其引脚排列与相同封装形式的增强型MCS-51芯片保持兼容,如图5-2所示。由于P89C51RX比增强型MCS-51多了5个可编程计数器阵列PCA模块,因此P1口的P1.2P1.7引脚具有复用功能,既可作为一般I/O引脚使用,也可作为5个PCA模块的计数脉冲输入端和捕捉/比较模式外部输入/输出端。5.2 P89

11、C51RX系列芯片引脚功能图5-2 P89C51RX系列芯片封装形式及引脚排列(a) PDIP封装;(b) PQFP44封装;图5-2 P89C51RX系列芯片封装形式及引脚排列(c) LCC44封装在介绍89C51RX系列CPU内部资源前,先列出89C51RX系列芯片特殊功能存放器(或存放器位),如表5-3所示。5.3 P89C51RX系列芯片片内存储器结构表5-3 89C51RX系列特殊功能存放器续表一续表二5.3.1 片内程序存储器89C51RX系列芯片采用Flash ROM作为片内程序存储器,容量为864KB,无需通过EPROM、Flash ROM芯片扩展外部程序存储器,因此引脚接电源

12、VCC(或通过2.04.7k电阻接电源VCC)。可以在通用编程器上对89C51RX系列芯片编程,也可以用ISP、IAP方式进行编程。5.3.2 片内数据存储器P89C51RX系列芯片的数据存储器包括片内RAM和外部RAM两大局部,其中片内RAM存储器包括256B的内部RAM(与增强型MCS-51芯片相同)和256768B的内部扩展RAM(即ERAM),其存储器结构如图5-3所示。图5-3 P89C51RX/87C51RX系列芯片数据存储器结构256B内部RAM、外部RAM读/写方法与增强型MCS-51相同;内部扩展RAM地址空间与外部RAM地址空间重叠,也通过MOVX指令读/写。为了区别MOV

13、X指令的读/写对象是内部扩展RAM,还是外部RAM,在89C51RX系列辅助功能存放器AUXR中增加了EXTRAM选择位。当EXTRAM为0时,MOVX指令读/写对象为内部扩展RAM;当EXTRAM为1时,MOVX指令读/写对象为外部RAM。由于复位时,AUXR存放器内容为xxxxxx00B,因此复位后,MOVX指令读/写对象为内部扩展RAM。当需要读/写外部RAM时,需通过如下指令将EXTRAM位置1。ORL AUXR,#00000010B;由于AUXR存放器不具有位寻址功能,只能通过“或指令;将指定位置1MOV DPTR,#xxxxH;外部RAM地址送DPTRMOVX A,DPTR;读外部

14、RAM单元内容在读/写内部扩展RAM期间,P0、P2口及、引脚无效,因此当以R0或R1作为间接寻址存放器读/写内部扩展RAM时,只能访问扩展RAM的低256B。例5.1 试编写一段程序,将外部RAM中2000H200FH单元内容送内部扩展RAM的0000H000FH单元。参考程序如下:MOV DPTR,#2000H;外部RAM单元首地址送DPTRMOV R7,#10H;传送字节数送R7INC AUXR1;切换数据指针MOV DPTR,#0000H;将内部扩展RAM首地址送另一数据指针LOOP:INC AUXR1;切换数据指针,使DPTR指向外部单元ORL AUXR,#00000010BMOVX

15、 A,DPTR;读外部RAM单元内容AccINC DPTR;指向外部RAM下一单元INC AUXR1;切换数据指针,使DPTR指向内部扩展RAMANL AUXR,#11111101B;EXTRAM位清零,使MOVX指令读/写对象为ERAMMOVX DPTR,A;数据送内部扩展RAMINC DPTR;指向内部扩展RAM下一单元DJNZ R7,LOOP;R7不为0循环P89C51RX系列可编程计数器阵列PCA含有5个结构相同的16位比较/捕捉计数器,每个模块均可以编程为捕捉模式、软件定时器模式、高速输出模式和脉宽调制(PWM)模式,此外模块4还可作为看门狗定时器WDT使用,如图5-4所示。5.4

16、可编程计数器阵列PCA及其应用图5-4 可编程计数器阵列PCA5.4.1 PCA内部结构及其控制电路在P89C51RX系列芯片中,为简化硬件结构,PCA单元电路内五个计数模块共用一个16位加法计数器(CH和CL)作为计时基准,计数脉冲的来源由PCA模式存放器CMOD的CPS1、CPS0位决定,允许/禁止PCA计数器计数那么由PCA控制存放器CCON的CR位控制。PCA计数器及其控制电路如图5-5所示。图5-5 PCA计数器及其控制电路PCA中断控制逻辑如图5-6所示。当某一模块产生捕捉(将PCA计数器捕捉到相应模块的比较/捕捉存放器中)或匹配( PCA计数器与相应模块比较/捕捉存放器内容相等)

17、时,CCON存放器相应模块匹配/捕捉标志位CCFn置1,能否产生PCA中断请求由相应模块的ECCFn位控制。图5-6 PCA中断控制逻辑由图可见,PCA单元内6个中断标志位相“或后作为一个中断源,共用同一中断开关EC,中断入口地址为0033H。下面介绍在89C51RX系列单片机内,与可编程计数器阵列PCA有关的特殊功能寄存器。1. PCA模式存放器PCA模式存放器CMOD各位含义如下:(1) ECFPCA计数器CH/CL溢出中断允许。当PCA计数器溢出时,PCA控制存放器CCON的溢出标志位CF有效。如果ECF1,且中断允许存放器IE的EC、EA位为1,那么CPU将响应PCA计数器的溢出中断。

18、(2) CPS1、CPS0用于选择PCA计数器计数脉冲来源。PCA内五个模块共用一个16位加法计数器(CH和CL),计数脉冲来源由CMOD存放器的CPS1、CPS0位决定,具体如表5-4所示。表5-4 由CPS1、CPS0位决定的计数脉冲源(3) WDTE禁止/允许模块4看门狗工作。(4) CIDL节电状态下PCA运行控制。当CIDL0时,在节电状态下,PCA计数器继续计数(图5-5中与非门输出恒为1,与PCON存放器节电运行控制位IDL无关);当CIDL1时,在节电状态下,PCA计数器停止计数(由于CIDL位为1,图5-5中与非门输出状态由PCON存放器节电运行控制位IDL决定,当IDL位为

19、1时,与非门输出为0,PCA计数器停止计数)。2. PCA计数器16位加法计数器(CH和CL)的计数脉冲由CMOD存放器的CPS1、CPS0位定义,每来一个脉冲,计数器加1,当CH溢出时,CCON存放器内的溢出标志CF置位。3. PCA控制存放器PCA控制存放器CCON(具有位地址)各位含义如下:(1) CCF0CCF4分别是模块04的中断标志位。当产生匹配(比较)或捕捉时由硬件置1。但CPU响应PCA中断请求后,不能自动去除,需要通过软件清零。(2) CRPCA计数器启动控制位。在正常状态下,CR1时,计数脉冲开关闭合,每来一个计数脉冲,计数器加1;当CR0时,PCA计数器停止计数。(3)

20、CFPCA计数器溢出标志。当PCA计数器溢出时,CF自动置1(CF不能自动去除,需要通过软件清零)。4. PCA模块比较/捕捉存放器和工作方式存放器PCA中的每一模块对应一个16位比较/捕捉存放器(即高8位CCAPnH和低8位CCAPnL)和一个模块工作方式存放器CCAPMn。每一模块的工作方式由对应模块的工作方式存放器CCAPMn决定,如模块0的工作方式由模块0的工作方式存放器CCAPM0决定,模块1的工作方式由模块1的工作方式存放器CCAPM1决定,依此类推,模块4的工作方式由模块4的工作方式存放器CCAPM4决定。模块工作方式存放器CCAPM0CCAPM4的结构及各位含义相同,如下所示:

21、ECOMn比较器允许/禁止位。CAPPn上升沿捕捉允许/禁止位。CAPNn 下降沿捕捉允许/禁止位。MATn匹配允许/禁止位。如果MATn1,那么当PCA计数器当前值与对应模块的比较/捕捉存放器相同时,将CCON存放器中对应的中断标志位置1。TOGn触发输出允许/禁止位。如果TOGn1,那么当PCA计数器当前值与对应模块的比较/捕捉存放器相同时,触发相应模块的CEX引脚翻转。PWMn脉冲宽度调制允许/禁止位。ECCFn允许/禁止CCF中断。CCAPMn存放器定义的模块工作方式如表5-5所示。表5-5 PCA模块工作方式5.4.2 PCA模块初始化步骤PCA模块初始化步骤如下:(1) 初始化PC

22、A模式存放器CMOD,选择PCA计数器计数脉冲源、允许/禁止节电状态下PCA计数器计数、允许/禁止PCA计数器溢出中断。(2) 计数初值送CH/CL,完成PCA计数器CH/CL的初始化。(3) 初始化相应模块的工作方式存放器CCAPMn,选择所需的工作模式。(4) 初始化相应模块的比较/捕捉存放器(CCAPnL,CCAPnH)。注意:必须先初始化低8位CCAPnL,后初始化高8位CCAPnH,否那么会关闭模式存放器CCAPMn的ECOMn位(或者说完成CCAPnH存放器初始化后,比较器使能控制位ECOMn自动置1)。(5) 启动PCA计数器(即执行“SETB CR指令,将CCON存放器的CR位

23、置1)。5.4.3 PCA模块工作模式1. 捕捉模式当CCAPMn存放器的CAPP(上升沿捕捉)或CAPN(下降沿捕捉)为1,而其他位为0时,相应的PCA模块就工作于捕捉模式,如图5-7所示。对于下降沿捕捉来说,当CEXn引脚出现由高到低电平变化时,那么将PCA计数器(CH,CL)的当前值捕捉(即写入)到相应模块的比较/捕捉存放器(CCAPnH,CCAPnL)中;对于上升沿捕捉来说,当CEXn引脚出现由低到高电平变化时,那么将PCA计数器(CH,CL)的当前值捕捉到相应模块的比较/捕捉存放器(CCAPnH,CCAPnL)中。在发生捕捉时,CCON存放器对应的中断标志位CCFn自动置1,如果相应

24、的CCAPMn存放器的ECCFn位为1,将产生PCA中断请求。图5-7 捕捉模式对于捕捉模式来说,可以使用CEXn引脚的下降沿触发,也可以使用上升沿触发,或者双触发(即上升沿、下降沿均触发)方式。捕捉模式常用于测量CEXn引脚上的脉冲周期及两信号相位差等。2. 软件定时器模式当PCA模式存放器CMOD的WDTE位为0,而PCA模块工作方式存放器CCAPMn的MATn位为1(否那么匹配时相应CCFn位不置1,无法通过查询或中断方式确定定时时间到),其他位为0时,相应的PCA模块工作于软件定时器模式,定时时间由CH/CL初值和模块比较/捕捉存放器(CCAPnH、CCAPnL)决定,如图5-8所示。

25、完成比较/捕捉存放器高8位CCAPnH的装入后,ECOM位置1,比较即处于允许状态。当PCA计数器等于模块比较/捕捉存放器(即发生匹配)时,CCON存放器的相应标志位CCFn即有效,如果ECCFn位为1,将产生PCA中断请求。当PCA模块工作于软件定时模式时,不影响相关引脚的状态,即相应CEXn引脚依然可作为I/O引脚使用。图5-8 PCA软件定时器模式在软件定时方式中,匹配时可产生中断,但不会自动重装。因此当需要重复的定时间隔时,只能通过重写CH、CL计数器实现(这种做法可能影响其他模块的定时,此外当需要精确的重复定时信号时,必须考虑中断响应的延迟时间)。例如,可通过如下指令将模块1初始化为

26、软件定时器模式。MOV CCAPM1,#00001001B;MAT1位为1,匹配时中断标志位置1;ECCF1为1,;允许模块1中断 MOV CCAP1L,#00H;初始化模块1比较/捕捉存放器的低8位MOV CCAP1H,#40H;初始化模块1比较/捕捉存放器的高8位;或者说完成CCAPnH寄存器初始化后,比较使能控制位;ECOMn自动置1以上指令顺序不能颠倒,因为在执行“MOV CCAP1L,#00H指令时,ECOM1被硬件清零,禁止比较/捕捉存放器工作。3. 高速输出模式高速输出模式也是一种软件定时方式。在高速输出模式中,如果模块控制存放器CCAPMn的TOG位为1,那么匹配(定时时间到)

27、时,将触发CEXn引脚状态翻转。当MATn、ECCFn位为1时,触发引脚翻转的同时将产生PCA中断请求,如图5-9所示。使用PCA模块高速输出模式触发引脚状态翻转获得的定时信号比使用软件定时器模式在中断效劳程序中通过“CPL P1.X指令获得的定时信号要精确得多。图5-9 高速输出模式4. 8位PWM输出模式8位PWM输出模式的结构如图5-10所示。当CCAPMn存放器的内容为01000010B(即42H)时,对应模块工作于8位PWM输出模式:当CL(PCA计数器低8位)小于比较/捕捉存放器低8位CCAPnL时,对应的CEXn引脚输出低电平;当CL大于等于比较/捕捉存放器低8位CCAPnL时,

28、对应的CEXn引脚输出高电平。在PWM输出模式中,CL计数器溢出时,自动将比较/捕捉存放器的高8位CCAPnH装入比较/捕捉存放器的低8位初值CCAPnL(即溢出时重装新的比较值)。图5-10 8位PWM输出模式显然,PWM脉冲低电平时间为CCAPnLPCA计数器脉冲源周期,PWM脉冲高电平时间为(256CCAPnL)PCA计数器脉冲源周期,而PWM脉冲周期等于256PCA计数器脉冲源周期。可见,脉冲宽度比受模块比较/捕捉存放器低8位CCAPnL控制,因此称为脉冲宽度调制。由于5个模块共用同一计数器,因此各模块输出的PWM脉冲的周期相同,但只要各模块比较/捕捉存放器的内容不同,各模块输出的PW

29、M脉冲宽度就不同,如图5-11所示。图5-11 各模块输出的PWM脉冲波形例5.2 假设时钟频率为16MHz,在“6时钟/机器周期模式下,利用PCA的PWM输出模式产生如图5-12所示的半桥式脉冲宽度调制变换器开关电源所需的鼓励信号。分析:在半桥式开关电源中,两开关管交替导通,为了防止两管同时导通造成过流损坏,要求两管同时截止35 s,如图5-12中的时间T1。鼓励信号脉宽为T2,周期T2T12T2。控制时间T1、T2的相对长短即可控制输出电压的大小:当输出电压偏低时,T2增加,T1减小;当输出电压偏高时,T2减小,T1增加。图5-12 半桥式开关电源鼓励信号由于PCA中5个模块共用同一PCA

30、计数器,只用两个模块无法获得如图5-12所示的鼓励信号,因此可以使用三个模块。其中,模块0输出脉冲低电平时间为2T1T2,高电平时间为T2;模块1输出脉冲低电平时间为T1,高电平时间为T12T2;模块2输出脉冲低电平时间为T1T2,高电平时间为T1T2(即模块2输出方波),如图5-11所示。这样模块0输出信号就是V1;而,如图5-13所示,其反相信号 、 可直接作为与鼓励变压器初级绕组相连的三极管基极驱动信号。图5-13 利用89C51RX脉冲宽度调制获得的半桥式开关电源鼓励信号参考程序如下:;PCA初始化MOV CMOD,#00000010B;CIDL0,节电状态下停止PCA计数;计数脉冲频

31、率为;fOSC/2,即8MHz;禁止PCA溢出中断。PWM周期为;2560.125s,即32s,频率为31.25kHzMOV CH,#00HMOV CL,#00HMOV CCAP0L,#50H;假设正常情况下,T210 s,即初值为80MOV CCAP0H,#50HMOV CCAP1L,#30H;假设正常情况下,T16 s,即初值为48MOV CCAP1H,#30HMOV CCAP2L,#80H;模块2输出方波,初值固定为128MOV CCAP2H,#80HMOV CCAPM0,#42H;PCA模块0工作于PWM模式MOV CCAPM1,#42H;PCA模块1工作于PWM模式MOV CCAPM

32、2,#42H;PCA模块2工作于PWM模式SETB CR;启动PCA计数器5. 看门狗模式如果PCA模式存放器CMOD的WDTE位为1,且模块4的模式存放器CCAPM4为01001x0 xB时,那么模块4工作于看门狗状态,如图5-14所示。将初值写入模块4的比较/捕捉存放器高8位后,模块4的模式存放器CCAPM4的ECOM4位即为1(允许比较),看门狗定时器就开始工作。当PCA计数器等于模块4的比较/捕捉存放器时,高电平的匹配输出信号将触发CPU内部复位操作(与硬件看门狗WDT不同,PCA模块4看门狗仅引起CPU内部复位,但不将CPU的复位引脚RST置高电平)。图5-14 看门狗模式为了防止正

33、常操作时PCA模块4看门狗复位,必须周期性地重写模块4的比较/捕捉存放器的初值,使模块4的比较/捕捉存放器与PCA计数器不等(尽管周期性地重写PCA计数器初值,同样可以到达PCA计数器与模块4比较/捕捉存放器不等的目的,但这势必会影响其他模块的工作,因为5个模块共用同一计数器CH/CL,除非只使用了PCA模块4的看门狗功能)。通过如下指令初始化PCA模块4,可使其工作于看门狗模式:MOV CCAPM4,#00001000B;模块4模式存放器CCAPM4的MAT位为1MOV CCAP4L,#0FFH;初始化模块4比较存放器低8位MOV CCAP4H,#0FFH;初始化模块4比较存放器高8位,同时

34、自动将CCAPM4的;ECOM位置1,使能比较器ORL CMOD, #40H;将CMOD的WDTE位置1,允许看门狗工作下面是在主程序中重写模块4比较/捕捉存放器CCAP4H、CCAP4L以防止PCA看门狗复位的子程序:PCAWDT:CLR EA;先禁止中断,以防止重写模块4比较/捕捉存放器时产生中断MOV CCAP4L,#00H;把00H写入CCPA4LMOV CCAP4H,CH;把PCA计数器当前值高位CH写入CCAP4HSETB EA;开中断RET;返回由于PCA计数器不停,主程序调用该子程序后,PCA计数器一定略大于模块4的比较/捕捉存放器,因此,只要主程序以略小于PCA的溢出周期调用

35、该子程序就能防止PCA看门狗触发CPU复位。但必须注意的是,不能在定时器中断效劳程序内调用上面的子程序,因为即使是热冲击、干扰等原因引起PC“走飞,造成系统瘫痪后,仍可能响应定时中断,使PCA看门狗不能触发复位操作,恢复系统运行。89C51RX系列中断控制系统与增强型MCS-51系列相同,但由于89C51RX系列内嵌了PCA计数阵列,因此89C51RX系列具有7个中断源(6个增强型MCS-51中断源1个PCA中断源)。89C51RX系列使用增强型MCS-51的中断控制存放器IE、中断优先级控制存放器IP和IPH中的保存位分别作为PCA的中断允许位和优先级控制位,PCA中断入口地址规定为0033

36、H。即在89C51RX系列中IE存放器的b6位是PCA中断允许/禁止控制位,IP、IPH的b6位是PCA中断优先级控制位,如图5-15所示。5.5 89C51RX系列中断控制系统图5-15 89C51RX中断控制存放器IE及优先级IPH、IP(a) 中断控制存放器IE;(b) 中断优先级IP;(c) 中断优先级高位IPH在同优先级中断中,硬件查询顺序如下:中断源入口地址外中断0003H定时器T0溢出中断000BH外中断0013H定时器T1溢出中断001BHPCA计数器中断0033H串行口中断0023H定时器T2中断002BH单片机主要用于工业控制,其工作环境比较恶劣,如温度波动大、电磁干扰严重

37、等,这样容易引起程序计数器PC“走飞,造成系统失灵。因此,在硬件上采用“看门狗技术,复位处于失控状态的系统,使其正常工作就显得尤为必要。对于没有内置硬件看门狗计数器的单片机芯片,如8XC5X系列,必要时应加外置看门狗计数器电路(参见第2、7章有关内容)。5.6 硬件看门狗89C51RX具有“一次使能带有复位输出的硬件看门狗计数器(简称WDT)电路,它主要由一个14位的看门狗计数器WDT和看门狗定时器复位存放器WDTRST组成。其中WDT计数器既不能读也不能写,启动后每个机器周期WDT加1(WDT启动后,除复位外,没有其他方法使WDT停止计数)。当WDT计数器溢出时,强迫CPU进入复位状态,同时

38、在RST引脚上输出一个高电平的复位脉冲,使系统内与CPU复位引脚RST相连的其他外围芯片,如并行接口芯片8255、8155等复位。在“6时钟/机器周期模式下,RST引脚上的高电平复位脉冲持续时间为98个时钟周期;而在“12时钟/机器周期模式下,高电平复位脉冲持续时间为298,即196个时钟周期,以保证外围电路芯片可靠复位。为了防止正常操作时因WDT计数器溢出而造成的系统复位,必须在小于214(16384)个机器周期内(如果系统时钟频率为12MHz,对于“12时钟/机器周期模式来说,1个机器周期为1 s,16384个机器周期就是16.384 ms)对看门狗复位存放器WDTRST (字节地址为0A

39、6H)顺序写入1EH和0E1H,强迫看门狗计数器WDT复位(这是防止看门狗计数器WDT溢出的惟一方法)。可通过如下方法启动和强迫看门狗计数器复位并重新计数:MOV WDTRST, #1EH;写入立即数1EHMOV WDTRST,#0E1H;写入立即数0E1H,启动WDT功能在程序中适当的位置插入这两条指令,即可强迫WDT复位并重新计数,以防止溢出。当PC“走飞时,将不能按时执行上述两条指令,经过16384个机器周期后,WDT计数器溢出,强迫CPU及其他可编程芯片复位,重新执行程序,恢复系统的运行。尽管在从“走飞到WDT溢出前、复位操作期间以及复位后执行系统初始化命令时,系统处于非正常工作状态,

40、但这段时间不长,这在许多应用系统,如各种监控设备中是允许的。由于在掉电模式下,系统时钟停止输出,因此WDT计数器也停止计数,不会产生匹配。对于增强型MCS-51内核芯片来说,硬件复位或外中断均能使CPU退出掉电状态。当通过复位方式退出掉电状态时,无需考虑WDT溢出,因为CPU复位后WDT也被复位。但对于通过外中断退出掉电状态来说,必须保证退出掉电状态后的几个机器周期内WDT不会溢出,从而触发CPU复位。为此,可在进入掉电状态前和掉电中断效劳程序中执行上述两条指令,强迫WDT复位并重新计数,这样至少要经过16384个机器周期后WDT才溢出,以便CPU有足够的时间执行掉电中断效劳程序。参考程序如下

41、:MOV WDTRST,#1EH;写入立即数1EHMOV WDTRST,#0E1H;写入立即数0E1H,强迫WDT重新计数ORL PCON,#02H;使PCON存放器的PD位为1,强迫机器进入掉电状态由于在节电模式下,系统时钟电路仍在工作,即WDT计数器仍在计数。为了防止WDT溢出而复位CPU,在进入节电模式前除了执行写WDTRST存放器外,还需启动一个定时器(定时时间小于16384个机器周期),在定时器中断效劳程序中执行写WDTRST存放器命令,使WDT计数器复位,然后再进入节电状态,例如:MOV WDTRST,#1EH;写入立即数1EHMOV WDTRST,#0E1H;写入立即数0E1H,

42、强迫WDT重新计数ANL TMOD,#0F0HORL TMOD,#01H;这里用定时器T0作为节电状态下重写WDTRST存放器的定时器,;工作在方式1,软件启动 MOV TLO,#80HMOV THO,#0C1H;假设晶振频率为12MHz,在12时钟模式下,为保险起见将定时;器T0溢出时间设为16.0ms,因此对应的初值为0C180HSETB ET0;允许定时器T0中断SETB EA;开中断SETB TR0;启动定时器T0ORL PCON,#01H;将PCON存放器IDL位置1,使CPU进入节电状态定时器T0的中断效劳程序: TIME0:PUSH PSWMOV TLO,#80HMOV THO,

43、#0C1H;重装初值MOV WDTRST,#1EH;写入立即数1EHMOV WDTRST,#0E1H;写入立即数0E1H,强迫WDT复位并重新计数ORL PCON,#01H;将PCON存放器IDL位置1,使CPU再进入节电状态POP PSWRETI执行以上程序时必须在其他中断效劳程序中关闭节电重写WDTRST存放器的定时器T0,以防止正常运行状态下响应T0中断造成WDT失效。可见,硬件看门狗和PCA模块4看门狗各有优缺点:硬件看门狗溢出不仅触发CPU复位,同时在RST引脚输出高电平复位脉冲,这适合于系统中含有需要同步复位的其他外设芯片,但硬件看门狗定时时间短(仅为16384个机器周期),且不可

44、变;PCA模块4看门狗的定时时间与PCA计数脉冲周期以及比较/捕捉存放器CCAP4H、CCAP4L的初值有关,选择不同的初值即可获得不同的定时时间,灵活性大,但PCA模块4看门狗仅能复位CPU,不能输出复位脉冲,这适合于系统中没有需要同步复位的外设芯片(当然可通过软件延迟方式,使用CPU某一I/O引脚输出单脉冲信号,作为系统内其他芯片的复位信号)。2002年4月,Philips公司推出了P89C6XX2系列芯片,该系列芯片实际上是P89C51RX芯片的简化版,功能介于P89C5XX2系列和P89C51RX系列之间。与P89C51RX系列相比,P89C6XX2系列芯片最大的特点是去掉了PCA模块

45、(相应地也就没有与PCA模块有关的特殊功能存放器);而与P89C5XX2系列相比,P89C6XX2系列芯片片内程序存储器容量大(64KB),且集成了256768B的片内扩展RAM(即ERAM,其读/写方法与P89C51RX相同)。5.7 P89C6XX2 系列简介P89C6XX2系列硬件资源、引脚排列和指令系统与P89C5XX2保持100%兼容。该系列主要包括P89C60X2(64KB Flash ROM、256字节内部RAM256字节的片内扩展RAM)和P89C61X2(64KB Flash ROM、256字节内部RAM768字节的片内扩展RAM)芯片,适合于需要少量数据存储器的单片机应用系

46、统。由于P89C60X2/61X2带有片内扩展RAM,与P89C5XX2系列相比,辅助存放器AUXR各位含义与P89C51RX相同,也是通过EXTRAM控制位现实内部扩展RAM与外部RAM之间的切换。其他方面,如硬件资源、特殊功能存放器(位)地址及各位含义与P89C5XX2系列完全相同,这里不再重复介绍。P89C66X系列芯片包括了P89C660、P89C662、P89C664和P89C668四款芯片,它们之间的差异仅仅是片内程序存储器和片内扩展RAM容量的不同,其中P89C660含有16KB的片内程序存储器,256字节片内扩展RAM;P89C662含有32KB的片内程序存储器,768字节片内

47、扩展RAM;P89C664含有64KB的片内程序存储器,1792字节片内扩展RAM;P89C668含有64KB的片内程序存储器,7936字节片内扩展RAM。*5.8 P89C66X系列简介P89C66X系列硬件资源与P89C51RX系列根本相同,惟一的区别是:P89C66X系列加大了片内RAM的容量,其中P89C668片内RAM容量为8KB,扣除与标准80C52系列兼容的可直接寻址的256字节内部RAM后,片内扩展RAM容量高达7936字节。该系列还增加了I2C总线功能,因此增加了与I2C总线控制有关的特殊功能存放器,相应的中断数量也增加到8个。5.8.1 封装形式及引脚功能P89C66X系列

48、采用PLCC44、PQFP44两种封装形式,引脚排列与相同封装形式的P89C51RX系列兼容,惟一的区别是P89C66X系列集成了I2C总线接口单元电路,因此P1.6、P1.7引脚具有复用功能,既可以作为P1口I/O引脚使用,也可以作为I2C总线时钟信号SCL和数据线SDA,如下所示:P1.6/SCL;漏极开路。P1口I/O引脚(输入/输出);I2C总线同步时钟信号(当处理器作为;主器件时,输出;当处理器作为从器件时,输入)P1.7/SDA;漏极开路。P1口I/O引脚(输入/输出);I2C总线数据/地址线,双向5.8.2 PCA模块P89C66X系列内的PCA模块功能与P89C51RX系列兼容

49、,惟一的区别是PCA模块局部特殊功能存放器的地址不同,如表5-6所示。表5-6 与P89C51RX系列PCA模块地址不同的存放器5.8.3 中断系统由于P89C66X系列增加了I2C总线接口单元电路,因此中断源的数量增加到8个,即多了I2C总线中断标志位SI,需要9个中断允许/禁止控制位,因此P89C66X系列与中断控制有关的特殊功能存放器比P89C51RX系列多,具体如下:1. 中断允许控制存放器(IEN0和IEN1)P89C66X系列中断允许控制存放器(IEN0和IEN1)各位含义如图5-16所示。在P89C66X系列中,中断控制存放器IEN0相当于增强型MCS-51系列的IE存放器,但I

50、2C总线中断允许位占用了定时器T2的中断允许位,而将定时器T2的中断允许位ET2放在IEN1存放器中。图5-16 P89C66X中断允许控制存放器(a) 存放器IEN0;(b) 存放器IEN12. 中断优先级控制存放器(IP和IPH)P89C66X系列中断优先级控制存放器(IP和IPH)各位含义如图5-17所示。在同优先级中断源中,中断效劳程序入口地址如表5-7所示。图5-17 P89C66X系列中断优先级控制存放器(a) 存放器IP;(b) 存放器IPH表5-7 同优先级中断入口地址可见,在P89C66X系列中,中断优先级控制存放器IP、IPH与增强型MCS-51系列IP、IPH根本相同,但

51、I2C总线中断优先级占用了原定时器T2的中断优先级,而将定时器T2中断优先级放在IP、IPH的b7位。同时,I2C总线中断效劳程序入口地址也占用了增强型MCS-51系列定时器T2中断效劳程序的入口地址,即在P89C66X系列中,定时器T2的功能没有变化,但中断允许、优先级、入口地址均有变化。P89C66X系列的同优先级中断查询顺序与P89C51RX系列的略有区别:在P89C51RX系列中,PCA中断优先级高于串行口中断,定时器T2优先级最低,而在P89C66X系列中,PCA中断优先级最低。5.9.1 SST89E(V)系列芯片概述1. SST89E(V)系列芯片的特点SST(Silicon S

52、torage Technology)公司SST89E(V)系列80C51内核芯片包括了SST89E554RC、SST89V554RC、SST89E564RD、SST89V564RD、SST89E554A以及SST89E(V)5XRD/RD2系列芯片,与Philips、Atmel公司的89C51RX系列兼容性好(内置的5个模块可编程计数器阵列PCA与P89C51RX系列完全兼容),但功能更强(功能及技术指标与Philips公司的P89V51RD2、P89LV51RD2相似),价格更低。5.9 SST公司SST89E(V)RD及SST89C5XRD2系列芯片SST89E(V)系列芯片与89C51R

53、X系列芯片的主要差异如下:(1) SST89E(V)系列芯片大局部型号集成了SPI总线接口。(2) SST89E(V)系列芯片硬件看门狗溢出时间可调,而P89C51RX系列芯片内置的硬件看门狗属于“一次使能复位输出,溢出时间不可调。(3) SST89E(V)系列芯片提供了软件复位功能,并内置了掉电检测电路,而P89C51RX系列芯片只有上电检测电路。(4) 两者的程序存储器结构略有不同,SST89E(V)系列芯片将程序存储器分为两大块,即Block0和Block1,支持ISP和单字节写入的IAP编程,理论上可作E2PROM存储器使用。但由于程序存储器只支持扇区(容量为128字节)擦除,没有单字

54、节擦除功能,因此当需要重写扇区内任意一已编程字节时,需先将该扇区内所有字节读到内部扩展RAM中,修改后,执行扇区擦除操作,再整体写入。换句话说,需采用“读改擦除写入方式完成。(5) SST89E(V)系列芯片预置了ISP编程引导指令码,通过PC串行口即可实现代码下载,无需专用编程器,芯片出厂前已将ISP编程引导指令码写入Block1块的前4 KB(旧型号为前2 KB)空间内。因此,最好不要擦除Bolck1块的前4KB代码,以免失去ISP编程功能(意外删除ISP编程引导码后,只能通过并行编程器重新写入)。(6) SST89E(V)系列所有型号芯片均集成了768字节的ERAM,读/写方式与P89C

55、51RX、P89C6XX2相同。2. SST89E(V)系列不同型号芯片之间的差异SST89E554A、SST89E(V)5XRD、SST89E(V)5XRD2系列芯片(包括了SST89E(V)52RD/ RD2、SST89E(V)54RD/RD2、SST89E(V)58RD/RD2、SST89E(V)516 RD/RD2等芯片)与SST89E(V)564RD、SST89E(V)554RC完全兼容,可直接替换相同存储器容量的SST89E(V)系列芯片,彼此之间的区别在于:PLCC及44-lead TQFP封装的SST89C5XRD2系列芯片提供了一个4位的P4口(P4.3P4.0)及两个外部输

56、入端(、),因此SST89E(V)5XRD2系列芯片中断源总数为10个。而SST89E(V)5XRD系列没有P4口,即SST89E(V)58RD与SST89E(V)554RC、SST89E(V)516RD与SST89E(V)564RD相同。DIP、PLCC封装的SST89E(V)系列芯片引脚排列如图5-18所示。图5-18 SST89E(V)系列芯片引脚排列(1)图5-18 SST89E(V)系列芯片引脚排列(2) (a) DIP封装;(b) PLCC44封装(SST89E(V)554/564);(c) PLCC44封装(SST89E(V)5XRD2)3. SST89E(V)系列新增特殊功能存

57、放器(位)为方便查阅和使用,表5-8列出了SST89E(V)系列新增的特殊功能存放器及存放器位。表5-8 SST89E(V)系列新增特殊功能存放器及存放器位续表5.9.2 SST89E(V)系列芯片的程序存储器结构及映像SST89E(V)564RD、SST89E(V)554RC、SST89E554A、SST89E(V)5XRD2等芯片的Flash ROM程序存储器由Block0(64KB/32KB/16KB/8KB)和Block1(8KB)组成,支持ISP及单字节写入的IAP编程方式,可作数据存储器使用。这类芯片的每个存储器块被分成假设干个扇区,每个扇区的容量为128字节。对于SST89E(V

58、)564RD、SST89E(V)516RD2芯片来说,程序存储器实际容量为72KB,其中Block0容量为64KB,物理地址为0000HFFFFH;Block1容量为8KB,物理地址为10000H11FFFH。但因PC指针只有16位,所以最大寻址范围为64KB,这就涉及到存储器Block0、Block1的重定位问题。对于SST89E(V)554RC、SST89E(V)554A、SST89E(V)58RD2芯片来说,程序存储器实际容量为48KB,其中Block0容量为32KB,物理地址为0000H7FFFH;Block1容量为8KB,物理地址为E000HFFFFH。对于SST89E(V)54RD

59、2芯片来说,程序存储器实际容量为24KB,其中Block0容量为16KB,物理地址为0000H3FFFH;Block1容量为8KB,物理地址为E000HFFFFH。对于SST89E(V)52RD2芯片来说,程序存储器实际容量为16KB,其中Block0容量为8KB,物理地址为0000H1FFFH;Block1容量为8KB,物理地址为E000HFFFFH。当Block0容量小于64KB时,尽管Block1在PC指针寻址范围内,但同样允许存储器Block0、Block1重定位。在SST89E(V)系列单片机芯片中,与程序存储器有关的特殊功能存放器如表5-9所示。表5-9 SST89E(V)系列芯片

60、与Flash ROM程序存储器有关特殊功能存放器表5-9中Flash ROM配置存放器SFCF的各位含义解释如下:IAPENIAP操作开关。当IAPEN为1时,允许IAP编程操作;当IAPEN为0时,禁止IAP编程操作。BSEL(Program memory block switching)存储器块切换开关。SWR(Software Reset)软件复位。当通过软件方式(如“ORL SFCF,#02H)将SWR位置1时,将产生软件复位操作,即PC指针置为0000H、重新初始化除SFCF1 (SWR)和WDTC2(WDTS)外的所有特殊功能存放器位(但不改变内部RAM)。复位后,Flash RO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论