c8051f020学习笔记-时钟初始化

c8051f020学习笔记-时钟初始化

ID:18830080

大小:51.50 KB

页数:3页

时间:2018-09-26

c8051f020学习笔记-时钟初始化_第1页
c8051f020学习笔记-时钟初始化_第2页
c8051f020学习笔记-时钟初始化_第3页
资源描述:

《c8051f020学习笔记-时钟初始化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一,关于系统初始化程序,从现在的学习情况来看,基本上大部分的程序都用到时钟初始化.所以,把这部分内容作为第一个解决难题.。/--------------------------------------------------------------------//时钟初始化程序//将器件配置为使用外部CMOS时钟//--------------------------------------------------------------------voidsysclk_init(void){WDTCN=0xde;//禁止看门狗定时器WDTCN=0xad;

2、OSCXCN=0x67;for(i=0;i<256;i++);//XTLVLD有效需要大于1ms左右的时间while(!(OSCXCN&0x80));//等待外部振荡器起动OSCICN=0x88;//选择外部振荡器作为系统时钟//禁止内部振荡器}1.1看门狗定时器复位MCU内部有一个使用系统时钟的可编程看门狗定时器(WDT)。当看门狗定时器溢出时,WDT将强制CPU进入复位状态。为了防止复位,必须在溢出发生前由应用软件重新触发WDT。如果系统出现了软件/硬件错误,使应用软件不能重新触发WDT,则WDT将溢出并产生复位,这可以防止系统失控。1.2使能/复位W

3、DT向WDTCN寄存器写入0xA5将使能并复位看门狗定时器。用户的应用软件应周期性地向WDTCN写入0xA5,以防止看门狗定时器溢出。每次系统复位都将使能并启动WDT。向WDTCN寄存器写入0xDE后再写入0xAD将禁止WDT。所以,在前面的时钟初始化程序中,{WDTCN=0xde;//禁止看门狗定时器WDTCN=0xad;}禁止WDT。(具体寄存器参照C8051F02X.PDF第118页)1.3关于寄存器OSCXCN以及OSCICN关于OSCICN:(内部振荡器控制寄存器)MCU有一个内部振荡器和一个外部振荡器驱动电路,每个驱动电路都能产生系统时钟。MC

4、U在复位后从内部振荡器启动。内部振荡器的启动是瞬间完成的。内部振荡器可以被使能/禁止,其振荡频率可以用内部振荡器控制寄存器(OSCICN)改变。MSCLKEIFRDYCLKSLIOSCENIFCN1IFCN0位7位6位5位4位3位2位1位010001000位7,MSCLKE:时钟丢失使能位0:禁止时钟丢失检测器。1:使能时钟丢失检测器;检测到时钟丢失将触发复位从函数voidsysclk_init(void)来看,OSCICN=0X88,因此,bit7被置一了,禁止始终丢失检测器。位6-5:未用。读=00b,写=忽略。位4,IFRDY:内部振荡器频率准备好标

5、志0:内部振荡器频率不是按IFCN位指定的速度运行。1:内部振荡器频率按照IFCN位指定的速度运行。位3,CLKSL:系统时钟源选择位0:选择内部时钟源作为系统时钟。1:选择外部时钟源作为系统时钟。在这里被置高,即为选择外部时钟位2,IOSCEN:内部振荡器使能位0:内部振荡器禁止。1:内部振荡器使能。位1-0,IFCN1-0:内部振荡器频率控制位00:内部振荡器典型频率为2MHz。01:内部振荡器典型频率为4MHz。10:内部振荡器典型频率为8MHz。11:内部振荡器典型频率为16MHz。因为没有用到内部振荡器,所以该两位任意设置。关于OSCXCN:(外

6、部振荡器控制寄存器)当/RST引脚为低电平时,内外两个振荡器都被禁止。MCU可以从内部振荡器或外部振荡器运行,可使用OSCICN寄存器中的CLKSL位在两个振荡器之间随意切换。外部振荡器需要一个外部谐振器、并行方式的晶体、电容或RC网络连接到XTAL1/XTAL2引脚。必须在OSCXCN寄存器中为这些振荡源中的某一个配置振荡器电路。一个外部CMOS时钟也可以通过驱动XTAL1引脚提供系统时钟。XTAL1和XTAL2引脚的耐压值是3.6V(不是5V)。XTLVLDXOSCMD2XOSCMD1XOSCMD0-XFCN2XFCN1XFCN0位7位6位5位4位3位

7、2位1位001100111位7,XTLVLD:晶体振荡器有效标志(只有当XOSCMD=1xx时有效)0:晶体振荡器未用或未稳定。1:晶体振荡器正在运行并且工作稳定(为了避免瞬态条件,应在使能晶体振荡器工作1ms后开始读)。(该位是只读位,在实际应用中有一句判断while(!(OSCXCN&0x80)),即为判断晶体振荡器是否有效。)位6-4,XOSCMD2-0:外部振荡器方式位00x:关闭。XTAL1引脚内部接地。010:系统时钟为来自XTAL1引脚的外部CMOS时钟。10x:RC/C振荡器方式二分频。110:晶体振荡器方式。111:晶体振荡器方式二分频。

8、(在这里被设置为110,即为选择振荡器方式)位3,读0位2-0,X

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。