3个脚踏开关,每次踩下哪个,哪个发一个字符,只发一次,当其中一个被踩下没有离开时,在踩别的开关还能在继续发字符一次,我做的程序因为中断问题,发字符没问题,但是当一个脚踏开关没松开时,在踩别的脚踏开关则不起作用。
# include <reg52.h>
# define uchar unsigned char
# define uint unsigned int
sbit p00=P0^0;
sbit p01=P0^1;
sbit p02=P0^2;
sbit p03=P0^3;
sbit p04=P0^4;
sbit p05=P0^5;
sbit p06=P0^6;
sbit p07=P0^7;
uchar i;
//-------------------------
void delay(uint t)
{
while(t--);
}
//--------------------------
void chuan(uchar s1)
{
SBUF=s1;
while(!TI) ;
TI=0;
delay(6000) ;
}
//==========================
void main()
{
SCON=0X40;
TMOD=0X20;
TH1=0XFD ;
TL1=0XFD ;
TR1=1;
EA=1;
ES=1;
//==========================
while(1)
{
if(p00==0)
{
delay(600) ;
chuan(65) ;
while(!p00) ;
}
if(p01==0)
{
delay(600) ;
chuan(66) ;
while(!p01) ;
}
if(p02==0)
{
chuan(67) ;
while(!p02) ;
}
if(p03==0)
{
chuan(68) ;
while(!p03) ;
}
if(p04==0)
{
chuan(69) ;
while(!p04) ;
}
if(p05==0)
{
chuan(70) ;
while(!p05) ;
}
}
} |