(12)--6 STC单片机时钟、复位和电源模式原理及实现.ppt

上传人:奉*** 文档编号:96428624 上传时间:2023-11-27 格式:PPT 页数:43 大小:644.60KB
返回 下载 相关 举报
(12)--6 STC单片机时钟、复位和电源模式原理及实现.ppt_第1页
第1页 / 共43页
(12)--6 STC单片机时钟、复位和电源模式原理及实现.ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《(12)--6 STC单片机时钟、复位和电源模式原理及实现.ppt》由会员分享,可在线阅读,更多相关《(12)--6 STC单片机时钟、复位和电源模式原理及实现.ppt(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第 6章 STC单片机时钟、复位和电源模式原理及实现nSTC单片机时钟nSTC单片机复位nSTC单片机电源模式本章主要内容6.1 STC单片机时钟 1.时钟源的选择外部时钟内部RC振荡器时钟 当从XTAL1端直接输入外部时钟信号源时,XTAL2端悬空。外部时钟采用外部时钟时,由XTAL1、XTAL2引脚外接石英晶体和微调电容产生时钟信号,时钟信号的频率取决于晶振的频率,电容器的作用是稳定频率和快速起振。悬空XTAL1XTAL2VSS外部时钟STC15W4K58S4至内部时钟电路振荡器石英晶体XTAL1XTAL2C1 30pFC2 30pFSTC15W4K58S4内部RC振荡器时钟如果使用STC

2、15系列单片机的内部RC振荡器,XTAL1和XTAL2引脚悬空。2.STC单片机可编程时钟分频器时钟源信号的频率记为 fOSCCPU和内部模块工作的时钟称为系统时钟,记为 fSYS fSYSfOSC/N 其中N 为时钟分频器的分频系数比特比特B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0名字名字MCKO_S1MCKO_S1MCKO_S0MCKO_S0ADRJADRJTx_RxTx_RxMCLKO_2MCLKO_2CLKS2CLKS2CLKS1CLKS1CLKS0CLKS0MCKO_S1MCKO_S1MCKO_S0MCKO_S0含义含义0 00 0主时钟不对外输出时钟主时钟不对

3、外输出时钟0 01 1输出时钟,输出时钟频率输出时钟,输出时钟频率=SYSclk=SYSclk的的时钟频率时钟频率1 10 0输出时钟,输出时钟频率输出时钟,输出时钟频率=SYSclk=SYSclk的的时钟频率时钟频率/2/21 11 1输出时钟,输出时钟频率输出时钟,输出时钟频率=SYSclk=SYSclk的的时钟频率时钟频率/4/4CLKS2CLKS2CLKS1CLKS1CLKS0CLKS0含义含义0 00 00 0主时钟频率主时钟频率/1/10 00 01 1主时钟频率主时钟频率/2/20 01 10 0主时钟频率主时钟频率/4/40 01 11 1主时钟频率主时钟频率/8/81 10

4、00 0主时钟频率主时钟频率/16/161 10 01 1主时钟频率主时钟频率/32/321 11 10 0主时钟频率主时钟频率/64/641 11 11 1主时钟频率主时钟频率/128/128CLK_DIV寄存器中的比特位说明及功能MCLKO_2MCLKO_2 0 0 P5.4 P5.4 对外输出时钟对外输出时钟MCLKO_2MCLKO_2 1 1 P1.6 P1.6 对外输出时钟对外输出时钟3.STC单片机时钟应用实例【例】控制STC单片机输出时钟频率C语言描述的例子sfr CLK_DIV=0 x97;/声明CLK_DIV寄存器的地址void main()CLK_DIV=0 xc5;/给C

5、LK_DIV寄存器赋值0 xc5while(1);/无限循环 比特比特B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0名字名字MCKO_S1MCKO_S1MCKO_S0MCKO_S0ADRJADRJTx_RxTx_RxMCLKO_2MCLKO_2CLKS2CLKS2CLKS1CLKS1CLKS0CLKS00 xc50 xc51 11 10 00 00 01 10 01 1MCKO_S1MCKO_S1MCKO_S0MCKO_S0含义含义0 00 0主时钟不对外输出时钟主时钟不对外输出时钟0 01 1输出时钟,输出时钟频率输出时钟,输出时钟频率=SYSclk=SYSclk的的时钟频

6、率时钟频率1 10 0输出时钟,输出时钟频率输出时钟,输出时钟频率=SYSclk=SYSclk的的时钟频率时钟频率/2/21 11 1输出时钟,输出时钟频率输出时钟,输出时钟频率=SYSclk=SYSclk的的时钟频率时钟频率/4/4CLKS2CLKS2CLKS1CLKS1CLKS0CLKS0含义含义0 00 00 0主时钟频率主时钟频率/1/10 00 01 1主时钟频率主时钟频率/2/20 01 10 0主时钟频率主时钟频率/4/40 01 11 1主时钟频率主时钟频率/8/81 10 00 0主时钟频率主时钟频率/16/161 10 01 1主时钟频率主时钟频率/32/321 11 10

7、 0主时钟频率主时钟频率/64/641 11 11 1主时钟频率主时钟频率/128/128CLK_DIV寄存器中的比特位说明及功能MCLKO_2MCLKO_2 0 0 P5.4 P5.4 对外输出时钟对外输出时钟MCLKO_2MCLKO_2 1 1 P1.6 P1.6 对外输出时钟对外输出时钟n输出时钟的频率为:f输出=f主时钟/(324)6.2 STC单片机复位复位是单片机恢复原始默认状态的操作。复位后CPU及其它功能部件都处在一确定的初始状态,并从这个状态开始工作。寄存器名称复位默认值寄存器名称复位默认值PC0 x0000TMOD0 x00DPTR0 x0000TCON0 x00A0 x0

8、0IP0 x00B0 x00IE0 x00PSW0 x00SCON0 x00SP0 x07PCON00110000BP0 P50 xFFSBUFXXXXXXXXB表中的标示可以是任意值(0或1),B表示是二进制。复位时片内部分寄存器的初始值复位种类复位源上电复位标志(POF)复位后程序启动区域冷启动复位系统停电后再上电引起的硬复位1从系统ISP监控程序区开始执行程序,如果检测不到合法的ISP下载命令流,将软复位到用户程序区执行用户程序热启动复位通过控制RST引脚产生的硬复位不变从系统ISP监控程序区开始执行程序通过对IAP_CONTR寄存器操作软复位不变若(SWBS)=1,软复位到系统ISP监

9、控程序区;若(SWBS)=0,软复位到用户程序区0 x0000处内部看门狗复位不变若(SWBS)=1,复位到系统ISP监控程序区;若(SWBS)=0,复位到用户程序区0 x0000处。STC单片机复位方式STC15系列单片机提供了7种复位方式,包括:n外部RST引脚复位n软件复位n掉电复位/上电复位n看门狗复位n内部低压检测复位nMAX810专用复位电路复位n程序地址非法复位。n在STC15系列单片机中,复位引脚设置在P5.4引脚上。n在外部复位时,需要将RST复位引脚拉高并至少维持24个时钟外加20S后,单片机就会稳定进入复位状态。n外部RST引脚复位是热启动复位中的硬复位。1、外部RST引

10、脚复位外部RST引脚复位有两种方式:上电复位和手动按钮复位。(a)上电自动复位电路RSTMSC-51GND2001kVCC4.2V3.0V5Vt1 t2(b)手动按钮+自动复位电路0t 在系统运行过程中,有时会根据特殊需求,需要实现单片机系统软复位,用户只需简单的控制IAP_CONTR的其中两位SWBS/SWRST就可以系统复位了。IAP_CONTR地址B7B6B5B4B3B2B1B0复位值C7HIAPENSWBSSWRSTCMD_FAILWT2WT1WT00000 x0002、软件复位SWBS当该位为1时,选择从系统ISP监控区启动;当该位为0时,选择从用户应用程序区启动。SWRST当该位为

11、1时,软件控制单片机自动复位;当该位为0时,不产生任何操作。【例】软件控制STC单片机产生复位#include reg51.hsfr IAP_CONTR=0 xc7;/声明IAP_CONTR寄存器地址为0 xc7void main()long unsigned int j;P46=0;/P4.6置低,灯亮 P47=0;/P4.7置低,灯亮 for(j=0;j999999;j+);/软件延迟 P46=1;/P4.6置高,灯灭 P47=1;/P4.7置高,灯灭 for(j=0;j999999;j+);/软件延迟 IAP_CONTR=0 x60;/软件复位指令,从系统ISP监控区启动SWBS=1SW

12、RST=13、掉电/上电复位当电源电压VCC低于掉电复位/上电复位检测门限电压时,单片机复位。n该复位属于冷启动复位的一种。复位后从系统ISP监控区启动程序。n5V供电的单片机,掉电复位/上电复位检测门限电压为3.2V;n3.3V供电的单片机,掉电复位/上电复位检测门限电压为1.8V。STC15系列单片机内部集成了MAX810专用复位电路。当使能该专用复位电路时,在掉电复位/上电复位后产生约180mS复位延时,然后才结束复位过程。复位后,从系统ISP监控区启动程序。4、MAX810专用复位电路复位5、内部低压检测复位STC15系列单片机提供了一组内部低电压检测门限电压,当电源电压Vcc低于内部

13、低电压检测(LVD)门限电压时,可产生复位信号。属于热启动复位中的一种硬件复位方式。使能低电压检测中断时,当电源电压VCC低于内部低电压检测LVD门限电压时,硬件将中断请求标志位(LVDF)自动置位为1,必须用软件清0。如果ELVD(低压检测中断允许位)设置为1,就将向8051单片机的CPU发出低电压检测中断信号。n用户可以根据工作频率和供电电压,选择合理的LVD门限电压。典型地:p5V供电的单片机常温下工作频率大于20MHz,可以选择4.32V作为复位门限电压;常温下工作频率低于12MHz,可以选择3.82V电压作为复位门槛电压。p3.3V供电的单片机常温下工作频率大于20MHz,可以选择2

14、.82V作为复位门限电压;常温下工作频率低于12MHz,可以选择2.42V电压作为复位门槛电压。与低压检测有关的电源控制寄存器PCON。n该寄存器在特殊功能寄存器地址为0 x87H的位置。n当上电复位后该寄存器的值为0011,0000。比特比特B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0名字名字SMODSMODSMOD0SMOD0LVDFLVDFPOFPOFGF1GF1GF0GF0PDPDIDLIDLnLVDFp低电压检测标志位,同时也是低压检测中断请求标志位。nPOFp上电复位标志位。当单片机停电后,上电复位标志位为1,可由软件清零。6、看门狗复位 在一些对可靠性要求比较

15、苛刻的场合,例如:工业控制、汽车电子、航空航天等,为了防止“系统在异常情况下受到干扰,即:我们经常所说的程序跑飞,引入了看门狗(Watchdog)机制。n所谓的看门狗机制是指,如果MCU不在规定的时间内按规定访问看门狗,则认为MCU处于异常工作状态,看门狗就会强迫MCU进行复位,使系统重新从头开始按规律执行用户程序。n看门狗复位是热启动复位中的软件复位的一种方式。STC单片机内提供了看门狗控制寄存器WDT_CONTR,用于看门狗复位功能。n该寄存器在特殊功能寄存器地址为0 xC1的位置。n当复位后,该寄存器的值为0 x00000。比特B7B6B5B4B3B2B1B0名字WDT_FLGA-EN_

16、WDTCLR_WDTIDLE_WDTPS2PS1PS0看门狗溢出标志位看门狗允许位看门狗清零看门狗IDLEIDLE模式位看门狗定时器预分频值nPS2PS0:看门狗定时器预分频值。看门狗溢出时间由下面公式确定:溢出时间=(12预分频值32768)/振荡器频率 在不同振荡器频率下的看门狗溢出时间,如表所示。PS2PS1PS0预分频值看门狗溢出时间(20MHz)看门狗溢出时间(12MHz)看门狗溢出时间(11.0592MHz)000239.3mS65.5mS71.1mS001478.6mS131.0mS142.2mS0108157.3mS262.1mS284.4mS01116314.6mS524.2

17、mS568.8mS10032629.1mS1.0485S1.1377mS101641.25S2.0971S2.2755S1101282.5S4.1943S4.5511S1112565S8.3886S9.1022Sn在STC-ISP软件中,也提供了开启看门狗定时器和设置分频系数的功能。【例】控制STC单片机看门狗定时器复位#include reg51.hsfr WDT_CONTR=0 xc1;/声明看门狗定时器控制寄存器地址void main()long unsigned int j;/声明无符号长整型数jchar c=0 x10;/声明8位变量c,其值为0 x10P46=0;/置P4.6为低,

18、灯亮P47=0;/置P4.7低低,灯亮for(j=0;j12000000;j+);/循环延迟P46=1;/置P4.6为高,灯灭P47=1;/置P4.7为高,灯灭while(1)/无条件循环WDT_CONTR|=c;/按位或运算,将该寄存器CLR_WDT位置17、程序地址非法复位如果程序指针PC指向的地址空间超过了有效的程序地址空间的大小,就会引起程序地址非法复位。p该复位方式是热启动复位中的软件复位的一种方式。6.3 STC单片机电源模式STC15系列单片机提供了三种运行模式,以降低系统功耗,即:n低速模式、空闲模式和掉电模式。n典型地,对于STC15系列单片机来说:p正常工作模式下,功耗为2

19、.7mA7mA;p空闲模式下,功耗为1.8mA;p掉电模式下,功耗为0.1A。1、低速模式低速模式由时钟分频器CLK_DIV控制。n通过对主时钟分频从而降低单片机工作时钟频率,降低功耗以及EMI fSYSfOSC/N 其中N 为时钟分频器的分频系数2、空闲模式将IDL/PCON.0位置1,单片机将进入IDLE(空闲)模式。n在空闲模式下,仅CPU无时钟,但是外部中断、内部低压检测电路、定时器、ADC转换器等仍正常工作。n通过寄存器和STC-ISP软件,可以设置在空闲期间看门狗定时器是否继续计数。空闲模式和掉电模式由电源控制寄存器PCON控制。比特B7B6B5B4B3B2B1B0名字SMODSM

20、OD0LVDFPOFGF1GF0PDIDL数据RAM、堆栈指针SP、程序计数器PC、程序状态字PSW、累加器A等寄存器都保持原有的数据。I/O口保持空闲模式被激活前的逻辑状态。除了CPU外,单片机的所有外设都能正常工作。当产生任何一个中断时,它们均可以唤醒单片机。当唤醒单片机后,CPU继续执行进入空闲模式前的下一条指令。进入空闲模式后:#include reg51.h/声明外部中断0的中断服务程序void wakeup()interrupt 0void main()long int j;IT0=1;/只允许下降沿触发 EX0=1;/允许外部中断0 EA=1;/CPU允许响应中断【例】控制STC

21、单片机进入和退出空闲模式while(1)/无限循环 P46=0;/置P4.6为0,灯亮 P47=0;/置P4.7为0,灯亮 for(j=0;j222222;j+);/循环延迟 PCON|=0 x01;/进入空闲模式 P46=1;/置P4.6为1,灯灭 P47=1;/置P4.7为1,灯灭 for(j=0;j222222;j+);/循环延迟 3、掉电模式将PCON的PD位置1,STC单片机进入掉电模式,也称为停机模式。n进入掉电模式后,单片机所使用的时钟停止振荡,由于没有时钟振荡,CPU、看门狗、定时器、串行口、ADC等模块停止工作,只有外部中断(INT0-INT4)以及CCP继续工作。比特B7B

22、6B5B4B3B2B1B0名字SMODSMOD0LVDFPOFGF1GF0PDIDLn如果允许低压检测电路产生中断,则低压检测电路可以继续工作;否则,将停止工作。n进入掉电模式后,STC单片机的所有端口、特殊功能寄存器维持进入掉电模式前一时刻的状态不变。在掉电模式下:n进入掉电模式后,可将单片机唤醒的引脚资源有:p外部中断、引脚CCP0/CCP1/CCP2、引脚RxD/RxD2/RxD3/RxD4、引脚T0/T1/T2/T3/T4、低压检测中断。p内部低功耗掉电唤醒专用定时器。掉电唤醒专用寄存器n内部掉电唤醒定时器是一个15位的定时器,由特殊功能寄存器地址为0 xAA的WKTCL寄存器,以及地

23、址为0 xAB的WKTCH寄存器进行管理和控制。n由WKTCH的6:0和WKTCL的7:0构成最长15位的计数值(032767)。比特B7B6B5B4B3B2B1B0WKTCL WKTCHWKTEN内部掉电唤醒专用定时器WKTCH_CNT,WKTCL_CNL从7FFFH开始计数,直到与WKTCH,WKTCL寄存器所设置的值相等后,唤醒系统振荡器。n内部掉电唤醒专用定时器计数时间由下面公式确定:106S/掉电唤醒专用定时器时钟频率16计数次数例如:如果定时器时钟频率为32768Hz,则内部掉电唤醒专用定时器最短计数(计数一次)的时间为:106S/32768 161=488.28 S因此,内部掉电

24、唤醒专用定时器最长计数时间为488.28S32768=16Sn内部掉电唤醒定时器有自己专用的内部时钟,频率约为32768Hz。sfr WKTCL=0 xAA;/声明WKTCL寄存器的地址0 xAAsfr WKTCH=0 xAB;/声明WKTCH寄存器的地址0 xABvoid main()WKTCL=255;/设置唤醒周期为488S(255+1)=114.688mS WKTCH=0 x80;/设置使能掉电唤醒定时器 P46=0;/P4.6置0,灯亮 P47=0;/P4.7置0,灯亮【例】控制STC单片机进入和退出掉电模式 while(1)P46=!P46;P47=!P47;PCON|=0 x02;/进入掉电模式 _nop_();_nop_();/114.688mS后唤醒CPU继续循环

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com