久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 麻煩各位大神幫忙看看 矩陣鍵盤在1602上不顯示 [打印本頁]

作者: 啊UI是GF    時間: 2017-5-10 20:12
標(biāo)題: 麻煩各位大神幫忙看看 矩陣鍵盤在1602上不顯示
#include<reg52.h>                                                                                                       
#include<intrins.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^5;
sbit rw=P3^6;
sbit lcden=P3^7;

void Delay100ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 180;
        j = 73;
        do
        {
                while (--j);
        } while (--i);
}

void Delay10ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 18;
        j = 235;
        do
        {
                while (--j);
        } while (--i);
}


void write_com(uchar com)                                                                     //寫命令
{
rs=0;                                          
rw=0;
lcden=0;
P0=com;
Delay100ms();
lcden=1;
Delay100ms();
lcden=0;
}
void write_date(uchar date)                                                                 //寫數(shù)據(jù)
{
rs=1;
rw=0;
lcden=0;
P0=date;
Delay100ms();
lcden=1;
Delay100ms();
lcden=0;
}
void init()                                                                                         //初始化函數(shù)
{         
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);  
}
void keyscan()
{
  uchar temp,key;
  P3=0xfe;
  temp=P3;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   Delay10ms();
   temp=P3;
   temp=temp&0xf0;
   if(temp!=0xf0)
   {
    temp=P3;
        switch(temp)
        {
         case 0xee:key=0;break;
         case 0xde:key=1;break;
         case 0xbe:key=2;break;
         case 0x7e:key=3;break;
        }
        while(temp!=0xf0)
        {
         temp=P3;
         temp=temp&0xf0;
        }
        write_com(0x80+0x40+4);
   }
}
  P3=0xfd;
  temp=P3;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   Delay10ms();
   temp=P3;
   temp=temp&0xf0;
   if(temp!=0xf0)
   {
    temp=P3;
        switch(temp)
        {
         case 0xed:key=4;break;
         case 0xdd:key=5;break;
         case 0xbd:key=6;break;
         case 0x7d:key=7;break;
        }
        while(temp!=0xf0)
        {
         temp=P3;
         temp=temp&0xf0;
        }
        write_com(0x80+0x40+4);
   }
}
P3=0xfb;
  temp=P3;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   Delay10ms();
   temp=P3;
   temp=temp&0xf0;
   if(temp!=0xf0)
   {
    temp=P3;
        switch(temp)
        {
         case 0xeb:key=8;break;
         case 0xdb:key=9;break;
         case 0xbb:key=10;break;
         case 0x7b:key=11;break;
        }
        while(temp!=0xf0)
        {
         temp=P3;
         temp=temp&0xf0;
        }
        write_com(0x80+0x40+4);
   }
}
P3=0xf7;
  temp=P3;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   Delay10ms();
   temp=P3;
   temp=temp&0xf0;
   if(temp!=0xf0)
   {
    temp=P3;
        switch(temp)
        {
         case 0xe7:key=12;break;
         case 0xd7:key=13;break;
         case 0xb7:key=14;break;
         case 0x77:key=15;break;
        }
        while(temp!=0xf0)
        {
         temp=P3;
         temp=temp&0xf0;
        }
        write_com(0x80+0x40+4);
   }
}                                                                                               
}

void main()                                                                                                                                                                                          //主函數(shù)
  {
  init();
  while(1)
  {
   keyscan();
  }
}



作者: w1179benp    時間: 2017-5-11 08:43
初步看,鍵盤掃描里最終執(zhí)行的僅有向LCD寫命令的函數(shù),沒有寫數(shù)據(jù)的函數(shù);另P3口與LCD控制端共用也存疑問,需考慮合適否。
作者: 啊UI是GF    時間: 2017-5-11 15:47
w1179benp 發(fā)表于 2017-5-11 08:43
初步看,鍵盤掃描里最終執(zhí)行的僅有向LCD寫命令的函數(shù),沒有寫數(shù)據(jù)的函數(shù);另P3口與LCD控制端共用也存疑問, ...

能幫忙改下嗎

作者: zl2168    時間: 2017-5-11 18:35
本帖最后由 zl2168 于 2017-5-11 19:13 編輯

需先解決2個問題:鍵掃描和1602顯示
實例62 4×4矩陣式鍵盤
實例67  LCD1602顯示屏顯示
先Proteus仿真一下,確認(rèn)有效。
實例61 LCD1602顯示屏顯示.rar (49.26 KB, 下載次數(shù): 9)
實例62 4×4矩陣式鍵盤.rar (44.79 KB, 下載次數(shù): 5)


以上摘自張志良編著《80C51單片機仿真設(shè)計實例教程——基于Keil C和Proteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機應(yīng)用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設(shè)計有詳細(xì)說明,程序語句條條有注解。

作者: RicardZZZ    時間: 2018-11-1 21:23
解決了嗎? 我也是矩陣鍵盤與1602拼在一起 不能顯示




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91就要激情 | 精品国产不卡一区二区三区 | 亚洲一区二区精品视频在线观看 | 欧美美乳 | 日韩成人| 91精品国产一区二区三区动漫 | 精品一区二区三区电影 | 在线观看国产 | 97成人在线 | 国产色网站 | 国产精品99久久久久久www | 成人精品鲁一区一区二区 | 一级特黄网站 | 91xxx在线观看 | 狠狠伊人 | www.99re | 中文字幕av一区二区三区 | 怡红院怡春院一级毛片 | 污视频免费在线观看 | 国产在线精品一区二区三区 | 日日夜夜免费精品视频 | 97视频精品 | 亚洲天堂av网 | 亚洲啊v在线 | 成人免费视频 | 成人三级视频 | 国产精品久久久久久久久污网站 | 国产在线a| 久久精品性视频 | 亚洲视频免费在线看 | 欧美日韩精品一区 | 在线视频成人 | 亚洲免费观看 | 日韩影院在线 | 成人在线一区二区三区 | 日韩精品色网 | 在线观看www高清视频 | 99精品一区二区 | 国产毛片毛片 | 国产日韩久久 | 国产2区 |