仪器社区

假设单片机的晶体振荡器的频率是12mhz,利用定时器1工作方式0定时500ms

智炫堂 2016-06-26
写出初值的计算过程和整个定时器初始化程序,同时写出在P1.0脚上输出1秒的方波的程序... 写出初值的计算过程和整个定时器初始化程序,同时写出在P1.0脚上输出1秒的方波的程序
评论
全部评论
zhangqi0929
单片机晶振12M,一个机器周期是1us,定时500ms需要500000个机器周期,一次中断无法完成定时,需要多次定时才能实现,一次中断Z大定时时间是65.536ms,可以取一个整数,比如50ms,那么定时器的初值为:
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

初始化和方波程序如下:
#include
sbit pl=P1^0;
unsigned char num;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num>=10)
{
num=0;
pl=~pl;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
9 0 2016-06-27 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论