某单片机控制系统需要在P1.2引脚输出周期为10ms的等宽方波,已知晶振频率为12MHz,要求用定时器0,工作方式2,中断方式,编写程序

1个回答
展开全部
摘要 #include void timer0_init(void){ TMOD = 0x01; //定时器0工作模式1 TH0 = 0xB8; //定时器0初值120万次 TL0 = 0x00; TR0 = 1; //定时器0开始计时 ET0 = 1; //使能定时器0中断 EA = 1; //使能总中断}void main(void){ timer0_init(); //初始化定时器0 P1 = 0x00; //将P1口设置为输出 P1_2 = 1; //将P1.2口设置为等宽方波 while(1);}/*该程序的功能是使用定时器0在P1.2引脚输出周期为10ms的等宽方波,已知晶振频率为12MHz。*/
咨询记录 · 回答于2022-12-23
某单片机控制系统需要在P1.2引脚输出周期为10ms的等宽方波,已知晶振频率为12MHz,要求用定时器0,工作方式2,中断方式,编写程序
1 写出计数初值的计算过程2 编写程序
麻烦了
好的
计数初值的计算过程是:首先,计算出定时器0的计数值,计数值=12000000/10ms=120000,然后将计数值赋值给定时器0的计数寄存器,即可得到计数初值。
如果编写程序,你需要说明你要实现的功能
这个问题有点太抽象了
介绍具体的功能
有个这个表你看是要求吗
是的
#include void timer0_init(void){ TMOD = 0x01; //定时器0工作模式1 TH0 = 0xB8; //定时器0初值120万次 TL0 = 0x00; TR0 = 1; //定时器0开始计时 ET0 = 1; //使能定时器0中断 EA = 1; //使能总中断}void main(void){ timer0_init(); //初始化定时器0 P1 = 0x00; //将P1口设置为输出 P1_2 = 1; //将P1.2口设置为等宽方波 while(1);}/*该程序的功能是使用定时器0在P1.2引脚输出周期为10ms的等宽方波,已知晶振频率为12MHz。*/
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消