|
proteus仿真:
proteus仿真
keil代碼:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={//共陽數碼管段碼"0~f-."
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,0xbf,0x7f};
uchar KeyValue=16; //鍵值變量
bit sign=0; //位變量
uint count=0; //計數變量
void keyscan() //按鍵掃描程序
{
P1=0xf0; //賦值P3 1111 0000
if(P1!=0xf0) //檢測有按鍵按下
{
if((++count>=250)&&(sign==0))//消抖計數100~1000,按鍵自鎖
{
sign=1; //按鍵自鎖標志置1
switch(P1)
{
case(0Xe0):KeyValue = 0;break;
case(0Xd0):KeyValue = 1;break;
case(0Xb0):KeyValue = 2;break;
case(0X70):KeyValue = 3;break;
}
P1=0x0f; //賦值P3 0000 1111
switch(P1)
{
case(0X0e):KeyValue+= 0;break;
case(0X0d):KeyValue+= 4;break;
case(0X0b):KeyValue+= 8;break;
case(0X07):KeyValue+=12;break;
}
}
}
else //鍵抬起
{
sign=0; //按鍵自鎖標志清0
count=0; //消抖計數清0
}
}
void main() //主函數
{
while(1)
{
keyscan(); //按鍵掃描程序
P3=table[KeyValue]; //數碼管顯示鍵值0~F
}
}
|
-
-
矩陣鍵盤數碼管顯示.zip
2020-7-19 17:32 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
102.37 KB, 下載次數: 13, 下載積分: 黑幣 -5
|