找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4753|回复: 12
收起左侧

数码管显示4*4矩阵按键求大神解释一下代码意思,谢谢啦

[复制链接]
ID:263782 发表于 2017-12-19 16:56 | 显示全部楼层 |阅读模式
#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

回复

使用道具 举报

ID:157238 发表于 2017-12-19 20:29 | 显示全部楼层
矩阵键盘控制共阳数码管从0显示到F带关闭,带蜂鸣器提示
回复

使用道具 举报

ID:111634 发表于 2017-12-19 21:41 | 显示全部楼层
为什么不去找有解释的程序?
回复

使用道具 举报

ID:236686 发表于 2017-12-19 21:45 | 显示全部楼层
如二楼所说的一样。要看懂这个  你先要懂    矩阵键盘的扫描原理啊   
回复

使用道具 举报

ID:263782 发表于 2017-12-20 09:25 来自手机 | 显示全部楼层
le51 发表于 2017-12-19 20:29
矩阵键盘控制共阳数码管从0显示到F带关闭,带蜂鸣器提示

好的,谢谢^ω^
回复

使用道具 举报

ID:263782 发表于 2017-12-20 09:26 来自手机 | 显示全部楼层
zl2168 发表于 2017-12-19 21:41
为什么不去找有解释的程序?

完全小白,不懂-_-||
回复

使用道具 举报

ID:263782 发表于 2017-12-20 09:27 来自手机 | 显示全部楼层
爱吃饺子 发表于 2017-12-19 21:45
如二楼所说的一样。要看懂这个  你先要懂    矩阵键盘的扫描原理啊

嗯嗯,知道了
回复

使用道具 举报

ID:264113 发表于 2017-12-20 10:26 来自手机 | 显示全部楼层
延时程序,键盘扫描程序,蜂鸣器程序
回复

使用道具 举报

ID:264151 发表于 2017-12-20 11:30 | 显示全部楼层
这不是很简单嘛,按键控制输出,单片机书上就有。。。。。。。很初级的东西,自己看看就行了
回复

使用道具 举报

ID:239977 发表于 2017-12-20 12:13 | 显示全部楼层
要看懂这个  你先要懂    矩阵键盘的扫描原理
回复

使用道具 举报

ID:111634 发表于 2017-12-23 11:32 | 显示全部楼层
尐东邪 发表于 2017-12-20 09:26
完全小白,不懂-_-||

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

使用道具 举报

ID:265607 发表于 2017-12-23 11:58 | 显示全部楼层
为判断,四线高,四线低,如果接通两线,就会有一线电平被拉低,判断哪两线的电平被拉低,就可以判断出哪个按键
回复

使用道具 举报

ID:265624 发表于 2017-12-23 12:51 | 显示全部楼层
看懂原理图再说
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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