标题: 数码管显示4*4矩阵按键求大神解释一下代码意思,谢谢啦 [打印本页]

作者: 尐东邪    时间: 2017-12-19 16:56
标题: 数码管显示4*4矩阵按键求大神解释一下代码意思,谢谢啦
#include <reg51.h>
#define INT8U unsigned char
#define INT16U unsigned int
const INT8U SEG_CODE[]=
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
sbit BEEP=P3^0;
INT8U pre_keyNo=0xFF,keyNo=0xFF;
void delay_ms(INT16U x)
{
INT8U t;
while (x--)
for (t=0;t<120;t++);
}
void Keys_Scan()
{
P1=0x0F;
delay_ms(1);
if(P1==0x0F)
{
keyNo=0xFF;
return;
}
switch (P1)
{
case 0x0E:keyNo=0;break;
case 0x0D:keyNo=1;break;
case 0x0B:keyNo=2;break;
case 0x07:keyNo=3;break;
  default:keyNo=0xFF;return;
}
P1=0xF0;
delay_ms(1);
switch (P1)
{
case 0xE0:keyNo+=0;break;
case 0xD0:keyNo+=4;break;
case 0xB0:keyNo+=8;break;
case 0x70:keyNo+=12;break;
  default:  keyNo=0xFF;
}
}
void Beep()
{
INT8U i;
for(i=0;i<100;i++)
{
delay_ms(1);
BEEP=~BEEP;
}
BEEP=i;
}
void main()
{
   P0=0xFF;
   while(1)
   {
Keys_Scan();
if(keyNo==0xFF)
{
delay_ms(10);
continue;
}
P0=SEG_CODE[keyNo];
Beep();
while (Keys_Scan(),keyNo!=0xFF);
}
}

dpj.docx

11.53 KB, 下载次数: 9


作者: le51    时间: 2017-12-19 20:29
矩阵键盘控制共阳数码管从0显示到F带关闭,带蜂鸣器提示
作者: zl2168    时间: 2017-12-19 21:41
为什么不去找有解释的程序?
作者: 爱吃饺子    时间: 2017-12-19 21:45
如二楼所说的一样。要看懂这个  你先要懂    矩阵键盘的扫描原理啊   
作者: 尐东邪    时间: 2017-12-20 09:25
le51 发表于 2017-12-19 20:29
矩阵键盘控制共阳数码管从0显示到F带关闭,带蜂鸣器提示

好的,谢谢^ω^
作者: 尐东邪    时间: 2017-12-20 09:26
zl2168 发表于 2017-12-19 21:41
为什么不去找有解释的程序?

完全小白,不懂-_-||
作者: 尐东邪    时间: 2017-12-20 09:27
爱吃饺子 发表于 2017-12-19 21:45
如二楼所说的一样。要看懂这个  你先要懂    矩阵键盘的扫描原理啊

嗯嗯,知道了
作者: 沐林枫    时间: 2017-12-20 10:26
延时程序,键盘扫描程序,蜂鸣器程序
作者: jyzsdgfud    时间: 2017-12-20 11:30
这不是很简单嘛,按键控制输出,单片机书上就有。。。。。。。很初级的东西,自己看看就行了
作者: lll88990    时间: 2017-12-20 12:13
要看懂这个  你先要懂    矩阵键盘的扫描原理
作者: zl2168    时间: 2017-12-23 11:32
尐东邪 发表于 2017-12-20 09:26
完全小白,不懂-_-||

实例62  4×4矩阵式键盘
Proteus仿真一下,确认有效。
实例62 4×4矩阵式键盘.rar (44.79 KB, 下载次数: 11)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解

作者: mou~    时间: 2017-12-23 11:58
为判断,四线高,四线低,如果接通两线,就会有一线电平被拉低,判断哪两线的电平被拉低,就可以判断出哪个按键
作者: www.abc    时间: 2017-12-23 12:51
看懂原理图再说





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1