提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、实验要求
编程实现功能要求:开机黑屏;按下任意按键后,数码管上显示该键的键号(0~F);若没有新键按下,维持前次按键结果。
二、实验代码
代码如下(示例):
//扫描法
#include"REGX52.H"
#define uint unsigned int
#define uchar unsigned char
uchar code SegCode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar code ColumnCode[4]={0x0e,0x0d,0x0b,0x07};
void delay(uint ms)
{
uint i;
while(ms--)
for(i=0;i<113;i++);
}
uchar KeyScan()
{
uint temp,row,column,i;//row行 column列
P2=0xf0;
temp=P2&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P2&0xf0;
if(temp!=0xf0)
{
switch(temp)
{
case 0x70:column=3;break;
case 0xb0:column=2;break;
case 0xd0:column=1;break;
case 0xe0:column=0;break;
}
P2=0x0f;
for(i=0;i<4;i++)
{
if(ColumnCode[i]==P2)
row=i;
}
return row*4+column;
}
}
else
P2=0xff;
return 16;
}
void main(void)
{
uchar KeyNum;
while(1)
{
KeyNum=KeyScan();
if(KeyNum<16)
P1=SegCode[KeyNum];
else
P1=0x8c;
}
}
2.原理图
使用proteus8.13文章来源:https://www.toymoban.com/news/detail-533806.html
总结
本次实验不是特别难,我所做的也只是一种方法而已。代码之路何其艰辛,条条大路通罗马,大家要是还有其他方法,可以在评论区留言。我期待与大家进行学习交流。文章来源地址https://www.toymoban.com/news/detail-533806.html
到了这里,关于矩阵键盘控制数码管显示数字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!