增强型单片机STC12C5A60S2输出各种频率方波信号

【例7-3】 设时钟频率Fosc=18.432MHz,设计程序,从P1.0/CLKOUT2引脚输出频率为124.540KHz的时钟;从T0(P3.4)引脚输出频率为125KHz的时钟;从T1(P3.5)引脚输出频率为38.4KHz的时钟。
解:使用STC12C5A60S2的可编程时钟输出功能完成所需要求。在下面的程序设计中(在此只给出C语言程序),T0、T1和独立波特率发生器BRT均工作在1T模式。
程序编制如下:
#include "stc12c5a.h"        //包含STC12C5A60S2的寄存器定义头文件
void main(void)
{
    TMOD = 0x22;               //T0和T1工作在方式2,8位自动重装计数器
    AUXR = AUXR | 0x80;      //T0工作在1T模式
    AUXR = AUXR | 0x40;      //T1工作在1T模式
    AUXR = AUXR | 0x04;      //独立波特率发生器工作在1T模式
//设置BRT的8位自动重装计数初值,输出时钟频率124.540KHz
    BRT = (256-74); 
//设置T0的8位自动重装计数初值,输出频率18432000/2/74 = 124540.54约为125KHz
    TH0 = (256-74);
//设置T1的8位自动重装计数初值,输出时钟频率18432000/2/240 = 38400Hz
    TH1 = (256-240); 
    WAKE_CLKO=WAKE_CLKO|0x07; //允许T0,T1,独立波特率发生器输出时钟
    TR0 = 1;      //启动T0开始计数,对系统时钟进行分频输出
    TR1 = 1;      //启动T1开始计数,对系统时钟进行分频输出
    AUXR =AUXR|0x10;  //启动BRT工作,对系统时钟进行分频输出
//至此时钟已经输出,用户可以通过示波器观看到输出的时钟频率
    while(1);
}


公式:fclk=sysclk/(256-BRT)/2 
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值