標(biāo)題: 單片機(jī)矩陣按鍵實驗程序流程圖與程序 [打印本頁]
作者: 2388918962 時間: 2020-5-30 17:00
標(biāo)題: 單片機(jī)矩陣按鍵實驗程序流程圖與程序
一、實驗?zāi)康?/font>
1、學(xué)習(xí)矩陣式鍵盤工作原理。
2、學(xué)習(xí)矩陣式的電路設(shè)計和程序設(shè)計
二、設(shè)計要求
1、利用一位數(shù)碼管顯示4*4矩陣盤鍵號,單片機(jī)的p1口的p1.0~p1.7連接4*4矩陣鍵盤。數(shù)碼管顯示由p0口控制,當(dāng)4*4矩陣鍵盤中的某一按鍵按下時。數(shù)碼管顯示對應(yīng)鍵號。
三、實驗流程圖
四、源程序
- #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口的狀態(tài)
- temp=temp|0x0f; //置P1.3~P1.0為1,輸入狀態(tài)
- temp=temp<<1; //P1.7~ P1.4左移1位,準(zhǔn)備下一行掃描
- temp=temp|0x0f; //置P1.3~P1.0為1,輸入狀態(tài)
- P1=temp; //下一行行掃描值送P1口,為下一行掃描做準(zhǔn)備
-
- }
- }
- }
復(fù)制代碼
五、實驗結(jié)論
1.這次試驗我通過仿真實現(xiàn)對矩陣式按鍵有了深入的了解和學(xué)習(xí)
2.之前的三次實驗讓我知道了單片機(jī)和矩陣式按鍵的基本操作的同時也積累的- -些有關(guān)錯誤的經(jīng)驗。
3.現(xiàn)在又學(xué)習(xí)了有關(guān)矩陣式按鍵的實驗和仿真,了解實驗的工作原理和源程序是成功的必備條件。
4.在下次實驗中會減少錯誤的發(fā)生率,也會通過單片機(jī)了解更多的知識和電子產(chǎn)品。
全部資料51hei下載地址:
實驗五矩陣按鍵實驗.rar
(110.94 KB, 下載次數(shù): 20)
2020-5-30 16:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |