求简单的51系列单片机控制4*4矩阵键盘显示电路图 带上程序

 我来答
悠嘻猴houhou
2011-09-24
知道答主
回答量:34
采纳率:0%
帮助的人:19.5万
展开全部
/*功能:矩阵按键识别,每按一次响一声,用数码管显示0——F键值 */
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit sound=P3^6;

uchar code tab[]=
{
0xC0,/*0*/
0xF9,/*1*/
0xA4,/*2*/
0xB0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xF8,/*7*/
0x80,/*8*/
0x90,/*9*/
0x88,/*A*/
0x83,/*b*/
0xA7,/*c*/
0xA1,/*d*/
0x86,/*E*/
0x8E,/*F*/
0xBF /*-*/
};

void delay1ms(uint z)//f=12MHz
{
uint x,y;
for(x=0;x<z;x++)
{
for(y=0;y<115;y++);
}
}

uchar scan_key(void)
{
uchar temp,key_code;
P1=0xf0;
temp=P1;
if(temp!=0xf0)//是否有键被按下
{
delay1ms(15);
if(temp!=0xf0)
{
P1=0xfe; //扫描第一行
temp=P1;
switch(temp)
{
case 0xee:key_code=0;break;
case 0xde:key_code=1;break;
case 0xbe:key_code=2;break;
case 0x7e:key_code=3;break;
}

P1=0xfd;//扫描第2行
temp=P1;
switch(temp)
{
case 0xed:key_code=4;break;
case 0xdd:key_code=5;break;
case 0xbd:key_code=6;break;
case 0x7d:key_code=7;break;
}

P1=0xff;
P1=0xfb;//扫描第3行
temp=P1;
switch(temp)
{
case 0xeb:key_code=8;break;
case 0xdb:key_code=9;break;
case 0xbb:key_code=10;break;
case 0x7b:key_code=11;break;
}

P1=0xff;
P1=0xf7;//扫描第4行
temp=P1;
switch(temp)
{
case 0xe7:key_code=12;break;
case 0xd7:key_code=13;break;
case 0xb7:key_code=14;break;
case 0x77:key_code=15;break;
}
}
}
else
key_code=16;

return key_code;
}

void disp(uchar x,uchar m)
{

uchar temp=0xfe;
P0=tab[x];
P2=_crol_(temp,m);

}

void beep(void)
{
sound=~sound;
delay1ms(1);
}

void main()
{
uchar key_value=16,i;
uchar n=0;//用于记录按键次数
while(1)
{
key_value=scan_key(); //0
if(key_value!=16)//判断是否有键被按下
{
if(n<7)
n++;
else
n=0;
for(i=0;i<150;i++)
beep();
disp(key_value,n);//
}
while(scan_key()==key_value); //松手检测

}
}
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机复位电路原理通常包括以下几个主要步骤:1. 电平检测:单片机复位电路需要检测一个关键参数,即控制器的复位引脚是否处于高电平(2V)。如果复位引脚没有高电平,复位电路就会启动一个复位过程来清除单片机内部的错误状态并将其恢复到正常状态。2... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
做而论道
高能答主

2011-09-20 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式