標題:
單片機數(shù)碼管顯示矩陣鍵盤按鍵的設(shè)計資料
[打印本頁]
作者:
晏CC
時間:
2017-6-20 15:58
標題:
單片機數(shù)碼管顯示矩陣鍵盤按鍵的設(shè)計資料
數(shù)碼管顯示矩陣鍵盤按鍵的設(shè)計仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):
0.png
(17.57 KB, 下載次數(shù): 70)
下載附件
2017-6-20 18:24 上傳
0.png
(50.85 KB, 下載次數(shù): 111)
下載附件
2017-6-20 18:24 上傳
單片機源程序如下:
#include<reg52.h>
char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x10};
idata dis_buff[1];
bit key_flag;
sbit cs=P2^0;
void delay(int k)
{
int m,n;
for(m=0;m<k;m++)
{
for(n=0;n<120;n++);
}
}
void display(void)
{
cs=0x01;
P0=tab[dis_buff[0]];
delay(1);
}
char ScanKey()
{
char temp,temp1,key;
temp=P1;
temp&=0x0f;
switch(temp)
{
case 0x0e:
{
P1=0xf0;
delay(100);
temp1=P1;
temp1&=P1;
switch(temp1)
{
case 0xe0:
key=0;
break;
case 0xd0:
key=1;
break;
case 0xb0:
key=2;
break;
case 0x70:
key=3;
break;
default:
key=0;
break;
}
P1=0x0f;
break;
}
case 0x0d:
{
P1=0xf0;
delay(100);
temp1=P1;
temp&=P1;
switch(temp1)
{
case 0xe0:
key=4;
break;
case 0xd0:
key=5;
break;
case 0xb0:
key=6;
break;
case 0x70:
key=7;
break;
default:
key=0;
break;
}
P1=0x0f;
break;
}
case 0x0b:
{
P1=0xf0;
delay(100);
temp1=P1;
temp1&=P1;
switch(temp1)
{
case 0xe0:
key=8;
break;
case 0xd0:
key=9;
break;
case 0xb0:
key=10;
break;
case 0x70:
key=11;
break;
default:
key=0;
break;
}
P1=0xf0;
break;
}
case 0x07:
{
P1=0xf0;
delay(100);
temp1=P1;
temp1&=P1;
switch(temp1)
{
case 0xe0:
key=12;
break;
case 0xd0:
key=13;
break;
case 0xb0:
key=14;
break;
case 0x70:
key=15;
break;
default:
key=0;
break;
}
P1=0x0f;
break;
}
default:
key=0;
break;
}
return(key);
}
void main(void)
{
char temp,keynum;
cs=0x10;
P1=0x0f;
while(1)
{
temp=P1;
temp&=0x0f;
if(temp==0x0f)
{
key_flag=0;
}
else
{
delay(10);
temp=P1;
temp&=0x0f;
}
if(temp==0x0f)
{
key_flag=0;
}
else
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
數(shù)碼管顯示矩陣鍵盤按鍵的設(shè)計.rar
(72.9 KB, 下載次數(shù): 10)
2017-6-20 15:58 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1