找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1874|回复: 4
收起左侧

51单片机按键输入一串六位数密码显示在lcd上,按下后没反应?求指导

[复制链接]
ID:959883 发表于 2021-8-14 13:28 | 显示全部楼层 |阅读模式
初学单片机,求大神指导
#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);                 
                }        
        }               
}

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

使用道具 举报

ID:914633 发表于 2021-8-14 19:09 | 显示全部楼层
代码都不发全 怎么看得出问题
回复

使用道具 举报

ID:960569 发表于 2021-8-15 11:23 | 显示全部楼层
虽然不知道你的代码  你可以换一下你的思路  看到的LCD界面并从上面做出的选项不一定就是系统的步骤  有可能只是让LCD显示了汉字并没有给按键做出相应的操作
回复

使用道具 举报

ID:960726 发表于 2021-8-16 14:47 | 显示全部楼层
LcdWriteCom(0x80+0x40);                        LcdWriteData(KeyValue+0x30);     
回复

使用道具 举报

ID:960726 发表于 2021-8-16 14:50 | 显示全部楼层
for(i=0;i<10;i++)
{
LcdWriteCom(0x80+0x40);
LcdWriteData(i+0x30);
}   
你先测试一下这个显示部分呢?
接着看看,按键程序,是否建立了KeyState标志,KeyValue值的结果是否合理。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表