我用51定时器作个1s定时 用的是50MS*20 放了2个LED 进入中断有一个,1S到有一个 ,都是时间到闪烁。可是我仿真结果,50MS定时到的比1S到的灯闪的还快。程序如下:
sbit led=P2^0;
sbit led1=P2^4;
void T0_Init () //定时器0初始化
{
TMOD = 0x01;
TH0 = (65536-50000) /256;
TL0 = (65536-50000) %256;
EA = 1;
ET0 = 1;
}
void Time0_Int() interrupt 1 //中断处理函数:定时器中断0
{ static unsigned int c;
EA = 0;
led=~led;
TH0 = (65536-50000) /256;
TL0 = (65536-50000) %256;
c++;
if(c==20)
{ c=0;
led1=~led1;
//s++;
}
EA = 1;
}
谢谢各位!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
用one-shot 跑的不快了 谢谢。但是P2.0口本譔是50MS高,50MS低,用示波器测到的只有5MS高 5MS低,导致P2.4口上为100MS高,100MS低,感觉是定时器初值没写对。
对了,电压幅度倒是够了 接近5V
就是这个周期还不对
晕倒,下次把程序贴完整啊!!!!!
恩 谢谢 主要是在调这一块 没想到其它的 后来一看 才发现那也初始化了
一周热门 更多>