找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2333|回复: 3
打印 上一主题 下一主题
收起左侧

今天学会了写矩阵键盘的程序!

[复制链接]
跳转到指定楼层
楼主
ID:73477 发表于 2015-2-10 17:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hutians 于 2015-2-10 17:59 编辑

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar table[]={
      0xc0,0xf9,0xa4,0xb0,
               0x99,0x92,0x82,0xf8,
      0x80,0x90,0x88,0x83,
      0xc6,0xa1,0x86,0x8e
     };      
uint num;
uchar temp;
sbit duan=P1^0;
void delay(uint z)
{
  uint i,j;
for(i=z;i>0;i--)
  for(j=20;j>0;j--);
}
void display()
{
duan=1;
  P0=table[num];
duan=0;
delay(50);
}
uchar keyboard(void)
{
  {
   P2=0xfe;
  temp=P2;
  temp&=0xf0;
  if(temp!=0xf0)
  {
    delay(50);
   temp=P2;
   temp&=0xf0;
   switch(temp)
   {
     case 0x70:num=0;break;
    case 0xb0:num=1;break;
    case 0xd0:num=2;break;
    case 0xe0:num=3;break;
   }
   while(temp!=0xf0)
   {
      temp=P2;
     temp&=0xf0;
   }
   display();
  }
}
{
   P2=0xfd;
  temp=P2;
  temp&=0xf0;
  if(temp!=0xf0)
  {
   delay(50);
    temp=P2;
   temp&=0xf0;
   switch(temp)
   {
     case 0x70:num=4;break;
    case 0xb0:num=5;break;
    case 0xd0:num=6;break;
    case 0xe0:num=7;break;
   }
   while(temp!=0xf0)
   {
     temp=P2;
    temp&=0xf0;
   }
   display();
  }
}
{
   P2=0xfb;
  temp=P2;
  temp&=0xf0;
  if(temp!=0xf0)
  {
    delay(50);
   temp=P2;
   temp&=0xf0;
   switch(temp)
   {
     case 0x70:num=8;break;
    case 0xb0:num=9;break;
    case 0xd0:num=10;break;
    case 0xe0:num=11;break;
   }
   display();
  }
}
{
   P2=0xf7;
  temp=P2;
  temp&=0xf0;
  if(temp!=0xf0)
  {
   delay(50);
    temp=P2;
   temp&=0xf0;
   switch(temp)
   {
     case 0x70:num=12;break;
    case 0xb0:num=13;break;
    case 0xd0:num=14;break;
    case 0xe0:num=15;break;
   }
   display();
  }
}
}
void main()
{
  while(1)
{
   keyboard();
}
}
为自己加油!



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:73519 发表于 2015-2-10 20:10 | 只看该作者
寻求1名安卓软件工程师合作伙伴,工资3000元以上,可入股。
要求:1,手机应用基本开发,手机软件更新及升级。
      2,可来我方工作者优先
      3,上班时间2015年3月
有意者可联系QQ:3144934451      
回复

使用道具 举报

板凳
ID:230975 发表于 2019-11-12 14:04 | 只看该作者
你这个好象不对吧。检测第一行的时候应该是0XFE,然后键值是7E,DE,BE,EE,
回复

使用道具 举报

地板
ID:688062 发表于 2020-2-24 12:45 | 只看该作者
能不能添加注释
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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