求51单片机做能定1微秒的定时器要c语言程序,晶振为12M,P1.7口循环输出高电平150微秒,低电平150微秒
1个回答
展开全部
#include <REG51.H>
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。
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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询