想用51单片机通过按键控制继电器,按一次按键继电器吸合5秒,但现在除了第一次时间是正确的,之后每次时间都不一样,而且还没规律,想请教下是怎么回事呢?
这是我写的c程序
#include
#define uint unsigned int
#define uchar unsigned char
***it jidianqi=P0^0;
***it key=P0^1;
int i=0;
uint x=0;
void timer1_init()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
}
void delayms(uint x)
{
uint n,m;
for(n=x;n>0;n--)
for(m=110;m>0;m--);
}
void keyscan()
{
if(key==0)
{
delayms(10);
if(key==0)
{
jidianqi=1;
timer1_init();
}
}
}
void main()
{
jidianqi=0;
while(1)
{
keyscan();
if(i==135)
{
jidianqi=0;
i=0;
}
}
}
void timer1() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
i++;
我要赚赏金
