標(biāo)題:
單片機(jī)4X4矩陣鍵盤掃描的proteus仿真和程序源碼
[打印本頁]
作者:
云之凡
時(shí)間:
2018-7-27 07:16
標(biāo)題:
單片機(jī)4X4矩陣鍵盤掃描的proteus仿真和程序源碼
4X4矩陣鍵盤掃描仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(43.54 KB, 下載次數(shù): 46)
下載附件
2018-7-27 23:56 上傳
0.png
(49.96 KB, 下載次數(shù): 41)
下載附件
2018-7-27 23:56 上傳
單片機(jī)源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define SCANPORT P1
sbit spk=P2^3; //按鍵提示音驅(qū)動端口
uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f, //數(shù)碼管顯示代碼
0x77,0x7c,0x39,0x5e,0x79,
0x71};
uchar a_LineScan[4]={0xEF,0xDF,0xBF,0x7F}; //列掃描賦值
void delay(uchar x)
{
uchar j;
while(x--)
for(j=110;j>0;j--);
}
uchar KeyScan() //掃描函數(shù)
{
uchar Temp=0;
uchar i=0,j=0;
for(i=0;i<4;i++)
{
SCANPORT=a_LineScan[i]; //定義掃描端口
Temp=SCANPORT & 0x0F; //取低四位掃描信號
if(Temp!=0)
{
delay(10); //消抖函數(shù)
if(Temp!=0)
{
if(Temp!=0x0F) //掃描按鍵是否按下
{
switch(Temp)
{
case 0x0E: j=10;break; //第一列
case 0x0D: j=20;break; //第二列
case 0x0B: j=30;break; //第三列
case 0x07: j=40;break; //第四列
default: j=50;break; //輸入錯誤
}
break;
}
}
}
}
return i+j+1; //送出返回值
}
void KeyProcess(unsigned char KeyCode) //數(shù)碼管顯示函數(shù)
{
switch(KeyCode)
{ //j=10
case 11:P0=table[0];spk=1;break; //'0'
case 12:P0=table[1];spk=1;break; //'1'
case 13:P0=table[2];spk=1;break;
case 14:P0=table[3];spk=1;break;
//j=20
case 21:P0=table[4];spk=1;break; //'4'
case 22:P0=table[5];spk=1;break; //'5'
case 23:P0=table[6];spk=1;break;
case 24:P0=table[7];spk=1;break;
//j=30
case 31:P0=table[8];spk=1;break; //'8'
case 32:P0=table[9];spk=1;break; //'9'
case 33:P0=table[10];spk=1;break;
case 34:P0=table[11];spk=1;break;
//j=40
case 41:P0=table[12];spk=1;break; //'C'
case 42:P0=table[13];spk=1;break; //'d'
case 43:P0=table[14];spk=1;break;
case 44:P0=table[15];spk=1;break;
default:break; //無法識別
}
}
void main()
{
spk=0; //揚(yáng)聲器初始化
P0=0;
while(1)
{
KeyProcess(KeyScan());
spk=0; //復(fù)位揚(yáng)聲器
}
}
復(fù)制代碼
所有資料51hei提供下載:
20161111144-李作鑫4×4鍵盤矩陣按鍵.rar
(66.55 KB, 下載次數(shù): 130)
2018-7-27 07:15 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
zwmwcj
時(shí)間:
2020-3-24 09:00
謝謝學(xué)習(xí)
作者:
yayayunyun
時(shí)間:
2022-1-17 10:50
你好!請問一下,顏色怎么修改的?我試過了修改背景,但是沒有實(shí)現(xiàn)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1