(1)矩阵按键原理:话不多说,对于16个矩阵按键来说,要想知道哪个按键被按下,可以设置16个IO口,但是这样硬件电路过于繁琐,所以可以采用行列扫描法,由行推列,再由列推行。首先给四个行为低电平,四个列为高电平;如何某个按键被按下,那么该按键所在的列就变为低电平;再给四个行为高电平,四个列为低电平,那么刚才那个按键的所在的行就变为低电平,由此经过行列扫描就是锁定了具体是哪个按键被按下。
(2)矩阵按键原理图:(3)源代码:

#include<reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
#define KEY P1
#define SMG P0
sbit  LSA=P2^2;
sbit  LSB=P2^3;
sbit  LSC=P2^4;
u8 value;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(u16 i)
{while(i--);
}
void keypros()
{u8 a=0;u8 i;KEY=0x0f;if(KEY!=0x0f){delay(100);if(KEY!=0x0f){KEY=0x0f;switch(KEY){case 0x07:value=0;break;case 0x0b:value=1;break;case 0x0d:value=2;break;case 0x0e:value=3;break;}KEY=0xf0;switch(KEY){case 0x70:value=value;break;case 0xb0:value=value+4;break;case 0xd0:value=value+8;break;case 0xe0:value=value+12;break;    }while((a<50)&&(value!=0xf0)){delay(1000);a++;}SMG=smgduan[value];   for(i=0;i<8;i++){switch(i){case 0:LSA=0;LSB=0;LSC=0;break;case 1:LSA=1;LSB=0;LSC=0;break;case 2:LSA=0;LSB=1;LSC=0;break;case 3:LSA=1;LSB=1;LSC=0;break;case 4:LSA=0;LSB=0;LSC=1;break;case 5:LSA=1;LSB=0;LSC=1;break;case 6:LSA=0;LSB=1;LSC=1;break;case 7:LSA=1;LSB=1;LSC=1;break;}  delay(50000);   }}}
}
void main()
{while(1){  keypros();          }
}

矩阵按键值在8位数码管流动显示相关推荐

  1. 2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计

    共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90} 共阳极数组A~F:display[]={0x88,0x83 ...

  2. 单片机上的8位数码管同时显示数字“12345678“

    8位数码管同时显示数字"12345678" #include<reg52.h>sbit DUAN=P2^6; sbit WEI=P2^7; char code sz[1 ...

  3. 嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验

    一.STM32CubeMx实现数码管 1.双击打开STM32CubeMX. 2.点击File选项,在File列表下选择New Project选项新建工程. 3.在图中所示位置的方框中输入我们使用的芯片 ...

  4. 51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真

    51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真 说明:为什么采用4位的数码管,因为Proteus里面没有3位的数码管器件可选,也可以采用2+1,或者1+1+1, ...

  5. 输入电话号码数码管流动显示protues仿真 汇编代码

    输入电话号码数码管流动显示protues仿真 汇编代码 功能:可以通过矩阵键盘按键输入电话号码 一次只能输入一位 按确定键之后可以输入下一位 按下播放键之后数码管流动显示 播放之后不能返回 keil代 ...

  6. FPGA数码管流动显示学号

    主要功能:通过FPGA的6个数码管流动显示7位学号 工程放在下边 链接:https://pan.baidu.com/s/14ILTfXZ5AZa98r7p7w39UQ 提取码:3aho

  7. arduino实验-4位数码管交替显示温湿度

    初学arduino,用四位数码管和温湿度传感器实现温湿度监控,因为用的是数码管,所以只能交替显示,温度和湿度各显示2S. 使用到的材料 arduino UNO r3 面包板 SHTC3温湿度传感器 4 ...

  8. 三、51单片机 使用Proteus仿真实现8位数码管滚动显示(仿真及代码)

    1,目标 使用51单片机控制8位数码管,分别滚动显示单个数字0~7,程序运行之后,单片机先控制最左边的第一位数码管显示0,其他的熄灭,延时一段时间之后,控制左边第二个数码管显示1,其它熄灭,以此类推, ...

  9. 树莓派 4位数码管时间显示

    树莓派:4B python 3.7 网上有很多种对于数码管的驱动程序,这种代码是我能找到最简洁的. 老练的代码就意味着不好懂,所以我做了详尽的注释. 在前辈的代码基础上做了修改,原始程序调试过程中有很 ...

  10. 数码管流动显示(自己的单片机)

    /********************************************************************************** * 标题: 试验数码管上显示数字 ...

最新文章

  1. 并发模拟的四种方式 + 工具,超级实用!
  2. ECharts的简单使用过程
  3. 一个C#写的调用外部进程类
  4. pandas常用函数(更新中)
  5. jquery mysql表格_使用jQuery设计数据表格:设计表格基类
  6. python 编程(编写汽车保养时间表)
  7. 循环神经网络(LSTM和GRU)(1)
  8. Opencv打开相机,并在上面用鼠标画框
  9. DIY LDAC蓝牙接收器(一)预备篇
  10. ps 去除gif水印
  11. 如何辩证看待技术与业务的关系
  12. HTML中字体大小的设置
  13. PROC FORMAT过程
  14. TensorFlow深度学习:3.API示范
  15. php中运算符的作用,在php中,双反位运算符(~~)(也称为“双颚化符”)的作用是什么?...
  16. PC端实现微信支付功能(Vue2.0)
  17. 微信浏览器网页点击图片缩放
  18. SpringMVC的工作原理图
  19. 深度学习模型试跑(十三):stylegan3
  20. 2021年全球圆锥破碎机收入大约1357.4百万美元,预计2028年达到1665.6百万美元

热门文章

  1. 总会用到的系列4:关键时刻能救家庭的保险
  2. PHP集成环境MxSrvs如何安装pcntl扩展
  3. access vba代码全部丢失_Access2016由于无法读取数据库中所含的VBA工程,因此无法打开此数据库。只有先删除VBA工程,然后才能打开数据库...
  4. 【资源分享】ppt的模版获取-可用于转正答辩、毕业答辩、课程答辩等等
  5. 字体,字号与尺寸对应表
  6. CAD绘图软件使用技巧总结及CAD快捷键大全
  7. kali linux下的嗅探工具介绍
  8. GEE|typeof、ee.Algorithms.If、ee.Algorithms.IsEqual 语法
  9. access如何保存小数点后_如何设置石材雕刻机原点及断电后怎么保存原点坐标?...
  10. abbyyfinereader文字识别软件编辑Pdf教程序列号教程