STC12C5A60S2可编程时钟模块及系统省电模块代码.doc

上传人:白大夫 文档编号:3273396 上传时间:2019-08-07 格式:DOC 页数:6 大小:29.50KB
返回 下载 相关 举报
STC12C5A60S2可编程时钟模块及系统省电模块代码.doc_第1页
第1页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《STC12C5A60S2可编程时钟模块及系统省电模块代码.doc》由会员分享,可在线阅读,更多相关《STC12C5A60S2可编程时钟模块及系统省电模块代码.doc(6页珍藏版)》请在三一文库上搜索。

1、STC12C5A60S2可编程时钟模块及系统省电模块代码本文为大家带来STC12C5A60S2可编程时钟模块及系统省电模块代码介绍。STC12C5A60S2寄存器介绍/*/ STC12C5A60S2可编程时钟模块/ 说明:STC12C5A60S2单片机有三路可编程时钟输出CLKOUT0/T0/P3.4/ CLKOUT1/T1/P3.5、CLKOUT2/P1.0/ 涉及寄存器:AUXR(辅助寄存器)、WAKE_CLKO(时钟与系统掉电唤醒控制寄存器)/ BRT(独立波特率发生器定时器寄存器)/ 程序说明:/ 本程序可选实现P3.4输出CLKOUT0时钟、P3.5输出CLKOUT1时钟/ P1.0

2、输出CLKOUT2时钟/*/#include STC12C5A60S2.H#include intrins.h/#define Port_BRT /如果想测试独立波特率发生器时钟输出请打开此句/若想测试CLKOUT1和CLKOUT0请注释此句#ifdef Port_BRT /*条件编译独立波特率发生器时钟输出*/*/ CLKOUT2时钟初始化 /*/void CLKOUT_init(void)WAKE_CLKO = 0x04; /Bit2-BRTCLKO 允许P1.0配置为独立波特率发生器的时钟输出/BRT工作在1T模式下时的输出频率 = Sysclk/(256-BRT)/2/BRT工作在12

3、T模式下时输出频率 = Sysclk/12/(256-BRT)/2AUXR = 0x14; /Bit4-BRTR 允许独立波特率发生器运行/Bit2-BRTx12 BRT工作在1T模式下BRT = 0xff; /更改该寄存器的值可实现对输出的时钟频率进行分频#else /*条件编译CLKOUT0时钟输出*/*/ CLKOUT0时钟和CLKOUT1初始化 /*/void CLKOUT_init(void)WAKE_CLKO = 0x03; /允许将P3.4/T0脚配置为定时器0的时钟输出CLKOUT0/T0工作在1T模式时的输出频率 = SYSclk/(256-TH0)/2/T0工作在12T模式

4、时的输出频率 = SYSclk/12/(256-TH0)/2/1T指的是每1个时钟加1,是普通C51的12倍/12T指的是每12个时钟加1与普通C51一样/允许将P3.5/T1脚配置为定时器1的时钟输出CLKOUT1,只能工作在定时器模式2下/T1工作在1T模式时的输出频率 = SYSclk/(256-TH0)/2/T1工作在12T模式时的输出频率 = SYSclk/12/(256-TH0)/2/1T指的是每1个时钟加1,是普通C51的12倍/12T指的是每12个时钟加1与普通C51一样AUXR = 0xc0; /T0定时器速度是普通8051的12倍,即工作在1T模式下/T1定时器速度是普通8

5、051的12倍,即工作在1T模式下TMOD = 0x22; /定时器0工作模式为方式2,自动装载时间常数/定时器1工作模式为方式2,自动装载时间常数TH0 = 0xff; /更改该寄存器的值可实现对输出的时钟频率进行分频TL0 = 0xff;TH1 = 0xff; /更改该寄存器的值可实现对输出的时钟频率进行分频TL1 = 0xff;TR1 = 1;TR0 = 1;#endif/*/ 主程序 /*/void main()CLKOUT_init();while(1);/*/ STC12C5A60S2系统时钟模块/ 说明: STC12C5A60S2单片机有两个时钟源,内部R/C振荡时钟和外部晶体时

6、钟/ 出厂标准配置是使用外部晶体或时钟/ 涉及寄存器:CLK_DIV(时钟分频寄存器)/ 由该寄存器的Bit0-2组合可实现对时钟源进行0、2、4、8、16/ 32、64、128分频/ / 程序说明:/ 对外部时钟进行分频得到Sysclk,然后经过P1.0的独立波特率/ 时钟输出功能Sysclk/2输出时钟频率/*/#include STC12C5A60S2.h#include intrins.h#define Bus_clk 12 /若要修改系统时钟直接在此处修改/12 为 12M 的sysclk/6 为 6M 的sysclk/3 为 3M 的sysclk/1500 为 1.5M 的sysc

7、lk/750 为 750kHz 的sysclk/375 为 375kHz 的sysclk/187500 为 187.5kHz 的sysclk/93750 为 93.75kHz 的sysclk/*/ 系统时钟初始化 /*/void Sysclk_init(void)WAKE_CLKO = 0x04; /配置P1.0口为频率输出AUXR = 0x14; /允许波特率时钟工作/工作模式为1TBRT = 0xff;#if( Bus_clk = 12 )CLK_DIV = 0x00;#elif( Bus_clk = 6 )CLK_DIV = 0x01;#elif( Bus_clk = 3 )CLK_DI

8、V = 0x02;#elif( Bus_clk = 1500 )CLK_DIV = 0x03;#elif( Bus_clk = 750 )CLK_DIV = 0x04;#elif( Bus_clk = 375 )CLK_DIV = 0x05;#elif( Bus_clk = 187500 )CLK_DIV = 0x06;#elif( Bus_clk = 93750 )CLK_DIV = 0x07;#endif/*/ 主程序 /*/void main()Sysclk_init();while(1);STC12C5A60S2省电模块代码/*/ STC12C5A60S2系统省电模块 / 说明: STC12C5A60S2单片机有三种省电模式以降低功耗。空闲模式,低速模式/ 掉电模式/ 涉及寄存器:PCON(电源控制寄存器)/ Bit0 - IDL 控制单片机进入IDLE空闲模式/ Bit1 - PD 控制单片机进入掉电模式/ / 程序说明: 程序实现让单片机先工作一阵子(通过P0指示灯显示)/ 然后进入掉电状态,利用外部中断0口来唤醒单片机工作/ 唤醒后单片机将通过P0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1