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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2396|回復: 0
打印 上一主題 下一主題
收起左側

51單片機矩陣鍵盤輸入lcd顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:640422 發表于 2019-11-12 14:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#include<intrins.h>
#define KEYPORT P3
#define uchar unsigned char
sbit line0=KEYPORT^0;
sbit line1=KEYPORT^1;
sbit line2=KEYPORT^2;
sbit line3=KEYPORT^3;
sbit RS=P2^2;
sbit RW=P2^1;
sbit E=P2^0;
uchar code dis[]={"0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15"};
bit iskeyinput()
{
KEYPORT=0x0f;
if((KEYPORT&0x0f)==0x0f)
   return 0;
else
   return 1;
}
uchar key_identify()
{
uchar linecode=0,rowcode=0;
uchar i;
uchar scancode=0xef;
for(i=0;i<4;i++)
  {
   KEYPORT=scancode;
   if((KEYPORT&0x0f)==0x0f)
    {
  rowcode++;
  scancode=scancode<<1|1;
}
   else
   {
    if(line0==0)linecode=0;
if(line1==0)linecode=4;
if(line2==0)linecode=8;
if(line3==0)linecode=12;
break;
   }
  }
  return linecode+rowcode;
}
void wait_key_release()
{
while(1)
{
  KEYPORT=0x0f;
  if((KEYPORT&0x0f)==0x0f)
  break;
}
}
void delay(uchar ms)
{
uchar i;
while(ms--)
{            
   for(i=0;i<250;i++)
   {
     _nop_();_nop_();_nop_();_nop_();_nop_();
   }
}
}
bit busy()
{
bit result;
RS=0;
RW=1;
E=1;
_nop_();_nop_();_nop_();_nop_();
result=(bit)(P1&0x80);
E=0;
return result;
}
void wcmd(uchar cmd)
{
while(busy());
RW=0;
E=0;
_nop_();_nop_();
P1=cmd;
_nop_();_nop_();_nop_();_nop_();
E=1;
  _nop_();_nop_();_nop_();_nop_();
E=0;
}
void pos(uchar y,uchar x)
{
y&=0x1;
x&=0xF;
if(y==1)x|=0xc0;
if(y==0)x|=0x80;
wcmd(x);
}
void wdat(uchar dat)
{
while(busy());
RS=1;
RW=0;
E=0;
P1=dat;
_nop_();_nop_();_nop_();_nop_();
E=1;
_nop_();_nop_();_nop_();_nop_();
E=0;
}
void init()
{
wcmd(0x3c);
delay(1);
wcmd(0x0e);
delay(1);
wcmd(0x06);
delay(1);
wcmd(0x01);
delay(1);
}
void main(void)
{
uchar keycode;
unsigned int i;
uchar j;
init();
while(1)
{
  while(!iskeyinput());
  for(i=0;i<500;i++);
  if(iskeyinput())
  {
   keycode=key_identify();
   wait_key_release();
   delay(10);
   pos(0,keycode);
   j=keycode;
   while(dis[j]!=' ')
   {
    wdat(dis[j]);
    j++;
    }
   // while(1);
  }
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品欧美一区二区 | 中文字幕精品一区二区三区在线 | 日韩精品一区二区三区视频播放 | 波波电影院一区二区三区 | 成人做爰9片免费看网站 | 毛片免费观看视频 | 亚洲免费观看视频 | 久久亚洲91 | 日本特黄a级高清免费大片 国产精品久久性 | 99热电影| 91天堂 | 日日夜精品视频 | 国产视频福利 | av在线免费观看网址 | 国产精品久久久久久久岛一牛影视 | 久久精品一区二区视频 | 精品欧美一区二区在线观看视频 | 91久久久久久久久 | 蜜桃视频在线观看免费视频网站www | 久久美国 | 久久成人精品视频 | av影音资源| 求毛片 | 国产精品爱久久久久久久 | 亚洲国产高清在线观看 | 九九热精品在线视频 | 午夜精品在线观看 | 91av在线电影| 人人操日日干 | 亚洲欧美日韩中文字幕一区二区三区 | 91色在线 | 欧美在线一级 | 国产激情免费视频 | 久热中文字幕 | 国产精品视频观看 | 91国产精品在线 | 欧美日韩一二三区 | 色天天综合 | 欧州一区二区 | 欧美性一区二区三区 | 国产成人精品久久 |