版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 CIP-51 微控制器微控制器2.1 MCU 系统控制器的内核是系统控制器的内核是CIP-51 微控制器。微控制器。C8051F系列单片机的内核是系列单片机的内核是Silicon Labs的专利的专利CIP-51 微控制器。微控制器。CIP-51 与与MCS-51 指令集完全指令集完全兼容,可以使用标准兼容,可以使用标准803x/805x 的汇编器和编译器的汇编器和编译器进行软件开发进行软件开发。CIP-51 微控制器内核除了具有标准微控制器内核除了具有标准8051 的组织结的组织结构和外设以外,另有增加的定制外设和功能,大大构和外设以外,另有增加的定制外设和功能,大大增强了它的
2、处理能力(见图增强了它的处理能力(见图12.1 的原理框图的原理框图)图2-1 CIP-51框图CIP-51 具有下列特点:具有下列特点: 与与MCS-51 指令集完全兼容指令集完全兼容 在在25MHz 时钟时最大速度为时钟时最大速度为25MIPS 0 到到25MHz 的时钟频率的时钟频率 256 字节内部字节内部RAM 8/4 个个8 位位I/O 端口端口 扩展的中断处理系统扩展的中断处理系统 复位输入复位输入 电源管理方式电源管理方式 片内调试逻辑片内调试逻辑 程序和数据存储器安全程序和数据存储器安全性能性能CIP-51采用流水线结构,与标准的采用流水线结构,与标准的8051结构相结构相比
3、指令执行速度有很大的提高。在一个标准的比指令执行速度有很大的提高。在一个标准的8051中,除中,除MUL和和DIV以外所有指令都需要以外所有指令都需要12或或24个系统时钟周期,并且通常最大系统时钟个系统时钟周期,并且通常最大系统时钟频率为频率为12 MHz。而对于。而对于CIP-51内核,内核,70%的指的指令的执行时间为令的执行时间为1或或2个系统时钟周期,没有执个系统时钟周期,没有执行时间超过行时间超过8个系统时钟周期的指令。个系统时钟周期的指令。CIP-51 工作在最大系统时钟频率工作在最大系统时钟频率25MHz 时,它时,它的峰值速度达到的峰值速度达到25MIPS。CIP-51 共有
4、共有111条指令。条指令。下表列出了指令条数与执行时所需的系统时钟周下表列出了指令条数与执行时所需的系统时钟周期数的关系。期数的关系。2.2 存储器组织存储器组织CIP-51有三个物理上独立的存储器空间:程序存储有三个物理上独立的存储器空间:程序存储器空间、数据存储器空间和内部数据存储器器空间、数据存储器空间和内部数据存储器/特殊功特殊功能寄存器空间。能寄存器空间。分别用不同的指令类型访问。分别用不同的指令类型访问。程序存储器和数据存储器共享同一个地址空间程序存储器和数据存储器共享同一个地址空间(和和8086不同不同),其中,其中程序存储器空间:程序存储器空间:0000h-FFFFh;数据存储
5、器空间:数据存储器空间:0000h-FFFFh;内部数据存储器空间:内部数据存储器空间:00h-7Fh(直接或间接寻址直接或间接寻址) 80h-FFh(只能间接寻址只能间接寻址)特殊功能寄存器空间:特殊功能寄存器空间:80h-FFh(只能直接寻址只能直接寻址)CIP-51 内部集成有内部集成有256 字节的内部数据存储器字节的内部数据存储器; (128-)字节特殊功能寄存器;)字节特殊功能寄存器;芯片上还集成了芯片上还集成了64K+128 字节的内部程序存储器字节的内部程序存储器;4k数据存储器。数据存储器。CIP-51 的存储器组织如图的存储器组织如图12.2 所示。所示。2.2.1 程序存
6、储器程序存储器CIP-51 有有64K 字节的程序存储器空间。字节的程序存储器空间。MCU 在这个程序存储器空间中实现了在这个程序存储器空间中实现了64k+128字节可在系统编程的字节可在系统编程的FLASH 存储存储器,组织在一个连续的存储块内,从地址器,组织在一个连续的存储块内,从地址0 x0000 到到0 x1007F。注意:该存储器中有注意:该存储器中有512 字节(字节(0 xEE00 0 xFFFF)保留给工厂使用,不能用于存储)保留给工厂使用,不能用于存储用户程序。用户程序。程序存储器通常被认为是只读的,但是程序存储器通常被认为是只读的,但是CIP-51 可以通过设置程序存储写允
7、许位可以通过设置程序存储写允许位(PSCTL.0)用)用MOVX 指令对程序存储器写指令对程序存储器写入。这一特性为入。这一特性为CIP-51 提供了更新程序代提供了更新程序代码和将程序存储器空间用于非易失性数据存码和将程序存储器空间用于非易失性数据存储的机制。储的机制。自高位自高位128字节经常用来存储常数表等字节经常用来存储常数表等,为了为了访问该扇区,访问该扇区,PSCTL 寄存器中的寄存器中的SFLE 位位必须被设置为逻辑必须被设置为逻辑1。该扇区不能用于存。该扇区不能用于存储程序代码。储程序代码。2.2.2 数据存储器数据存储器CIP-51 的数据存储器空间中有的数据存储器空间中有2
8、56 字节的内字节的内部部RAM,位于地址,位于地址0 x00 到到0 xFF 的地址空间。的地址空间。数据存储器中的低数据存储器中的低128 字节用于通用寄存器字节用于通用寄存器和临时存储器。可以用直接或间接寻址方式和临时存储器。可以用直接或间接寻址方式访问数据存储器的低访问数据存储器的低128 字节。从字节。从0 x00 到到0 x1F 为为4 个通用寄存器区,每个区有个通用寄存器区,每个区有8 个寄个寄存器。接下来的存器。接下来的16 字节,从地址字节,从地址0 x20 到到0 x2F,既可以按字节寻址又可以作为,既可以按字节寻址又可以作为128 个个位地址用直接位寻址方式访问。位地址用
9、直接位寻址方式访问。数据存储器中的高数据存储器中的高128 字节只能用间接寻址字节只能用间接寻址访问。该存储区与特殊功能寄存器(访问。该存储区与特殊功能寄存器(SFR)占据相同的地址空间,但物理上与占据相同的地址空间,但物理上与SFR 空间空间是分开的。当寻址高于是分开的。当寻址高于0 x7F 的地址时,指的地址时,指令所用的寻址方式决定了令所用的寻址方式决定了CPU 是访问数据是访问数据存储器的高存储器的高128 字节还是访问字节还是访问SFR。使用直。使用直接寻址方式的指令将访问接寻址方式的指令将访问SFR 空间,间接寻空间,间接寻址高于址高于0 x7F 地址的指令将访问数据存储器地址的指
10、令将访问数据存储器的高的高128 字节。图字节。图2.2给出了给出了CIP-51 数据存数据存储器组织的示意图。储器组织的示意图。2.2.3 通用寄存器通用寄存器数据存储器的低数据存储器的低32 字节,从地址字节,从地址0 x00 到到0 x1F,可,可以作为以作为4 个通用寄存器区访问。每个区有个通用寄存器区访问。每个区有8 个寄存个寄存器,称为器,称为R0 - R7。在某一时刻只能选择一个寄存。在某一时刻只能选择一个寄存器区。器区。程序状态字程序状态字(PSW是一个特殊功能寄存器是一个特殊功能寄存器,字节地址字节地址D0h)中的)中的RS0(PSW.3)和)和RS1(PSW.4)位用)位用
11、于选择当前的寄存器区(见图于选择当前的寄存器区(见图2.6 中关于中关于PSW 的说的说明)。这允许在进入子程序或中断服务程序时进行明)。这允许在进入子程序或中断服务程序时进行快速现场切换。间接寻址方式使用快速现场切换。间接寻址方式使用R0 和和R1 作为间作为间址寄存器。址寄存器。2.2.4 位寻址空间除了直接访问按字节组织的数据存储器外,从0 x20 到0 x2F 的16 个数据存储器单元还可以作为128 个独立寻址位访问。每个位有一个位地址,从0 x00 到0 x7F。位于地址0 x20 的数据字节的位0 具有位地址0 x00,位于0 x20 的数据字节的位7 具有位地址0 x07。位于
12、0 x2F 的数据字节的位7 具有位地址0 x7F。由所用指令的类型来区分是位寻址还是字节寻址。例如,指令:例如,指令:MOV C, 22h . 3将将0 x13 中的布尔值(字节地址中的布尔值(字节地址0 x22 中的中的位位3)传送到用户进位标志。)传送到用户进位标志。2.2.5 堆栈堆栈程序的堆栈可以位于程序的堆栈可以位于256 字节数据存储器中字节数据存储器中的任何位置。堆栈区域用堆栈指针的任何位置。堆栈区域用堆栈指针SP (SP是一个特殊功能寄存器字节地址是一个特殊功能寄存器字节地址0 x81 )指)指定。定。SP 指向最后使用的位置。下一个压入堆栈指向最后使用的位置。下一个压入堆栈
13、的数据将被存放在的数据将被存放在SP+1,然后,然后SP 加加1。复位后堆栈指针被初始化为地址复位后堆栈指针被初始化为地址0 x07,因此,因此第一个被压入堆栈的数据将被存放在地址第一个被压入堆栈的数据将被存放在地址0 x08(R0-R7复位后默认在复位后默认在0区区),这也是寄存,这也是寄存器区器区1 的第一个寄存器(的第一个寄存器(R0)。如果使用不)。如果使用不止一个寄存器区,止一个寄存器区,SP 应被初始化为数据存储应被初始化为数据存储器中不用于数据存储的位置。堆栈深度最大器中不用于数据存储的位置。堆栈深度最大可达可达256 字节。字节。MCU 内部有用于堆栈记录的硬件。堆栈记录是一内
14、部有用于堆栈记录的硬件。堆栈记录是一个个32 位的移位寄存器。位的移位寄存器。每次压栈(每次压栈(PUSH)或)或SP 增增1 都向该寄存器压入都向该寄存器压入一个记录位;一个记录位;一次出栈(一次出栈(POP)或)或SP 减减1 弹出一个记录位;弹出一个记录位;每次调用或中断向该寄存器压入两个记录位;每次调用或中断向该寄存器压入两个记录位;一次返回弹出两个记录位;一次返回弹出两个记录位;堆栈记录电路可以检测该堆栈记录电路可以检测该32 位移位寄存器的上溢位移位寄存器的上溢和下溢,即使在和下溢,即使在MCU 全速运行时也可以通知调试全速运行时也可以通知调试软件。软件。2.2.6 特殊功能寄存器
15、从0 x80 到0 xFF 的直接寻址存储器空间为特殊功能寄存器(SFR)。SFR 提供对CIP-51 的资源和外设的控制及CIP-51 与这些资源和外设之间的数据交换。CIP-51 具有标准8051 中的全部SFR,还增加了一些用于配置和访问专有子系统的SFR。这就允许在保证与MCS-51指令集兼容的前提下增加新的功能。表2.1 列出了CIP-51 系统控制器中的全部SFR。任何时刻用直接寻址访问从任何时刻用直接寻址访问从0 x80 到到0 xFF 的的存储器空间将访问特殊功能寄存器存储器空间将访问特殊功能寄存器(SFR)。地址以地址以0 x0 或或0 x8 结尾的结尾的SFR(例如(例如P
16、0、TCON、P1、SCON、IE 等)既可以按字节等)既可以按字节寻址也可以按位寻址,所有其它寻址也可以按位寻址,所有其它SFR 只能按只能按字节寻址。字节寻址。SFR 空间中未使用的地址保留为空间中未使用的地址保留为将来使用,访问这些地址会产生不确定的结将来使用,访问这些地址会产生不确定的结果,应予避免。有关每个寄存器的详细说明果,应予避免。有关每个寄存器的详细说明请参见本数据表的相关部分(表请参见本数据表的相关部分(表2.2 中已标中已标明)。明)。表2-1 特殊功能寄存器映像表2-2 特殊功能寄存器说明简表注意:有些特殊功能寄存器并不是所有的020系列芯片全有,具体情况以手册为准。逻辑
17、上:程序存储器空间:0000h-1007Fh,全部集成在芯片上;数据存储器空间:0000h-FFFFh,64k集成了4k;内部数据存储器空间: 00h-7Fh(直接/间接),80h-FFh(间接)R0-R7可以用名字或地址访问。内部特殊功能寄存器空间: 80h-FFh(121个);特殊功能寄存器可以用名字或地址访问。内部位寻址空间:20h-2Fh中有00h-7Fh,特殊功能寄存器中有80h-FFh;特殊功能寄存器中的位寻址空间可以用名字或地址访问。2.2.7 相关寄存器说明相关寄存器说明下面对与下面对与CIP-51 系统控制器操作有关的系统控制器操作有关的SFR 加以说明。加以说明。注意保留位
18、不应被置为逻辑注意保留位不应被置为逻辑1。将来的产。将来的产品版本可能会使用这些位实现新功能,在这品版本可能会使用这些位实现新功能,在这种情况下各位的复位值将是逻辑种情况下各位的复位值将是逻辑0以选择以选择缺省状态。缺省状态。位位7-0:SP:堆栈指针:堆栈指针堆栈指针保持栈顶位置。在每次执行堆栈指针保持栈顶位置。在每次执行PUSH 操作前,堆栈指针加操作前,堆栈指针加1。SP 寄存器复位后的寄存器复位后的默认值为默认值为0 x07。位位7-0: DPL:数据指针低字节:数据指针低字节DPL 为为16 位数据指针(位数据指针(DPTR)的低字节。)的低字节。DPTR 用于访问用于访问间接寻址的
19、间接寻址的XRAM和和FLASH 存储器。存储器。位位7-0: DPH:数据指针高字节:数据指针高字节DPH 为为16 位数据指针(位数据指针(DPTR)的高字节。)的高字节。DPTR 用于访问用于访问间接寻址的间接寻址的XRAM和和FLASH 存储器。存储器。位位7: CY:进位标志。:进位标志。当最后一次算术操作产生进位(加法)或借位(减法)时,当最后一次算术操作产生进位(加法)或借位(减法)时,该位置该位置1。其它算术操作将其清。其它算术操作将其清0。位位6: AC:辅助进位标志。:辅助进位标志。当最后一次算术操作向高半字节有进位(加法)或借位(减当最后一次算术操作向高半字节有进位(加法
20、)或借位(减法)时,该位置法)时,该位置1。其它算术操作将其清。其它算术操作将其清0。位位5: F0:用户标志:用户标志0。这是一个可位寻址、受软件控制的通用标志位。这是一个可位寻址、受软件控制的通用标志位。PSW:程序状态字寄存器:程序状态字寄存器位4-3: RS1-RS0:寄存器区选择。该两位在寄存器访问时用于选择寄存器区。位位2: OV:溢出标志。:溢出标志。该位在下列情况下被置该位在下列情况下被置1: ADD、ADDC 或或SUBB 指令引起符号位变化溢出。指令引起符号位变化溢出。 MUL 指令引起溢出(结果大于指令引起溢出(结果大于255)。)。 DIV 指令的除数为指令的除数为0。
21、 ADD、ADDC、SUBB、MUL 和和DIV 指令的其它情况使指令的其它情况使该位清该位清0。位位1: F1:用户标志:用户标志1。这是一个可位寻址、受软件控制的通用标志位。这是一个可位寻址、受软件控制的通用标志位。位位0: PARITY:奇偶标志。:奇偶标志。若累加器中若累加器中8 个位的和为奇数时该位置个位的和为奇数时该位置1,为偶数时清,为偶数时清0。位位7-0: ACC:累加器:累加器该寄存器为算术操作用的累加器。该寄存器为算术操作用的累加器。A累加器累加器位7-0: B寄存器该寄存器为某些算术操作的第二累加器。B 寄存器寄存器2.3 电源管理方式电源管理方式CIP-51 有两种可
22、软件编程的电源管理方式:空闲和停机。在空闲方式,CPU 停止运行,而外设和时钟处于活动状态。由于在空闲方式下时钟仍然运行,所以功耗与进入空闲方式之前的系统时钟频率和处于活动状态的外设数目有关。在停机方式,CPU 停止运行,所有的中断和定时器(时钟丢失检测器除外)都处于非活动状态,系统时钟停止。停机方式消耗最少的功率。虽然虽然CIP-51 具有空闲和停机方式,但最好禁止不具有空闲和停机方式,但最好禁止不需要的外设,以使整个需要的外设,以使整个MCU 的功耗最小。的功耗最小。每个模拟外设在不用时都可以被禁止,使其进入低每个模拟外设在不用时都可以被禁止,使其进入低功耗方式。功耗方式。象定时器、串行总
23、线这样的数字外设在不使用时消象定时器、串行总线这样的数字外设在不使用时消耗很少的功率。耗很少的功率。关闭闪速存储器可以减小功耗,与进入空闲方式类关闭闪速存储器可以减小功耗,与进入空闲方式类似。似。关闭振荡器可以消耗更少的功率,但需要靠复位来关闭振荡器可以消耗更少的功率,但需要靠复位来重新启动重新启动MCU。电源控制寄存器(电源控制寄存器(PCON特殊功能寄存器)用于控特殊功能寄存器)用于控制制CIP-51 电源管理方式。电源管理方式。位位7、位、位6、位、位4、位、位3:和串口0 串口1有关,讲串口再详细讲述。位位5、位、位2:保留位位1: STOP:停机方式选择。:停机方式选择。向该位写向该
24、位写1将使将使CIP-51 进入停机方式。该位读进入停机方式。该位读出值总是为出值总是为0。写写1:CIP-51 被强制进入停机方式(关闭内部振被强制进入停机方式(关闭内部振荡器,外设、中断全停)荡器,外设、中断全停)位位0: IDLE:空闲方式选择。:空闲方式选择。向该位写向该位写1将使将使CIP-51 进入空闲方式。该位读出进入空闲方式。该位读出值总是为值总是为0。写写1:CIP-51 被强制进入空闲方式。(关闭供给被强制进入空闲方式。(关闭供给CPU 的时钟信号,但定时器、中断和所有外设保持的时钟信号,但定时器、中断和所有外设保持活动状态。)活动状态。)2.3.1 空闲方式空闲方式将空闲
25、方式选择位(将空闲方式选择位(PCON.0)置)置1 导致导致CIP-51 停停止止CPU 运行并进入空闲方式,在执行完对该位置运行并进入空闲方式,在执行完对该位置1 的指令后的指令后MCU 立即进入空闲方式。立即进入空闲方式。所有内部寄存器和存储器都保持原来的数据不变。所有内部寄存器和存储器都保持原来的数据不变。所有模拟和数字外设在空闲方式期间都可以保持活所有模拟和数字外设在空闲方式期间都可以保持活动状态。动状态。退出方式:退出方式:一旦一个被允许的中断发生或一旦一个被允许的中断发生或/RST 有效将结束空有效将结束空闲方式。闲方式。当有一个被允许的中断发生时,空闲方式选择位当有一个被允许的
26、中断发生时,空闲方式选择位(PCON.0)被清)被清0,CPU 将继续工作。该中断将将继续工作。该中断将得到服务,中断返回(得到服务,中断返回(RETI)后将开始执行设置)后将开始执行设置空闲方式选择位的那条指令的下一条指令。空闲方式选择位的那条指令的下一条指令。如果空闲方式因一个内部或外部复位而结束,则如果空闲方式因一个内部或外部复位而结束,则CIP-51 进行正常的复位过程并从地址进行正常的复位过程并从地址0 x0000 开始开始执行程序。执行程序。如果如果WDT被使能,被使能,WDT 将产生一个内部看门狗复将产生一个内部看门狗复位,从而结束空闲方式。位,从而结束空闲方式。这一功能可以保护
27、系统不会因为对这一功能可以保护系统不会因为对PCON 寄存器的寄存器的意外写入而导致永久性停机。意外写入而导致永久性停机。如果不需要这种功能,可以在进入空闲方式之前禁如果不需要这种功能,可以在进入空闲方式之前禁止看门狗。这将进一步节省功耗,允许系统一直保止看门狗。这将进一步节省功耗,允许系统一直保持在空闲状态,等待一个外部激励唤醒系统。持在空闲状态,等待一个外部激励唤醒系统。2.3.2 停机方式停机方式将停机方式选择位(将停机方式选择位(PCON.1)置)置1 导致导致CIP-51 进进入停机方式。入停机方式。在执行完对该位置在执行完对该位置1 的指令后的指令后MCU 立即进入停机方立即进入停
28、机方式。在停机方式,式。在停机方式,CPU 和振荡器都被停止,实际上和振荡器都被停止,实际上所有的数字外设都停止工作。所有的数字外设都停止工作。在进入停机方式之前,必须关闭每个模拟外设。在进入停机方式之前,必须关闭每个模拟外设。只有内部或外部复位能结束停机方式。复位只有内部或外部复位能结束停机方式。复位时,时,CIP-51 进行正常的复位过程并从地址进行正常的复位过程并从地址0 x0000 开始执行程序。开始执行程序。如果被使能,时钟丢失检测器将产生一个内如果被使能,时钟丢失检测器将产生一个内部复位,从而结束停机方式。如果想要使部复位,从而结束停机方式。如果想要使CPU的休眠时间长于的休眠时间
29、长于100 微秒的微秒的MCD 超时超时时间,则应禁止时钟丢失检测器。时间,则应禁止时钟丢失检测器。2. 4复位源复位源复位电路允许很容易地将控制器置于一个预定的缺省状态。复位电路允许很容易地将控制器置于一个预定的缺省状态。在进入复位状态时,将发生以下过程:在进入复位状态时,将发生以下过程: CIP-51 停止程序执行停止程序执行 特殊功能寄存器(特殊功能寄存器(SFR)被初始化为所定义的复位值)被初始化为所定义的复位值 外部端口引脚被置于一个已知状态外部端口引脚被置于一个已知状态 中断和定时器被禁止。中断和定时器被禁止。所有的所有的SFR 都被初始化为预定值,都被初始化为预定值,SFR 中各
30、位的复位值在中各位的复位值在SFR 的详细说明中定义。在复位期间内部数据存储器的内容的详细说明中定义。在复位期间内部数据存储器的内容不发生改变,复位前存储的数据保持不变。但由于堆栈指针不发生改变,复位前存储的数据保持不变。但由于堆栈指针SFR被复位,堆栈实际上已丢失,尽管堆栈中的数据未发生被复位,堆栈实际上已丢失,尽管堆栈中的数据未发生变化。变化。I/O 端口锁存器的复位值为端口锁存器的复位值为0 xFF(全部为逻辑(全部为逻辑1),内部),内部弱上拉有效,使外部弱上拉有效,使外部I/O 引脚处于高电平状态。引脚处于高电平状态。注意注意1:外部:外部I/O 引脚并不立即进入高电平状态,而是在进
31、入引脚并不立即进入高电平状态,而是在进入复位状态后的四个系统时钟之后。复位状态后的四个系统时钟之后。注意注意2:在复位期间弱上拉是被禁止的,在器件退出复位状:在复位期间弱上拉是被禁止的,在器件退出复位状态时弱上拉被使能。这就使得在器件保持在复位状态期间可态时弱上拉被使能。这就使得在器件保持在复位状态期间可以节省功耗。以节省功耗。对于对于VDD 监视器复位,监视器复位,/RST 引脚被驱动为低电平,引脚被驱动为低电平,直到直到VDD 复位超时结束。复位超时结束。在退出复位状态时,程序计数器(在退出复位状态时,程序计数器(PC)被复位,)被复位,MCU 使用内部振荡器运行在使用内部振荡器运行在2M
32、Hz 作为默认的系作为默认的系统时钟。统时钟。看门狗定时器被使能,使用其最长的超时时间。看门狗定时器被使能,使用其最长的超时时间。一旦系统时钟源稳定,程序从地址一旦系统时钟源稳定,程序从地址0 x0000 开始执开始执行。行。有有7 个能使个能使MCU 进入复位状态的复位源:进入复位状态的复位源:上电上电/掉电、外部掉电、外部/RST 引脚、外部引脚、外部CNVSTR 信号、信号、软件命令、比较器软件命令、比较器0、时钟丢失检测器及看门狗定、时钟丢失检测器及看门狗定时器。时器。下面将对每个复位源进行说明。下面将对每个复位源进行说明。特殊功能寄存器特殊功能寄存器RSTSRC:复位源寄存复位源寄存
33、器器(注:不要对该寄存器进行读注:不要对该寄存器进行读/修改修改/写操作)写操作)位位7: 保留保留位位6: CNVRSEF:转换启动复位源使能和标志。:转换启动复位源使能和标志。 写:写: 0:CNVSTR 不是复位源。不是复位源。 1:CNVSTR 是复位源(低电平有效)。是复位源(低电平有效)。 读:读:0:前面的复位不是来自:前面的复位不是来自CNVSTR。 1:前面的复位来自:前面的复位来自CNVSTR。位位5: C0RSEF:比较器:比较器0 复位使能和标志复位使能和标志 写写: 0:比较器:比较器0 不是复位源。不是复位源。 1:比较器:比较器0 是复位源(低电平有效)。是复位源
34、(低电平有效)。 读:读:0:前面的复位不是来自比较器:前面的复位不是来自比较器0。 1:前面的复位来自比较器:前面的复位来自比较器0。位位4: SWRSF:软件强制复位和标志:软件强制复位和标志 写:写:0:无作用:无作用 1:强制产生一个内部复位。:强制产生一个内部复位。/RST 引脚不引脚不受影响。受影响。 读:读:0:前面的复位不是来自写:前面的复位不是来自写SWRSF 位。位。 1:前面的复位来自写:前面的复位来自写SWRSF 位。位。位位3: WDTRSF:看门狗定时器复位标志:看门狗定时器复位标志 0:前面的复位不是来自:前面的复位不是来自WDT 超时。超时。 1:前面的复位来自
35、:前面的复位来自WDT 超时。超时。位位2: MCDRSF:时钟丢失检测器标志:时钟丢失检测器标志 0:前面的复位不是来自时钟丢失检测器超时。:前面的复位不是来自时钟丢失检测器超时。 1:前面的复位来自时钟丢失检测器超时。:前面的复位来自时钟丢失检测器超时。位位1: PORSF:强制上电复位和标志:强制上电复位和标志 写:写: 0:无作用:无作用 1:强制产生一个上电复位。:强制产生一个上电复位。/RST 引脚被引脚被驱动为低电平。驱动为低电平。 读:读:0:前面的复位不是来自:前面的复位不是来自POR。 1:前面的复位来自:前面的复位来自POR。位位0: PINRSF:硬件引脚复位标志:硬件
36、引脚复位标志 0:前面的复位不是来自:前面的复位不是来自RST 引脚。引脚。 1:前面的复位来自:前面的复位来自RST 引脚。引脚。 2. 4 .1上电复位上电复位C8051F020/1/2/3 有一个电源监视器,在上电期间有一个电源监视器,在上电期间该监视器使该监视器使MCU 保持在复位状态,直到保持在复位状态,直到VDD 上升上升到超过到超过VRST 电平。见图电平。见图2.3 的时序图。的时序图。/RST 引脚一直被置为低电平,直到引脚一直被置为低电平,直到100 毫秒的毫秒的VDD 监视器超时时间结束,这监视器超时时间结束,这100 毫秒的等待时间毫秒的等待时间是为了使是为了使VDD
37、电源稳定。电源稳定。图2-3 复位时序图在退出上电复位状态时,在退出上电复位状态时,PORSF 标志标志(RSTSRC.1)被硬件置为逻辑)被硬件置为逻辑1。PORSF 被任何其它复位清被任何其它复位清0。由于所有的复位都导致程序从同一个地址由于所有的复位都导致程序从同一个地址(0 x0000)开始执行,软件可以通过读)开始执行,软件可以通过读PORSF 标志来确定是否为上电导致的复位。标志来确定是否为上电导致的复位。在一次上电复位后,内部数据存储器中的内容在一次上电复位后,内部数据存储器中的内容应被认为是不确定的。应被认为是不确定的。通过将通过将MONEN 引脚直接连引脚直接连VDD 来使能
38、来使能VDD 监视器。这是监视器。这是MONEN 引脚的推荐配置。引脚的推荐配置。2. 4 .2掉电复位掉电复位当发生掉电或因电源不稳定而导致当发生掉电或因电源不稳定而导致VDD 下降到低于下降到低于VRST 电平时,电源监视器将电平时,电源监视器将/RST 引脚置于低电平引脚置于低电平并使并使CIP-51 回到复位状态。回到复位状态。当当VDD 回升到超过回升到超过VRST 电平时,电平时,CIP-51 将离开将离开复位状态,过程与上电复位相同。复位状态,过程与上电复位相同。注意:即使内部数据存储器的内容未因掉电复位而注意:即使内部数据存储器的内容未因掉电复位而发生变化,也无法确定发生变化,
39、也无法确定VDD 是否下降到维持数据有是否下降到维持数据有效所需要的电压以下。如果效所需要的电压以下。如果PORSF 标志被置标志被置1,则数据可能不再有效。则数据可能不再有效。2. 4 .3外部复位外部复位外部外部/RST 引脚提供了使用外部电路强制引脚提供了使用外部电路强制MCU 进入复位状进入复位状态的手段。在态的手段。在/RST 引脚上加一个低电平有效信号将导致引脚上加一个低电平有效信号将导致MCU 进入复位状态。进入复位状态。最好能提供一个外部上拉或对最好能提供一个外部上拉或对/RST 引脚去耦以防止强噪声引脚去耦以防止强噪声引起复位。引起复位。在低有效的在低有效的/RST 信号撤出
40、后,信号撤出后,MCU 将保持在复位状态至将保持在复位状态至少少12 个时钟周期。个时钟周期。从外部复位状态退出后,从外部复位状态退出后,PINRSF 标志(标志(RSTSRC.0)被置)被置位。位。2. 4 .4软件强制复位软件强制复位向向SWRSEF 位写位写1 将强制产生一个上电复位。将强制产生一个上电复位。2. 4 .5时钟丢失检测器复位时钟丢失检测器复位时钟丢失检测器实际上是由时钟丢失检测器实际上是由MCU 系统时钟触发系统时钟触发的单稳态电路。如果未收到系统时钟的时间大的单稳态电路。如果未收到系统时钟的时间大于于100 微秒,单稳态电路将超时并产生一个复微秒,单稳态电路将超时并产生
41、一个复位。在发生时钟丢失检测器复位后,位。在发生时钟丢失检测器复位后,MCDRSF标志(标志(RSTSRC.2)将被置)将被置1,表示本次复位,表示本次复位源为源为MSD;否则该位被清;否则该位被清0。/RST 引脚的状态不受该复位的影响。把引脚的状态不受该复位的影响。把OSCIN 寄存器中的寄存器中的MSCLKE 位置位置1将使能时钟丢失将使能时钟丢失检测器。检测器。2. 4 .6外部外部CNVSTR 引脚复位引脚复位向向CNVRSEF 标志(标志(RSTSRC.6)写)写1可以将外部可以将外部CNVSTR 信号配置为复位源。信号配置为复位源。CNVSTR信号可以出现在信号可以出现在P0、P
42、1、P2 或或P3 的任何的任何I/O 引脚。引脚。注意:交叉开关必许被配置为使注意:交叉开关必许被配置为使CNVSTR 信号接到正确的端信号接到正确的端口口I/O。应该在将。应该在将CNVRSEF 置置1之前配置并使能交叉开关。之前配置并使能交叉开关。当被配置为复位源时,当被配置为复位源时,CNVSTR 为低电平有效。为低电平有效。在发生在发生CNVSTR 复位之后,复位之后,CNVRSEF 标志(标志(RSTSRC.6)的读出值为的读出值为1,表示本次复位源为,表示本次复位源为CNVSTR;否则该位读;否则该位读出值为出值为0。/RST 引脚的状态不受该复位的影响。引脚的状态不受该复位的影
43、响。2. 4 .7 比较器比较器0 复位复位向向C0RSEF 标志(标志(RSTSRC.5)写)写1可以将比较器可以将比较器0 配置配置为复位源。为复位源。应在写应在写C0RSEF之前用之前用CPT0CN.7使能比较器使能比较器0,以防止通电,以防止通电瞬间在输出端产生抖动,从而产生不希望的复位。瞬间在输出端产生抖动,从而产生不希望的复位。比较器比较器0 复位是低电平有效:如果同相端输入电压(复位是低电平有效:如果同相端输入电压(CP0+引引脚)小于反相端输入电压(脚)小于反相端输入电压(CP0-引脚),则引脚),则MCU 被置于复被置于复位状态。位状态。在发生比较器在发生比较器0 复位之后,
44、复位之后,C0RSEF 标志标志(RSTSRC.5)的读出值为)的读出值为1,表示本次复位源为比较器,表示本次复位源为比较器0;否则该位被清否则该位被清0。/RST 引脚的状态不受该复位的影响。引脚的状态不受该复位的影响。2. 4 .8看门狗定时器复位看门狗定时器复位MCU 内部有一个使用系统时钟的可编程看门狗定时器内部有一个使用系统时钟的可编程看门狗定时器(WDT)。)。当看门狗定时器溢出时,当看门狗定时器溢出时,WDT 将强制将强制CPU 进入复位状态。进入复位状态。为了防止复位,必须在溢出发生前由应用软件重新触发为了防止复位,必须在溢出发生前由应用软件重新触发WDT。如果系统出现了软件如
45、果系统出现了软件/硬件错误,使应用软件不能重新触发硬件错误,使应用软件不能重新触发WDT,则,则WDT 将溢出并产生一个复位,这可以防止系统将溢出并产生一个复位,这可以防止系统失控。失控。在从任何一种复位退出时,在从任何一种复位退出时,WDT 被自动使能并使用缺省的被自动使能并使用缺省的最大时间间隔运行。最大时间间隔运行。系统软件可以根据需要禁止系统软件可以根据需要禁止WDT 或将其锁定为运或将其锁定为运行状态以防止意外产生的禁止操作。行状态以防止意外产生的禁止操作。WDT 一旦被一旦被锁定,在下一次系统复位之前将不能被禁止。锁定,在下一次系统复位之前将不能被禁止。/RST 引脚的状态不受该复
46、位的影响。引脚的状态不受该复位的影响。WDT 是一个21 位的使用系统时钟的定时器。该定时器测量对其控制寄存器的两次特定写操作的时间间隔。如果这个时间间隔超过了编程的极限值,将产生一个WDT 复位。可以根据需要用软件使能和禁止WDT,或根据要求将其设置为永久性使能状态。看门狗的功能可以通过看门狗定时器控制寄存器(WDTCN)控制。WDTCN位位7-0: WDT 控制控制写入写入0 xA5 将使能并重新装载将使能并重新装载WDT。写入写入0 xDE 后四个系统周期内写入后四个系统周期内写入0 xAD,将禁止,将禁止WDT。写入写入0 xFF 将锁定禁止功能。将锁定禁止功能。位位4: 看门狗状态位
47、(只读)看门狗状态位(只读)读读WDTCN.4得到看门狗定时器的状态。得到看门狗定时器的状态。0:WDT 处于不活动状态。处于不活动状态。1:WDT 处于活动状态。处于活动状态。位位2-0: 看门狗超时间隔位看门狗超时间隔位位位WDTCN.2:0设置看门狗的超时间隔。在写这些设置看门狗的超时间隔。在写这些位时,位时,WDTCN.7 必须被置为必须被置为0。2. 4 .8 使能/复位WDT向WDTCN 寄存器写入0 xA5 将使能并复位看门狗定时器。用户的应用软件应应周期性地向WDTCN 写入0 xA5,以防止看门狗定时器溢出。每次系统复位都将使能并复位WDT。2. 4 .9 禁止禁止WDT向向
48、WDTCN 寄存器写入寄存器写入0 xDE 后再写入后再写入0 xAD 将禁将禁止止WDT。下面的代码段说明禁止。下面的代码段说明禁止WDT的过程。的过程。CLR EA ; 禁止所有中断禁止所有中断MOV WDTCN, #0DEh ; 禁止软件看门狗定时器禁止软件看门狗定时器MOV WDTCN, #0ADhSETB EA ; 重新允许中断重新允许中断写写0 xDE 和写和写0 xAD 必须发生在必须发生在4 个时钟周期之内,个时钟周期之内,否则禁止操作将被忽略。在这个过程期间应禁止中否则禁止操作将被忽略。在这个过程期间应禁止中断,以避免两次写操作之间有延时。断,以避免两次写操作之间有延时。2.
49、 4 .10 禁止禁止WDT 锁定锁定向向WDTCN 写入写入0 xFF 将使禁止功能无效。一旦锁将使禁止功能无效。一旦锁定,在下一次复位之前禁止操作将被忽略。写定,在下一次复位之前禁止操作将被忽略。写0 xFF 并不使能或复位看门狗定时器。如果应用程并不使能或复位看门狗定时器。如果应用程序想一直使用看门狗,则应在初始化代码中向序想一直使用看门狗,则应在初始化代码中向WDTCN 写入写入0 xFF。2. 4 .11 设置设置WDT 定时间隔定时间隔WDTCN.2:0控制看门狗超时间隔。超时间隔由下控制看门狗超时间隔。超时间隔由下式给出:式给出:TSYSCLK 4(3+WDTCN2:0 ) ;(
50、其中(其中TSYSCLK 为系统时钟周期)为系统时钟周期)对于对于2MHz 的系统时钟,超时间隔的范围是的系统时钟,超时间隔的范围是0.032ms 到到524ms。在设置这个超时间隔时,。在设置这个超时间隔时,WDTCN.7 必须为必须为0。读。读WDTCN 将返回编程的超时将返回编程的超时间隔。在系统复位后,间隔。在系统复位后,WDT.2:0为为111b。2. 5振荡器振荡器每个每个MCU 都有一个内部振荡器和一个外部振荡器都有一个内部振荡器和一个外部振荡器驱动电路,每个驱动电路都能产生系统时钟。驱动电路,每个驱动电路都能产生系统时钟。MCU 可以从内部振荡器或外部振荡器运行,可使可以从内部
51、振荡器或外部振荡器运行,可使用用OSCICN 寄存器中的寄存器中的CLKSL 位在两个振荡器之位在两个振荡器之间随意切换。间随意切换。MCU 在复位后从内部振荡器启动。内部振荡器可在复位后从内部振荡器启动。内部振荡器可以被使能以被使能/禁止,其振荡频率可以用内部振荡器控禁止,其振荡频率可以用内部振荡器控制寄存器(制寄存器(OSCICN)设置。)设置。当当/RST 引脚为低电平时,两个振荡器都被禁止。引脚为低电平时,两个振荡器都被禁止。外部振荡器需要一个外部谐振器、并行方式的晶外部振荡器需要一个外部谐振器、并行方式的晶体、电容或体、电容或RC 网络连接到网络连接到XTAL1/XTAL2 引脚引脚
52、(见图(见图2.4)。必须在)。必须在OSCXCN 寄存器中为这些寄存器中为这些振荡源中的某一个配置振荡器电路。一个外部振荡源中的某一个配置振荡器电路。一个外部CMOS 时钟也可以通过驱动时钟也可以通过驱动XTAL1 引脚提供系统引脚提供系统时钟;在这种配置下,时钟;在这种配置下,XTAL1 引脚用作引脚用作CMOS 时时钟输入。钟输入。XTAL1 和和XTAL2 不耐不耐5V 电压。电压。图2-4振荡器框图OSCICN:内部振荡器控制寄存器位位7: MSCLKE:时钟丢失检测器使能位:时钟丢失检测器使能位0:禁止时钟丢失检测器。:禁止时钟丢失检测器。1:使能时钟丢失检测器;检测到时钟丢失时间
53、大于:使能时钟丢失检测器;检测到时钟丢失时间大于100 微秒微秒时将触发复位。时将触发复位。位位6-5: 未用。读未用。读=00b,写,写=忽略。忽略。位位4: IFRDY:内部振荡器频率准备好标志:内部振荡器频率准备好标志0:内部振荡器频率不是按:内部振荡器频率不是按IFCN 位指定的速度运行。位指定的速度运行。1:内部振荡器频率按照:内部振荡器频率按照IFCN 位指定的速度运行。位指定的速度运行。位位3: CLKSL:系统时钟源选择位:系统时钟源选择位0:选择内部振荡器作为系统时钟。:选择内部振荡器作为系统时钟。1:选择外部振荡器作为系统时钟。:选择外部振荡器作为系统时钟。OSCICN:内
54、部振荡器控制寄存器位位2: IOSCEN:内部振荡器使能位:内部振荡器使能位0:内部振荡器禁止。:内部振荡器禁止。1:内部振荡器使能。:内部振荡器使能。位位1-0: IFCN1-0:内部振荡器频率控制位:内部振荡器频率控制位00:内部振荡器典型频率为:内部振荡器典型频率为2MHz。01:内部振荡器典型频率为:内部振荡器典型频率为4MHz。10:内部振荡器典型频率为:内部振荡器典型频率为8MHz。11:内部振荡器典型频率为:内部振荡器典型频率为16MHz。OSCICN:内部振荡器控制寄存器OSCXCN:外部振荡器控制寄存器:外部振荡器控制寄存器位位7: XTLVLD:晶体振荡器有效标志:晶体振荡
55、器有效标志(只在(只在XOSCMD11x 时有效)时有效)0:晶体振荡器未用或未稳定。:晶体振荡器未用或未稳定。1:晶体振荡器正在运行并且工作稳定。:晶体振荡器正在运行并且工作稳定。位位6-4: XOSCMD2-0:外部振荡器方式位:外部振荡器方式位00 x:关闭。:关闭。XTAL1 引脚内部接地。引脚内部接地。010:系统时钟为来自:系统时钟为来自XTAL1 引脚的外部引脚的外部CMOS 时钟。时钟。011:系统时钟为来自:系统时钟为来自XTAL1 引脚的外部引脚的外部CMOS 时钟的时钟的二分频。二分频。10 x:RC/C 振荡器方式二分频。振荡器方式二分频。110:晶体振荡器方式。:晶体
56、振荡器方式。111:晶体振荡器方式二分频。:晶体振荡器方式二分频。OSCXCN:外部振荡器控制寄存器:外部振荡器控制寄存器位位3: 保留。读保留。读 = 无定义,写无定义,写 = 忽略。忽略。OSCXCN:外部振荡器控制寄存器:外部振荡器控制寄存器位位2-0: XFCN2-0:外部振荡器频率控制位。:外部振荡器频率控制位。OSCXCN:外部振荡器控制寄存器:外部振荡器控制寄存器晶体方式(电路见下图,选项晶体方式(电路见下图,选项1;XOSCMD=11x)选择选择XFCN 值匹配晶体振荡器频率。值匹配晶体振荡器频率。RC 方式(电路见下图,选项方式(电路见下图,选项2;XOSCMD=10 x)选择振荡器频率范围:选择振荡器频率范围:f = 1.23(103)/(R*C),其中:,其中:f = 以以MHz 为单位的振荡频率为单位的振荡频率C = 以以pF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年连江县教师招聘考试备考试题及答案解析
- 2026年杞县教师招聘笔试备考题库及答案解析
- 2026年固阳县教师招聘考试模拟试题及答案解析
- 2026中国中医科学院望京医院公开招聘康复师治疗部工作人员1人笔试参考题库及答案解析
- 2026年繁峙县教师招聘笔试备考试题及答案解析
- 2027年咸阳市实验中学公费师范生招聘(30人)笔试备考试题及答案解析
- 2026湖南张家界市永定区农业农村局招聘公益性岗位人员1人笔试备考题库及答案解析
- 中国建筑西南设计研究院有限公司2027届校园招聘考试备考试题及答案解析
- 宜宾市属国有企业人力资源中心宜宾市科技人才集团有限公司下属子公司四川科才知识产权运营有限公司2026年第三批员工公开招聘的考试备考试题及答案解析
- 2026黑龙江省迎春林业局有限公司公开招聘34人笔试备考试题及答案解析
- 2026广东广州市南沙区社区专职工作人员招聘40人考试备考试题及答案解析
- 2026课件:新生儿乳糖不耐受诊断治疗的中国专家共识
- 2026年高级职业培训师(三级)职业资格鉴定考试题库(新版)
- (2025)中国肩袖损伤修复围手术期eras护理专家共识课件
- 初中八年级历史 中国特色社会主义道路 大单元教学设计
- 2026年平安银行(上海分行)校园招聘笔试参考试题及答案详解
- GB/T 44693.4-2026危险化学品企业工艺平稳性第4部分:开工过程管理规范
- 电气控制技术说课
- 灌装工专业技能培训课件
- 中药黄芪课件
- 2025部编版三年级道德与法治上册全册教案
评论
0/150
提交评论