找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4829|回复: 2
收起左侧

单片机矩阵键盘仿真原理图和源代码

[复制链接]
ID:252394 发表于 2017-11-22 20:26 | 显示全部楼层 |阅读模式
4*4矩阵键盘的实现原理图以及代码
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png 0.png

单片机源程序如下:
  1. #include<reg51.h>
  2. unsigned char a[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7f,0x39,0x3f,0x79,0x71};
  3. void delay(unsigned int xsm);
  4. unsigned char keyscan(){
  5.         unsigned char key,Row,Col;
  6.         P3=0x0f;
  7.         if(P3!=0x0f){
  8.                 delay(10);//去抖
  9.                 if(P3!=0x0f){
  10.                         Row=P3&0x0f;//确保端口值正确(行的值)
  11.                         P3=0xf0;
  12.                         Col=P3&0xf0;//列值

  13.                 }
  14.                 while((P3&0xf0)!=0xf0);//判断键是否抬起
  15.         }
  16.         switch(Row+Col){
  17.                 case 0xee:key=0;break;
  18.                 case 0xde:key=1;break;
  19.                 case 0xbe:key=2;break;
  20.                 case 0x7e:key=3;break;

  21.                 case 0xed:key=4;break;
  22.                 case 0xdd:key=5;break;
  23.                 case 0xbd:key=6;break;
  24.                 case 0x7d:key=7;break;

  25.                 case 0xeb:key=8;break;
  26.                 case 0xdb:key=9;break;
  27.                 case 0xbb:key=10;break;
  28.                 case 0x7b:key=11;break;

  29.                 case 0xe7:key=12;break;
  30.                 case 0xd7:key=13;break;
  31.                 case 0xb7:key=14;break;
  32.                 case 0x77:key=15;break;


  33.         }
  34.         return key;
  35. }
  36. void main(){
  37.         unsigned key1;
  38.         while(1){
  39.                 key1=keyscan();
  40.                 P2=a[key1];
  41.         }

  42. ……………………

  43. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
矩阵键盘.zip (58.98 KB, 下载次数: 102)
回复

使用道具 举报

ID:164151 发表于 2019-1-1 20:31 | 显示全部楼层
很好的资料偶
回复

使用道具 举报

ID:741740 发表于 2020-5-4 11:04 来自手机 | 显示全部楼层
谢谢楼主,这两天要做这个实验,我编的代码有问题正好可以借鉴一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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