STC5A60S2_时钟输出
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} if(num==CLOCKOUT0) {
TMOD = 0X22; //T0,T1 工作在模式 2,8 位自动重装计数模式 AUXR = (AUXR | 0X80);//T0 工作在 1T 模式 TH0 = (256-73); //对 T0 做时钟输出的 8 位重装数,11119570/2/74=124540.54 约 75.132KHZ WAKE_CLKO= (WAKE_CLKO | 0X01);//允许 T0,T1,独立波特率发生器输出 时钟 TR0 = 1;//启动 T0 开始计数工作,对系统时钟进行分频输出 } if(num==CLOCKOUT1)
Biblioteka Baidu
@输入参数:num 波特率输出引脚选择 @输出参数:无 @备注:
定时器设置在 1T 模式,需要时可修改
*/
void CLK_OUT_Init(unsigned char num)
{ if(num==CLOCKOUT_ALL) //选择时钟输出 0 为输出端口
{ TMOD = 0X22; //T0,T1 工作在模式 2,8 位自动重装计数模式 AUXR = (AUXR | 0X80);//T0 工作在 1T 模式 AUXR = (AUXR | 0X40);//T1 工作在 1T 模式 AUXR = (AUXR | 0X04);//独立波特率发生器工作在 IT 模式
/**********时钟输出设置函数***************************/
/*
@函数功能:设置时钟输出
@参数说明:num :时钟输出引脚选择
CLCLKOUT0
T0 定时器 1 输出时钟
CLCLKOUT1
T1 定时器 1 输出时钟
P3^4 P3^5
CLCLKOUT2
DLCLKOUT2 时钟输出 P1^0
前言:在项目中,经常要涉及时钟信号输入的问题,常用的方法,一个是在硬件上焊接有源 晶振,一个是通过 MCU 输入时钟信号,到达时序匹配的目的。在学习完 51 单片机的基本 原理后,对于 51 单片机的基本功能已经有了掌握,对于 STC12C5A60S2 相对功能强大的单 片机,功能使用依旧不够熟练,故设计本次试验,学习 STC12C5A60S2 的可编程时钟输出 的功能。 实验验目的:@学习整理 STC5A60S2 单片机有关可编程时钟输出的功能的资料
5559.785KHZ
时钟
WAKE_CLKO= (WAKE_CLKO | 0X04);//允许 T0,T1,独立波特率发生器输出
AUXR = (AUXR | 0X10);//启动独立波特率发生器开始计数工作,对系统时钟进 行分频输出
}
后注:以上资料由 小赖 整理,可供参考学习,请尊重劳动成果,切勿传置百度文库等网 上搜索资源。 2014-5-19
@积累模块,以便日后开发调用。 实验内容: 1. 寄存器相关 AUXR:
b2,b6,b7 分别用来设置独立波特率定时器,T0,T1 的时钟模式。置 1,则为 1T 模式; b4 为独立波特率定时器计时开始控制位。置 1,则开始计数。 WAKE_CLKO:
b0,b1,b1 分别控制 CLOCKOUT0,CLOCKOUT1,CLOCKOUT2 的时钟输出允许。 2. 实验程序 /*********************************CLK_OUT.H 文件****************************/ #ifndef __CLK_OUT_H #define __CLK_OUT_H
//#include "SX.H"
#define CLOCKOUT0 0
#define CLOCKOUT1
1
#define CLOCKOUT2
2
#define CLOCKOUT_ALL 3
void CLK_OUT_Init(unsigned char num);
#endif
/*********************************CLK_OUT.C 文件****************************/ #include "CLK_OUT.H" #include "STC12C5A60S2.H" //#include "SX.H"
时钟
WAKE_CLKO= (WAKE_CLKO | 0X07);//允许 T0,T1,独立波特率发生器输出
TR0 = 1;//启动 T0 开始计数工作,对系统时钟进行分频输出 TR1 = 1;//启动 T1 开始计数工作,对系统时钟进行分频输出 AUXR = (AUXR | 0X10);//启动独立波特率发生器开始计数工作,对系统时钟进 行分频输出 //至此,时钟信号已经输出
时钟 TR1 = 1;//启动 T1 开始计数工作,对系统时钟进行分频输出 AUXR = (AUXR | 0X10);//启动独立波特率发生器开始计数工作,对系统时钟进
行分频输出
}
if(num==CLOCKOUT2)
{ AUXR = (AUXR | 0X04);//独立波特率发生器工作在 IT 模式 BRT = (256-1); //对 BRT 独 立 波 特率 发生 定时 器送 8 位 重装 值, 输出
{ TMOD = 0X22; //T0,T1 工作在模式 2,8 位自动重装计数模式 AUXR = (AUXR | 0X40);//T1 工作在 1T 模式 TH1 = (256-240); //对 T0 做时钟输出的 8 位重装数 11118570/2/240=23.163KHZ WAKE_CLKO= (WAKE_CLKO | 0X02);//允许 T0,T1,独立波特率发生器输出
BRT = (256-1); //对 BRT 独 立 波 特率 发生 定时 器送 8 位 重装 值, 输出 5559.785KHZ
TH0 = (256-73); //对 T0 做时钟输出的 8 位重装数,11119570/2/74=124540.54 约 75.132KHZ
TH1 = (256-240); //对 T0 做时钟输出的 8 位重装数 11118570/2/240=23.163KHZ