标题: 51单片机按键输入一串六位数密码显示在lcd上,按下后没反应?求指导 [打印本页]

作者: 殇两盏    时间: 2021-8-14 13:28
标题: 51单片机按键输入一串六位数密码显示在lcd上,按下后没反应?求指导
初学单片机,求大神指导
#include<reg51.h>        
#include"lcd.h"

#define GPIO_KEY P1

unsigned char KeyValue;
unsigned char KeyState;
unsigned char dat[]="0123456789ABCDEF";
unsigned char a[6]={0,0,0,0,0,0};
void Delay10ms();  
void KeyDown();               

//主函数
void main(void)
{
        unsigned char i;
        LcdInit();
        KeyState=0;
        while(1)
        {
                KeyDown();
                if(KeyState)
                {
                        KeyState=0;
                        for(i=0;i<6;i++)
           {
                        a[i+1]=a[ i];               
     }               
                        a[0]=KeyValue;
                        LcdWriteCom(0x80+0x40);
                       LcdWriteData(KeyValue+0x30);                 
                }        
        }               
}

//结果是按键按下,屏幕没反应,求大神

作者: hoodieboi    时间: 2021-8-14 19:09
代码都不发全 怎么看得出问题
作者: FAHASIKI    时间: 2021-8-15 11:23
虽然不知道你的代码  你可以换一下你的思路  看到的LCD界面并从上面做出的选项不一定就是系统的步骤  有可能只是让LCD显示了汉字并没有给按键做出相应的操作
作者: seuww    时间: 2021-8-16 14:47
LcdWriteCom(0x80+0x40);                        LcdWriteData(KeyValue+0x30);     
作者: seuww    时间: 2021-8-16 14:50
for(i=0;i<10;i++)
{
LcdWriteCom(0x80+0x40);
LcdWriteData(i+0x30);
}   
你先测试一下这个显示部分呢?
接着看看,按键程序,是否建立了KeyState标志,KeyValue值的结果是否合理。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1