找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机矩阵键盘控制LED数码管显示0-F源程序

[复制链接]
跳转到指定楼层
楼主
ID:666991 发表于 2021-12-8 11:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过4*4的矩阵键盘,控制数码管显示0-F
原理:
先设置某一列为低电平,这样如果这一列有按键被按下,这样就会两边都是低电平,就相当于闭合。这样就能检测出来了。循环三次就行了

代码乱码了  看附件吧

单片机源程序如下:
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. sbit L1=P1^0;                        
  4. sbit L2=P1^1;         
  5. sbit L3=P1^2;         
  6. sbit L4=P1^3;         

  7. uchar dis[16]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};        
  8. unsigned int time;

  9. //延时函数

  10. delay(time)                           
  11. {  
  12.                 unsigned int j;
  13.            for(j=0;j<time;j++)
  14.             {}
  15. }

  16. //主函数

  17. main( )                                      
  18. {
  19.          uchar temp;//定义临时变量
  20.    uchar i;
  21.          while(1)
  22.          {
  23.     P1=0xef; //先把第一行置于低电位P1.4=0, P1.5-P1.7=1
  24.     for(i=0;i<=3;i++)         
  25.     {  
  26.                         if (L1==0) P0=dis[i*4+0];    //判断第一列是否有按键被按下,如果被按下,则结果可能是 0 4 8 c
  27.                                                                                                                                 
  28.       if (L2==0) P0= dis[i*4+1];          //同样的 判断第二列是否有按键按下 结果是....
  29.                                  
  30.                    if (L3==0) P0= dis[i*4+2];
  31.                                  
  32.       if (L4==0) P0= dis[i*4+3];                  
  33.                                  
  34.         delay(500);
  35.         temp=P1;        
  36.         temp=temp | 0x0f;//保持P1.0-P1.3端口不变
  37.                         
  38.         temp=temp<<1; //0xef-->0xcf  也就是保持第二列为低电平
  39.         temp=temp | 0X0f;         //保持P1.0-P1.3的高电位(若被按下,则立即变为低电位)
  40.         P1=temp; //换为第二行扫描,继续下一轮
  41.     }
  42.    }
  43. }
复制代码

Keil代码下载:
keil.7z (63.29 KB, 下载次数: 14)

评分

参与人数 1黑币 +30 收起 理由
admin + 30 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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