仪器社区

C51单片机计时器50ms程序编写

凌魂丿灬泣 2017-05-24
评论
全部评论
坐灼琢纵淄桩
#include
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
P0=~P0;
}
6 0 2017-05-25 0条评论 回复
mm13981nk47
12MHz晶振,经典51核是12分频,因此时钟周期为1μs。
50ms = 50000μs,因此定时器累加至溢出需要50000个周期。
因此65536 - 50000 = 15536 = 0x3CB0
因此TH0 = 0x3C,TL0 = 0xB0。
0x4C00这个初值对应的不是12MHz晶振,*而是11.0592MHz晶振。你抄错了。
2 0 2017-05-25 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论