51单片机中用按键调节温湿度上下限过程中液晶就会乱码 5
这是我做的毕设,想自己做却遇到了各种问题,液晶可以正常显示温湿度值,但是一旦用按键调节温湿度上下限时液晶就会乱码,过后液晶整个就不显示了着是按键调节的程序voidkeys...
这是我做的毕设,想自己做却遇到了各种问题,液晶可以正常显示温湿度值,但是一旦用按键调节温湿度上下限时液晶就会乱码,过后液晶整个就不显示了
着是按键调节的程序
void keyscan()
{
/**********功能选择**********/
if(s0==0)
{
delay10ms();
if(s0==0)
{ num++;
led0=1;
delay(10);
while(!s0);{led0=0;} //按一下灯亮一下声音响一声
/* if(num==1) {TR0=0;delay(10);}
if(num==2) {TR0=0;delay(10);}
if(num==3) {TR0=0;delay(10);} TR0=1;
if(num==4) {TR0=0;delay(10);}*/
if(num==5) {num=0;}
}
}
/*********功能加*********/
if(num!=0)
{
if(s1==0)
{
delay10ms();
if(s1==0)
{
led1=1;
BEEP=1;delay(10);
while(!s1);{BEEP=0;led1=0;} //按一下灯亮一下声音响一声
if(num==1) {TH++;if(TH==100) TH=0;writeT_HL(3,TH);LcdWriteCom(0x80+0x40+4);}
if(num==2) {TL++;if(TL==100) TL=0;writeT_HL(6,TL);LcdWriteCom(0x80+0x40+7);}
if(num==3) {RH++;if(RH==100) RH=0;writeR_HL(11,RH);LcdWriteCom(0x80+0x40+12);}
if(num==4) {RL++;if(RL==100) RL=0;writeR_HL(14,RL);LcdWriteCom(0x80+0x40+15);}
}
}
}
/**********功能减************/
if(num!=0)
{
if(s2==0)
{
delay10ms();
if(s2==0)
{
led2=1;
BEEP=1;delay(10);
while(!s2); {BEEP=0;led2=0;} //按一下灯亮一下声音响一声
if(num==1) {TH--;if(TH==-1) TH=99;writeT_HL(3,TH);LcdWriteCom(0x80+0x40+4);}
if(num==2) {TL--;if(TL==-1) TL=99;writeT_HL(6,TL);LcdWriteCom(0x80+0x40+7);}
if(num==3) {RH--;if(RH==-1) RH=99;writeR_HL(11,RH);LcdWriteCom(0x80+0x40+12);}
if(num==4) {RL--;if(RL==-1) RL=99;writeR_HL(14,RL);LcdWriteCom(0x80+0x40+15);}
}
}
}
}
这里为什么用到定时中断,我在编程的时候把这些去掉了,不知道这个对按键调节有没有影响 展开
着是按键调节的程序
void keyscan()
{
/**********功能选择**********/
if(s0==0)
{
delay10ms();
if(s0==0)
{ num++;
led0=1;
delay(10);
while(!s0);{led0=0;} //按一下灯亮一下声音响一声
/* if(num==1) {TR0=0;delay(10);}
if(num==2) {TR0=0;delay(10);}
if(num==3) {TR0=0;delay(10);} TR0=1;
if(num==4) {TR0=0;delay(10);}*/
if(num==5) {num=0;}
}
}
/*********功能加*********/
if(num!=0)
{
if(s1==0)
{
delay10ms();
if(s1==0)
{
led1=1;
BEEP=1;delay(10);
while(!s1);{BEEP=0;led1=0;} //按一下灯亮一下声音响一声
if(num==1) {TH++;if(TH==100) TH=0;writeT_HL(3,TH);LcdWriteCom(0x80+0x40+4);}
if(num==2) {TL++;if(TL==100) TL=0;writeT_HL(6,TL);LcdWriteCom(0x80+0x40+7);}
if(num==3) {RH++;if(RH==100) RH=0;writeR_HL(11,RH);LcdWriteCom(0x80+0x40+12);}
if(num==4) {RL++;if(RL==100) RL=0;writeR_HL(14,RL);LcdWriteCom(0x80+0x40+15);}
}
}
}
/**********功能减************/
if(num!=0)
{
if(s2==0)
{
delay10ms();
if(s2==0)
{
led2=1;
BEEP=1;delay(10);
while(!s2); {BEEP=0;led2=0;} //按一下灯亮一下声音响一声
if(num==1) {TH--;if(TH==-1) TH=99;writeT_HL(3,TH);LcdWriteCom(0x80+0x40+4);}
if(num==2) {TL--;if(TL==-1) TL=99;writeT_HL(6,TL);LcdWriteCom(0x80+0x40+7);}
if(num==3) {RH--;if(RH==-1) RH=99;writeR_HL(11,RH);LcdWriteCom(0x80+0x40+12);}
if(num==4) {RL--;if(RL==-1) RL=99;writeR_HL(14,RL);LcdWriteCom(0x80+0x40+15);}
}
}
}
}
这里为什么用到定时中断,我在编程的时候把这些去掉了,不知道这个对按键调节有没有影响 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询