我是用中断写的,11.0592的晶振,然后用示波器测试波形的时候发现伯茨那个正常,20MS一个周期,高电平时间为1ms,接下来是程序
#include <reg52.h>
unsigned int a,b;
sbit c=P0^0;
void timer0 (void) interrupt 1
{
c=!c;
b=20000-b;
TH0=-(b/256);
TL0=-(b%256);
if(b>=500&&b<=2500)
b=a;
else
b=20000-a;
}
void main(void)
{
TMOD |=0x01;
c=1;
a=1500;
b=a;
TH0=-(a/256);
TL0=-(a%256);
EA=1;
ET0=1;
TR0=1;
TR1=1;
PT0=1;
while(1);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
赋值时添加“-”是利用了uint型数据最大为65536的特点,相当于65536-(b%256)的意思
受教了,多谢大神
是的,使用的同一个五伏电源
一周热门 更多>