m0_58061620 2022-05-21 17:15 采纳率: 49.5%
浏览 28
已结题

按下按键,LCD为什么没有显示


#include<reg51.h>
unsigned char num='0';
void initlcd()
{
   writecmd(0x38);
   writecmd(0x0c);
   writecmd(0x06);
   writecmd(0x01);
}

void key_scan()
{
    unsigned char temp0,temp1,temp;
    P1=0xf0;
    if(P1!=0xf0)//有键按下
    {
        delay(20);
        temp0=P1;
        P1=0x0f;
        if(P1!=0x0f)
        {
            temp1=P1;
        }
    
    }
    temp=temp0+temp1;
    switch(temp)
    {
    case 0xee:num='A';break;
    case 0xed:num='B';break;
    case 0xeb:num='C';break;
    case 0xe7:num='D';break;
    case 0xde:num='E';break;
    case 0xdd:num='F';break;
    case 0xdb:num='G';break;
    case 0xd7:num='H';break;
    case 0xbe:num='I';break;
    case 0xbd:num='J';break;
    case 0xbb:num='K';break;
    case 0xb7:num='L';break;
    case 0x7e:num='M';break;
    case 0x7d:num='N';break;
    case 0x7b:num='O';break;
    case 0x77:num='P';break;
    
    }

}

void  LCD()
{
    initlcd();
    writecmd(0x82);
    writedat(num);
}
void main ()
{
while(1)
{
    void key_scan();
    void  LCD();
}
}


  • 写回答

1条回答 默认 最新

  • qllaoda 2022-05-21 23:06
    关注

    没仔细看函数实现,主程序的函数调用就有问题
    while(1)
    {
    void key_scan();
    void LCD();
    }
    调用函数要把那个void去掉,你加上void的话,这里只是个函数的声明而已,没有任何函数的调用,当然就没效果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 创建了问题 5月21日

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制