1、第第 5 讲讲 单片机的单片机的时钟、复位时钟、复位与电源管理与电源管理5.1 C8051F单片机时钟系统单片机时钟系统5.2 C8051F单片机复位系统单片机复位系统5.3 C8051F单片机电源管理单片机电源管理一个内部振荡器电路;一个外部振荡器电路;5.1.1 时钟系统概述时钟系统概述当/RST引脚引脚为低电平时,两个振荡器都被禁止。单片机复位后从内部振荡器启动;包含:包含:单片机可以使用内部振荡器或外部振荡器时钟信号运行;5.1 C8051F单片机的时钟系统单片机的时钟系统5.1.2 内部振荡器内部振荡器 C8051F单片机内部振荡器包括一个可编程内部时钟发生器和一个控制寄存器:OSC
2、ICN 通过控制寄存器:OSCICN,可以实现对内部振荡器工作状态的控制。复位后,单片机将使用内部振荡器产生的时钟信号作为单片机的系统时钟,工作频率为2MHz。5.1.3 外部振荡器外部振荡器 C8051F单片机外部振荡器包括一个可编程时钟发生器和一个控制寄存器:OSCXCN;具有4种不同的配置:外部晶振、外部RC振荡电路、外部电容振荡电路和外部时钟输入。当外部晶体振荡器稳定运行时,晶体振荡器有效标志当外部晶体振荡器稳定运行时,晶体振荡器有效标志(OSCXCN 寄存器中的寄存器中的XTLVLD)被硬件置)被硬件置1。XTLVLD 检测电路要求在使能振荡器工作和检测检测电路要求在使能振荡器工作和
3、检测XTLVLD 之之间至少有间至少有1 ms的启动时间。(在外部振荡器稳定之前就切换的启动时间。(在外部振荡器稳定之前就切换到外部振荡器可能导致不可预见的后果。)到外部振荡器可能导致不可预见的后果。)建议的过程为:建议的过程为:1 使能外部振荡器使能外部振荡器2 等待至少等待至少1ms3 查询查询XTLVLD=14 将系统时钟切换到外部振荡器将系统时钟切换到外部振荡器外部晶体振荡器使用注意外部晶体振荡器使用注意5.2 C8051F单片机的复位系统单片机的复位系统5.2.1 复位状态复位状态 复位电路可以将控制器置于一个预定的状态复位电路可以将控制器置于一个预定的状态复位状态复位状态。在进入在
4、进入复位状态复位状态时,将发生以下过程:时,将发生以下过程:CIP-51 CPU停止程序执行停止程序执行 特殊功能寄存器(特殊功能寄存器(SFR)被初始化为所定义的复位值)被初始化为所定义的复位值 外部端口引脚被置于一个已知状态外部端口引脚被置于一个已知状态 中断和定时器被禁止中断和定时器被禁止 端口端口I/O锁存器锁存器的复位值为的复位值为0 xFF(全部为逻辑(全部为逻辑1),外部),外部I/O引引脚处于高电平状态。复位之后弱上拉被使能。脚处于高电平状态。复位之后弱上拉被使能。程序计数器(程序计数器(PC)被复位)被复位,PC=0000H;CIP-51使用使用内部振荡器内部振荡器作为默认的
5、系统时钟作为默认的系统时钟,约为约为2MHz;看门狗定时器被使能看门狗定时器被使能,用,用系统时钟的系统时钟的12分频分频作为其时钟源作为其时钟源;程序从地址程序从地址0 x0000开始执行。开始执行。在退出复位状态时:在退出复位状态时:5.2.2 系统复位源框图系统复位源框图 5.2.3 上电复位上电复位/掉电复位掉电复位 上电复位:上电复位:在上电期间,器件保持在复位状态,在上电期间,器件保持在复位状态,/RST引脚引脚被驱动到低电平,被驱动到低电平,直到直到VDD上升到超过上升到超过VRST电平。从复位开始到退出复位状态要经过一个延时。电平。从复位开始到退出复位状态要经过一个延时。上电和
6、上电和VDD监视器复位时序监视器复位时序 掉电复位:掉电复位:当发生掉电或因电源波动导致当发生掉电或因电源波动导致VDD降到降到VRST以下时,电源监视器以下时,电源监视器将将/RST引脚驱动为低电平并使引脚驱动为低电平并使CIP-51保持复位状态。当保持复位状态。当VDD又回到高又回到高于于VRST的电平时,的电平时,CIP-51将退出复位状态。将退出复位状态。5.2.4 外部复位外部复位 外部外部/RST引脚提供了使用外部电路强制引脚提供了使用外部电路强制MCU进入复位状态的手段。在进入复位状态的手段。在/RST引脚上加一个引脚上加一个低电平有效信号低电平有效信号将导致将导致MCU进入复位
7、状态。尽管在内部有弱进入复位状态。尽管在内部有弱上拉,但最好能提供一个外部上拉和上拉,但最好能提供一个外部上拉和/或对或对/RST引脚去耦以防止强噪声引起复位。引脚去耦以防止强噪声引起复位。从外部复位状态退出后,从外部复位状态退出后,PINRSF标志(标志(RSTSRC.0)被置)被置1。R110kR21kR31kC1104C21uFVDD/RST5.2.5 内部复位内部复位 软件强制复位:软件强制复位:向向SWRSEF位写位写1 将强制产生一个上电复位。将强制产生一个上电复位。时钟丢失检测器复位:时钟丢失检测器复位:时钟丢失检测器实际上是由MCU 系统时钟触发的单稳态电路。如果未收到系统时钟
8、的时间大于100 微秒,单稳态电路将超时并产生一个复位。比较器比较器0复位:复位:比较器比较器0 复位是低电平有效:如果同相端输入电压复位是低电平有效:如果同相端输入电压(CP0+引脚)小于反相端输入电压(引脚)小于反相端输入电压(CP0-引脚),则引脚),则MCU 被置于复位状态。被置于复位状态。操作方法:操作方法:向C0RSEF 标志(RSTSRC.5)写1可以将比较器0 配置为复位源。应在写C0RSEF之前用CPT0CN.7使能比较器0,以防止通电瞬间在输出端产生抖动,从而产生不希望的复位看门狗定时器复位:看门狗定时器复位:MCU 内部有一个使用系统时钟的可编程看门狗定时器(内部有一个使
9、用系统时钟的可编程看门狗定时器(WDT)。)。当看门狗定时器溢出时,当看门狗定时器溢出时,WDT 将强制将强制CPU 进入复位状态。进入复位状态。5.3 电源管理电源管理C8051F有两种可软件编程的电源管理方式:有两种可软件编程的电源管理方式:空闲空闲和和停机停机。空闲方式(等待方式)空闲方式(等待方式)CPU 停止运行,而外设和时钟处于活动状态。停止运行,而外设和时钟处于活动状态。工作电流:(工作电流:(10A5mA)停机方式(掉电方式)停机方式(掉电方式)CPU 停止运行,所有的中断和定时器(都处于非停止运行,所有的中断和定时器(都处于非活动状态,系统时钟停止。活动状态,系统时钟停止。工
10、作电流:工作电流:(0.2A)5.3.1 空闲方式空闲方式 将空闲方式选择位(PCON.0)置1 导致单片机停止CPU 运行并进入空闲方式。(1)进入空闲方式()进入空闲方式(IDLE)(2)空闲方式下单片机的状态)空闲方式下单片机的状态CPU停止运行;所有内部寄存器和存储器都保持原来的数据不变。所有模拟和数字外设在空闲方式期间都可以保持活动状态。PCON电源控制寄存器电源控制寄存器(3)单片机空闲方式的结束)单片机空闲方式的结束有被允许的有被允许的中断发生中断发生将结束空闲方式。将结束空闲方式。当有一个被允许的中断发生时,空闲方式选择位(PCON.0)被清0,CPU 将继续工作。该中断将得到
11、服务,中断返回(RETI)后将开始执行设置空闲方式选择位的那条指令的下一条指令。/RST 有效将结束空闲方式有效将结束空闲方式 如果空闲方式因一个内部或外部复位而结束,则单片机进行正常的复位过程并从地址0 x0000 开始执行程序。WDT 将产生一个内部看门狗复位,从而结束空闲方式。将产生一个内部看门狗复位,从而结束空闲方式。5.3.2 停机方式停机方式(1)进入停机方式()进入停机方式(STOP)将停机方式选择位(PCON.1)置1 导致CIP-51 进入停机方式,在执行完对该位置1 的指令后MCU 立即进入停机方式。(2)停机方式下单片机的状态)停机方式下单片机的状态CPU 和振荡器都被停
12、止,实际上所有的数字外设都停止工作。(3)单片机停机方式的结束)单片机停机方式的结束只有内部或外部复位能结束停机方式。5.2.4 I/O端口和交叉开关特点及配置端口和交叉开关特点及配置 C8051F020有按有按8 位端口组织的位端口组织的64 个数字个数字I/O 引脚。引脚。低端口(低端口(P0、P1、P2 和和P3)既可以按位寻址也可以既可以按位寻址也可以按字节寻址。按字节寻址。高端口(高端口(P4、P5、P6 和和P7)只能按字节寻址。只能按字节寻址。所有引脚都耐所有引脚都耐5V 电压,都可以被配置为:电压,都可以被配置为:漏极开路漏极开路或或 推挽输出方式推挽输出方式和和弱上拉弱上拉。
13、(1)I/O 端口结构端口结构(2)I/O 端口直流电气特性端口直流电气特性 C8051F020的数字资源需要通过的数字资源需要通过4 个低端个低端I/O 端口才能使用。每个引脚既可端口才能使用。每个引脚既可定义为通用的端口定义为通用的端口I/O(GPIO)引脚,又可以分配给一个数字外设或功能)引脚,又可以分配给一个数字外设或功能.(3)低端口功能结构低端口功能结构(4)优先权交叉开关译码器优先权交叉开关译码器 及交叉开关配置交叉开关配置 优先权交叉开关译码器,为每个优先权交叉开关译码器,为每个I/O功能分配优先权,从功能分配优先权,从优先权最优先权最高的高的UART0开始。当一个数字资源被选
14、择时,尚未分配的端口引脚中开始。当一个数字资源被选择时,尚未分配的端口引脚中的的最低位最低位被分配给该资源被分配给该资源 优先权高优先权高-优先权低优先权低由低位端口开始分配由低位端口开始分配寄存器寄存器XBR0、XBR1 和和XBR2用于为数字用于为数字I/O资源分配物理资源分配物理I/O引脚。引脚。XBR0:端口I/O交叉开关寄存器0 XBR1:端口I/O交叉开关寄存器1 XBR2:端口I/O交叉开关寄存器2 交叉开关寄存器被正确配置后,通过将交叉开关寄存器被正确配置后,通过将XBARE(XBR2.6)设置为逻辑设置为逻辑1来使能交叉开关。来使能交叉开关。(5)配置端口引脚的输出方式配置端
15、口引脚的输出方式 每个端口引脚的输出方式都可被配置为每个端口引脚的输出方式都可被配置为漏极开路漏极开路或或推挽方式推挽方式,缺省状态为漏极开路。缺省状态为漏极开路。端口端口0-3 引脚的输出方式由引脚的输出方式由PnMDOUT 寄存器寄存器中的对应位决定。中的对应位决定。例如例如:P3MDOUT.7 为逻辑1时将P3.7 配置为推挽方式;P3MDOUT.7为逻辑0时将P3.7 配置为漏极开路方式。P1MDOUT:端口:端口0输出方式寄存器输出方式寄存器 通过设置输出方式为通过设置输出方式为“漏极开路漏极开路”并向端口数据寄存器中的相应并向端口数据寄存器中的相应位写位写1将端口引脚配置为数字输入
16、。将端口引脚配置为数字输入。例如:例如:设置设置P3MDOUT.7 为逻辑为逻辑0,并设置,并设置P3.7 为逻辑为逻辑1即可将即可将P3.7 配置为数字输入。配置为数字输入。(6)配置端口引脚的输入方式配置端口引脚的输入方式(7)配置端口配置端口1 的引脚为模拟输入(的引脚为模拟输入(AIN.7:0)端口端口1 的引脚可以用作的引脚可以用作ADC1 模拟多路开关的模拟输入。通过向模拟多路开关的模拟输入。通过向P1MDIN 寄存器中的对应位写寄存器中的对应位写0即可将端口引脚配置为模拟输入。即可将端口引脚配置为模拟输入。缺省情况下端口引脚为数字输入方式。缺省情况下端口引脚为数字输入方式。注意:
17、注意:被配置为模拟输入的引脚所对应的P1MDOUT 位应被设置为逻辑0(漏极开路方式),对应的端口数据位应被设置为逻辑1(高阻态)。5.2.5 单片机的初始化设置单片机的初始化设置 看门狗初始化开启还是禁止、如果开启则喂狗周期为多少;看门狗初始化开启还是禁止、如果开启则喂狗周期为多少;时钟系统的初始化确定系统的工作时钟源及频率;时钟系统的初始化确定系统的工作时钟源及频率;I/O引脚输入输出方式初始化输入:模拟还是数字、输出:推挽还是开漏;引脚输入输出方式初始化输入:模拟还是数字、输出:推挽还是开漏;数字外设的配置和交叉开关设置;数字外设的配置和交叉开关设置;单片机进行初始化单片机进行初始化,包括以下几点: