自己用4*4矩陣鍵盤與六位數碼管仿真的加法計算器(已經做好啦,按鍵消抖 ,數碼管鬼影現象)
as.png (63.83 KB, 下載次數: 82)
下載附件
2020-5-8 21:02 上傳
1.png (236.77 KB, 下載次數: 73)
下載附件
2020-5-8 21:02 上傳
- void LedScan() //六位數碼管動態掃描
- {
- static unsigned char i=0;
- P0 = 0xFF; //顯示消隱
- switch(i) //每過1ms從低到高位刷新一個數碼管
- {
- case 0:P2=0x01;i++; P0= LedBuff[0]; break;
- case 1:P2=0x02;i++; P0= LedBuff[1]; break;
- case 2:P2=0x04;i++; P0= LedBuff[2]; break;
- case 3:P2=0x08;i++; P0= LedBuff[3]; break;
- case 4:P2=0x10;i++; P0= LedBuff[4]; break;
- case 5:P2=0x20;i=0; P0= LedBuff[5]; break;
- default :break;
- }
- }
- void KeyScan() //矩陣按鍵動態掃描
- {
- unsigned char i;
- static unsigned char keyout = 0;
- static unsigned char keybuf[4][4] = {
- {0xff,0xff,0xff,0xff},
- {0xff,0xff,0xff,0xff},
- {0xff,0xff,0xff,0xff},
- {0xff,0xff,0xff,0xff},
- };
- /******按鍵消抖***************/
- keybuf[keyout][0] = (keybuf[keyout][0] <<1)|KEY_INT_1;
- keybuf[keyout][1] = (keybuf[keyout][1] <<1)|KEY_INT_2;
- keybuf[keyout][2] = (keybuf[keyout][2] <<1)|KEY_INT_3;
- keybuf[keyout][3] = (keybuf[keyout][3] <<1)|KEY_INT_4;
- for(i=0;i<4;i++)
- {
- if((keybuf[keyout][i] & 0x0F) == 0x00)
- {
- KeySta[keyout][i] = 0;
- }
- else if ((keybuf[keyout][i] & 0x0F) == 0x0f)
- {
- KeySta[keyout][i] = 1;
- }
-
- }
- keyout++;
- keyout=keyout & 0x03;
-
- switch(keyout) //掃描矩陣鍵盤
- {
- case 0: KEY_OUT_4 = 1;KEY_OUT_1 = 0;break;
- case 1: KEY_OUT_1 = 1;KEY_OUT_2 = 0;break;
- case 2: KEY_OUT_2 = 1;KEY_OUT_3 = 0;break;
- case 3: KEY_OUT_3 = 1;KEY_OUT_4 = 0;break;
- default:break;
- }
復制代碼 全部資料51hei下載地址:
簡單加法器.rar
(70.2 KB, 下載次數: 108)
2020-5-8 21:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|