keil uVision4界面:文章来源:https://www.toymoban.com/news/detail-759605.html
#include<reg51.h>
unsigned char num;
//共阳极数码管段码
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
//行扫描
unsigned char hang[]={0xfe,0xfd,0xfb,0xf7};
void key()
{
int i;
for(i=0;i<4;i++)
{
P1=hang[i];
if((P1&0xf0)!=0xf0) //判断有无按键按下
{
switch(P1)
{
case 0xee:num=0;break;
case 0xde:num=1;break;
case 0xbe:num=2;break;
case 0x7e:num=3;break; //扫描第一行
case 0xed:num=4;break;
case 0xdd:num=5;break;
case 0xbd:num=6;break;
case 0x7d:num=7;break; //扫描第二行
case 0xeb:num=8;break;
case 0xdb:num=9;break;
case 0xbb:num=10;break;
case 0x7b:num=11;break; //扫描第三行
case 0xe7:num=12;break;
case 0xd7:num=13;break;
case 0xb7:num=14;break;
case 0x77:num=15;break; //扫描第四行
}
}
}
}
void main()
{
num=16;
while(1)
{
key();
P0=tab[num];
}
}
proteus仿真界面:文章来源地址https://www.toymoban.com/news/detail-759605.html
到了这里,关于C51单片机-按下K0至K15,显示按键标号(4x4矩阵键盘电路,1个数码管)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!