想用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++;
			
			
			
						
			
 我要赚赏金
