欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
數碼管動態顯示加矩陣按鍵掃描仿真與源碼
[打印本頁]
作者:
kinggm
時間:
2018-5-3 12:16
標題:
數碼管動態顯示加矩陣按鍵掃描仿真與源碼
數碼管動態顯示加矩陣按鍵掃描
實現4位一體數碼管的動態顯示以及4*4矩陣鍵盤的掃描
其中0~F共16個按鍵,A,B分別為按下清楚所有輸入和清楚最后一位輸入,其余按鍵按下顯示鍵值。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(14.81 KB, 下載次數: 72)
下載附件
2018-5-3 17:58 上傳
0.jpg
(29.63 KB, 下載次數: 51)
下載附件
2018-5-3 17:57 上傳
單片機源程序如下:
#include<reg51.h>
#define KEYP P2
#define SEG7P P0
unsigned char code TAB[17]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 };
unsigned char disp[4]= {0x40,0x40,0x40,0x40};
unsigned char scan[4]= {0xef,0xdf,0xbf,0x7f};
void delay(int);//1ms
void scanner(void);
main() {
while(1) {
scanner();
}
}
void delay(int x) {
int i,j;
for(i=0; i<x; i++)
for(j=0;j<120;j++);
}
void scanner(void) {
unsigned char col,row,dig;
unsigned char rowkey,kcode;
for(col=0; col<4; col++)
{
KEYP=scan[col];
SEG7P=disp[col];
rowkey=~KEYP&0x0f;
if(rowkey!=0)
{
if(rowkey==0x01) row=0;
else if(rowkey==0x02) row=1;
else if(rowkey==0x04) row=2;
else if(rowkey==0x08) row=3;
kcode=4*col+row;
if(kcode!=10&&kcode!=11){
for(dig=3; dig>0; dig--)
disp[dig]=disp[dig-1];
disp[0]=TAB[kcode];
}
if(kcode==11){
for(dig=0; dig<3; dig++)
disp[dig]=disp[dig++];
disp[0]=0x40;
}
while(rowkey!=0)
rowkey=~KEYP&0x0f;
}
if(kcode==10){
int k;
for(k=0;k<4;k++){
disp[k]=0x40;
}
}
delay(4);
}
}
復制代碼
所有資料51hei提供下載:
數碼管動態顯示加矩陣按鍵掃描.zip
(17.2 KB, 下載次數: 36)
2018-5-3 12:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1