求51单片机做能定1微秒的定时器要c语言程序,晶振为12M,P1.7口循环输出高电平150微秒,低电平150微秒

2024-12-06 02:01:07
推荐回答(1个)
回答1:

#include
sbit pause = P1^7;
void main(void)
{ EA = 1;
TMOD = 0x01;
ET0 = 1;
TR0 = 1;
pause = 0;
while(1);
}
void timeint(void) interrupt 1
{ TH0 = (65536-150)/256;
TL0 = (65536-150)%256;
pause = !pause;
}
上面的程序产生的方波高低脉冲宽度应该在153-155uS之间,这是因为51在响应中断需要3-5个机器周期时间,将150改成146应该更准确些,但若是做题目,还应该是-150。