利用單片機兩組P口,共16個引腳檢測8*8矩陣鍵盤,附C語言程序。使用LCD2004作為顯示
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (112.09 KB, 下載次數(shù): 32)
下載附件
2022-12-14 04:57 上傳
51hei截圖20221214002120.png (127.21 KB, 下載次數(shù): 31)
下載附件
2022-12-14 00:21 上傳
鍵盤值:
51hei.png (18 KB, 下載次數(shù): 26)
下載附件
2022-12-14 04:51 上傳
單片機源程序如下:
- #include <intrins.h> //引用程序目錄的相對路徑中的頭文件
- #include <reg51.h> //引用編譯器的類庫路徑里面的頭文件
- #include "1.Delay.c" //引用編譯器的類庫路徑里面的頭文件
- #include "2.2004.c" //引用編譯器的類庫路徑里面的頭文件
- #include "3.Keyscan.c" //引用編譯器的類庫路徑里面的頭文件
- /******************************
- 主程序
- ******************************/
- void Main()
- {
- LCD_Init(); //LCD初始化子程序
- while(1) //循環(huán)指令
- {
- Keyscan(); //鍵盤檢測
- switch(num)
- {
- case 1:LCD_PutString(1,2,"01");break;
- case 2:LCD_PutString(1,2,"02");break;
- case 3:LCD_PutString(1,2,"03");break;
- case 4:LCD_PutString(1,2,"04");break;
- case 5:LCD_PutString(1,2,"05");break;
- case 6:LCD_PutString(1,2,"06");break;
- case 7:LCD_PutString(1,2,"07");break;
- case 8:LCD_PutString(1,2,"08");break;
- case 9:LCD_PutString(1,2,"09");break;
- case 10:LCD_PutString(1,2,"10");break;
- case 11:LCD_PutString(1,2,"11");break;
- case 12:LCD_PutString(1,2,"12");break;
- case 13:LCD_PutString(1,2,"13");break;
- case 14:LCD_PutString(1,2,"14");break;
- case 15:LCD_PutString(1,2,"15");break;
- case 16:LCD_PutString(1,2,"16");break;
- case 17:LCD_PutString(1,2,"17");break;
- case 18:LCD_PutString(1,2,"18");break;
- case 19:LCD_PutString(1,2,"19");break;
- case 20:LCD_PutString(1,2,"20");break;
- case 21:LCD_PutString(1,2,"21");break;
- case 22:LCD_PutString(1,2,"22");break;
- case 23:LCD_PutString(1,2,"23");break;
- case 24:LCD_PutString(1,2,"24");break;
- case 25:LCD_PutString(1,2,"25");break;
- case 26:LCD_PutString(1,2,"26");break;
- case 27:LCD_PutString(1,2,"27");break;
- case 28:LCD_PutString(1,2,"28");break;
- case 29:LCD_PutString(1,2,"29");break;
- case 30:LCD_PutString(1,2,"30");break;
- case 31:LCD_PutString(1,2,"31");break;
- case 32:LCD_PutString(1,2,"32");break;
- case 33:LCD_PutString(1,2,"33");break;
- case 34:LCD_PutString(1,2,"34");break;
- case 35:LCD_PutString(1,2,"35");break;
- case 36:LCD_PutString(1,2,"36");break;
- case 37:LCD_PutString(1,2,"37");break;
- case 38:LCD_PutString(1,2,"38");break;
- case 39:LCD_PutString(1,2,"39");break;
- case 40:LCD_PutString(1,2,"40");break;
- case 41:LCD_PutString(1,2,"41");break;
- case 42:LCD_PutString(1,2,"42");break;
- case 43:LCD_PutString(1,2,"43");break;
- case 44:LCD_PutString(1,2,"44");break;
- case 45:LCD_PutString(1,2,"45");break;
- case 46:LCD_PutString(1,2,"46");break;
- case 47:LCD_PutString(1,2,"47");break;
- case 48:LCD_PutString(1,2,"48");break;
- case 49:LCD_PutString(1,2,"49");break;
- case 50:LCD_PutString(1,2,"50");break;
- case 51:LCD_PutString(1,2,"51");break;
- case 52:LCD_PutString(1,2,"52");break;
- case 53:LCD_PutString(1,2,"53");break;
- case 54:LCD_PutString(1,2,"54");break;
- case 55:LCD_PutString(1,2,"55");break;
- case 56:LCD_PutString(1,2,"56");break;
- case 57:LCD_PutString(1,2,"57");break;
- case 58:LCD_PutString(1,2,"58");break;
- case 59:LCD_PutString(1,2,"59");break;
- case 60:LCD_PutString(1,2,"60");break;
- case 61:LCD_PutString(1,2,"61");break;
- case 62:LCD_PutString(1,2,"62");break;
- case 63:LCD_PutString(1,2,"63");break;
- case 64:LCD_PutString(1,2,"64");break;
- default:LCD_PutString(1,2,"00");break; //default就是如果沒有符合的case就執(zhí)行它,default并不是必須的.
- }
- }
- }
復制代碼
Keil代碼與Proteus8.13仿真下載:
8×8鍵盤模擬.7z
(59.17 KB, 下載次數(shù): 25)
2022-12-14 04:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|