想用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++;