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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2708|回復(fù): 4
收起左側(cè)

麻煩各位大神幫忙看看 矩陣鍵盤在1602上不顯示

[復(fù)制鏈接]
ID:198338 發(fā)表于 2017-5-10 20:12 | 顯示全部樓層 |閱讀模式
#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();
  }
}


回復(fù)

使用道具 舉報

ID:149451 發(fā)表于 2017-5-11 08:43 | 顯示全部樓層
初步看,鍵盤掃描里最終執(zhí)行的僅有向LCD寫命令的函數(shù),沒有寫數(shù)據(jù)的函數(shù);另P3口與LCD控制端共用也存疑問,需考慮合適否。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:198338 發(fā)表于 2017-5-11 15:47 | 顯示全部樓層
w1179benp 發(fā)表于 2017-5-11 08:43
初步看,鍵盤掃描里最終執(zhí)行的僅有向LCD寫命令的函數(shù),沒有寫數(shù)據(jù)的函數(shù);另P3口與LCD控制端共用也存疑問, ...

能幫忙改下嗎
回復(fù)

使用道具 舉報

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

使用道具 舉報

ID:381421 發(fā)表于 2018-11-1 21:23 | 顯示全部樓層
解決了嗎? 我也是矩陣鍵盤與1602拼在一起 不能顯示
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩羞羞 | 美女视频黄的 | 国产高清精品在线 | 男女视频在线观看免费 | 国产高清在线 | 亚洲女人的天堂 | 国产成人免费视频 | 亚洲欧美中文字幕在线观看 | 亚洲精品日韩综合观看成人91 | 久久久久久久久久久久久九 | 欧美手机在线 | 久草视频网站 | 午夜影院在线观看免费 | 一区二区三区四区国产 | 亚洲综合国产精品 | 免费一级做a爰片久久毛片潮喷 | 欧美日韩国产一区二区三区 | 国产精品一区在线 | 国产激情视频在线观看 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 欧美xxxx色视频在线观看免费 | 剑来高清在线观看 | 91久久综合 | 欧美一区二区在线播放 | 国产精品国产 | 在线色| 99国产精品久久久 | 天堂va在线观看 | 毛片日韩| 国产1区在线 | 天天操操 | 一级欧美 | 伊人精品在线视频 | 不卡欧美 | 久久里面有精品 | 91视频进入 | 久久精品免费观看 | 日韩欧美高清 | 精品伦精品一区二区三区视频 | 福利网址 | 国产日韩一区二区 |