|
矩陣按鍵檢測示例(Proteus仿真電路,C語言程序代碼)
4X4矩陣按鍵
按鍵檢測按鍵分別從0~F
數(shù)碼管顯示
下面是Proteus仿真電路
BUTTON.jpg (161.35 KB, 下載次數(shù): 77)
下載附件
2020-12-1 22:12 上傳
(注:沒畫最小系統(tǒng))
上圖為E按鍵按下后
下面為C語言程序
#include<reg51.h>
char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
//共陽極斷碼表
unsigned num=16;
void delay(unsigned int n)
{
unsigned i=0,j=0;
for(i=0;i<n;i++)
{
for(j=0;j<120;j++);
}
}
void key_scan()
{
unsigned char temp=0,temp0=0,temp1=0;
P1=0xf0;
if(P1!=0xf0)
{
delay(20);
temp0=P1;
P1=0x0f;
if(P1!=0x0f)
{
temp1=P1;
}
}
temp=temp0+temp1;
if(temp==0xee)
num=0;
if(temp==0xed)
num=1;
if(temp==0xeb)
num=2;
if(temp==0xe7)
num=3;
if(temp==0xde)
num=4;
if(temp==0xdd)
num=5;
if(temp==0xdb)
num=6;
if(temp==0xd7)
num=7;
if(temp==0xbe)
num=8;
if(temp==0xbd)
num=9;
if(temp==0xbb)
num=10;
if(temp==0xb7)
num=11;
if(temp==0x7e)
num=12;
if(temp==0x7d)
num=13;
if(temp==0x7b)
num=14;
if(temp==0x77)
num=15;
}
void dis_play()
{
P2=seg[num];
}
void main()
{
while(1)
{
key_scan();
dis_play();
}
}
下面有仿真電路和程序
矩陣按鍵.zip
(27.05 KB, 下載次數(shù): 43)
2020-12-1 22:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|