单片机原理及应用张刚毅数码管显示4乘4矩阵键盘键号按下时,显示对应的10进制
答案:2 悬赏:30 手机版
解决时间 2021-02-14 00:26
- 提问者网友:鼻尖触碰
- 2021-02-13 20:32
单片机原理及应用张刚毅数码管显示4乘4矩阵键盘键号按下时,显示对应的10进制
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-02-13 21:49
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar key;
unsigned char code disp_code[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code key_code[]={
0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,
0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77 };
void delayms(uint ms)
{
uchar t;
while(ms--)
{
for(t = 0; t < 120; t++);
}
}
uchar keyscan()
{
uchar scan1,scan2,keycode,j;
P3=0xf0;
scan1=P3;
if((scan1&0xf0)!=0xf0) //判键是否按下
{
delayms(30); //延时30ms
scan1=P3;
if((scan1&0xf0)!=0xf0) //二次判键是否按下
{
P3=0x0f;
scan2=P3;
keycode=scan1|scan2; //组合成键编码
for(j=0;j<=15;j++)
{
if(keycode== key_code[j]) //查表得键值
{
key=j;
return(key);
}
}
}
}
else P3=0xff;
return (16);
}
void keydown()
{
P3=0x0f;
if((P3&0x0f)!=0x0f)
{
keyscan();
P0=disp_code[key];
beep();
}
}
main()
{
P0 = 0xbf;
P2 = 0x7f; //数码管显示"-"
P3 = 0xff;
while(1)
{
keydown();
}
}
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar key;
unsigned char code disp_code[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code key_code[]={
0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,
0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77 };
void delayms(uint ms)
{
uchar t;
while(ms--)
{
for(t = 0; t < 120; t++);
}
}
uchar keyscan()
{
uchar scan1,scan2,keycode,j;
P3=0xf0;
scan1=P3;
if((scan1&0xf0)!=0xf0) //判键是否按下
{
delayms(30); //延时30ms
scan1=P3;
if((scan1&0xf0)!=0xf0) //二次判键是否按下
{
P3=0x0f;
scan2=P3;
keycode=scan1|scan2; //组合成键编码
for(j=0;j<=15;j++)
{
if(keycode== key_code[j]) //查表得键值
{
key=j;
return(key);
}
}
}
}
else P3=0xff;
return (16);
}
void keydown()
{
P3=0x0f;
if((P3&0x0f)!=0x0f)
{
keyscan();
P0=disp_code[key];
beep();
}
}
main()
{
P0 = 0xbf;
P2 = 0x7f; //数码管显示"-"
P3 = 0xff;
while(1)
{
keydown();
}
}
全部回答
- 1楼网友:千杯敬自由
- 2021-02-13 22:40
你好!
需要帮你写程序是吗
如有疑问,请追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯