|
一、實驗目的 1、學習矩陣式鍵盤工作原理。 2、學習矩陣式的電路設計和程序設計 二、設計要求 1、利用一位數碼管顯示4*4矩陣盤鍵號,單片機的p1口的p1.0~p1.7連接4*4矩陣鍵盤。數碼管顯示由p0口控制,當4*4矩陣鍵盤中的某一按鍵按下時。數碼管顯示對應鍵號。 三、實驗流程圖 四、源程序 - #include <reg51.h>
- #define uchar unsigned char
- sbit L1=P1^0; // 定義列
- sbit L2=P1^1;
- sbit L3=P1^2;
- sbit L4=P1^3;
- uchar dis[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e }; //共陽極字符0~F的段碼
- unsigned int time;
- delay(time) { //延時子程序
- unsigned int j;
- for(j=0;j<time;j++)
- { }
- }
- main() { //主程序
- uchar temp ;
- uchar i ;
- while(1) {
- P1=0xef; //行掃描初值,P1.4=0,P1.5、P1.6、P1.7=1
- for(i=0;i<=3;i++) { //逐行為低,按行掃描,一共4行
- if (L1==0) P0= dis [i*4+0]; //判第1列有無鍵按下,若有,鍵值可能為0,4,8.C,送顯示
- if (L2==0) P0= dis [i*4+1]; //判第2列有無鍵按下,若有,鍵值 可能為1,5,9,d,送顯示
- if (L3==0) P0= dis [i*4+2]; //判第3列有無鍵按下,若有,鍵值可能為2,6,A,E,送顯示
- if (L4==0) P0=dis [i*4+3]; //判第4列有無按鍵按下,若有,鍵值可能為3,7,b,F,送顯示
- delay(500);
- temp=P1; //讀入P1口的狀態
- temp=temp|0x0f; //置P1.3~P1.0為1,輸入狀態
- temp=temp<<1; //P1.7~ P1.4左移1位,準備下一行掃描
- temp=temp|0x0f; //置P1.3~P1.0為1,輸入狀態
- P1=temp; //下一行行掃描值送P1口,為下一行掃描做準備
-
- }
- }
- }
復制代碼
五、實驗結論
1.這次試驗我通過仿真實現對矩陣式按鍵有了深入的了解和學習
2.之前的三次實驗讓我知道了單片機和矩陣式按鍵的基本操作的同時也積累的- -些有關錯誤的經驗。
3.現在又學習了有關矩陣式按鍵的實驗和仿真,了解實驗的工作原理和源程序是成功的必備條件。
4.在下次實驗中會減少錯誤的發生率,也會通過單片機了解更多的知識和電子產品。
全部資料51hei下載地址:
實驗五矩陣按鍵實驗.rar
(110.94 KB, 下載次數: 20)
2020-5-30 16:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|