设单片机的晶体震荡器的频率是11.0592MHz,利用定时器1采用方式1定时20ms,写出初值的计

设单片机的晶体震荡器的频率是11.0592MHz,利用定时器1采用方式1定时20ms,写出初值的计算过程和整个定时器初始化程序,同时写出在p1.7脚上输出0.2秒的方波的完整程序。

一个机器周期=1/11.0592/12=1.08507us
20毫秒需要周期数=20*1000/1.08507=18432
所以初值为65536-18432
#include<reg51.h>
#define uchar unsigned char
uchar times=0;
sbit p17=P1^7;
void t0isr() interrupt 1
{
TH0=(65536-18432)/256;
TL0=(65536-18432)%256;
times++;
if(times>=5){p17=~p17;times=0;}
}
main()
{
TMOD=0x01;
TH0=(65536-18432)/256;
TL0=(65536-18432)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
温馨提示:答案为网友推荐,仅供参考
相似回答