永发信息网

单片机原理及应用张刚毅数码管显示4乘4矩阵键盘键号按下时,显示对应的10进制

答案:2  悬赏:30  手机版
解决时间 2021-02-14 00:26
单片机原理及应用张刚毅数码管显示4乘4矩阵键盘键号按下时,显示对应的10进制
最佳答案
#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();
}
}
全部回答
你好! 需要帮你写程序是吗 如有疑问,请追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
教练要我用拳头做俯卧撑,可以锻炼骨头吗
随心索玉我想知道这个在什么地方
红糖,黄豆,糯米,一起吃有什么作用
在南宁那里可以签定黄金真假?
过把瘾自由麻将馆地址有知道的么?有点事想过
在一个半径是4米的圆形花坛外面,围绕着一条宽
家佳乐超市地址有知道的么?有点事想过去
张家口当地有什么报纸做广告的么?专门做广告
中发白棋牌室怎么去啊,我要去那办事
下列哪项不是组成生物体的大量元素DA. CB. NC
大城小厨(淡水店)地址在哪,我要去那里办事
我与96年与我老公结婚 但是没有结婚证 现在我
和尚们为什么有钱买豪车
我想卖电动汽车,不知道有没有市场前景,需要
北京哪里买皮草
推荐资讯
trophy fishing2怎么钓
尹温公路/太旧高速公路(路口)在什么地方啊,
岩门坡村怎么去啊,我要去那办事
嘉陵路社区居委会地址在什么地方,我要处理点
有两堆小棒,第一堆有20根,第二堆有28根。从
洛克洗衣地址在哪,我要去那里办事
巴西龟小时候吃什么
8.4x-2.8x+6=80.8-1.2x
长虹3D51C4000i电路板,主电源板。还有信号源
拉肚子不吃药能好吗
苏家屋场怎么去啊,有知道地址的么
小两房是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?