一、實(shí)驗(yàn)?zāi)康?/font> 1、學(xué)習(xí)矩陣式鍵盤工作原理。 2、學(xué)習(xí)矩陣式的電路設(shè)計(jì)和程序設(shè)計(jì) 二、設(shè)計(jì)要求 1、利用一位數(shù)碼管顯示4*4矩陣盤鍵號(hào),單片機(jī)的p1口的p1.0~p1.7連接4*4矩陣鍵盤。數(shù)碼管顯示由p0口控制,當(dāng)4*4矩陣鍵盤中的某一按鍵按下時(shí)。數(shù)碼管顯示對(duì)應(yīng)鍵號(hào)。 三、實(shí)驗(yàn)流程圖 四、源程序 - #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) { //延時(shí)子程序
- 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ù)制代碼
五、實(shí)驗(yàn)結(jié)論
1.這次試驗(yàn)我通過仿真實(shí)現(xiàn)對(duì)矩陣式按鍵有了深入的了解和學(xué)習(xí)
2.之前的三次實(shí)驗(yàn)讓我知道了單片機(jī)和矩陣式按鍵的基本操作的同時(shí)也積累的- -些有關(guān)錯(cuò)誤的經(jīng)驗(yàn)。
3.現(xiàn)在又學(xué)習(xí)了有關(guān)矩陣式按鍵的實(shí)驗(yàn)和仿真,了解實(shí)驗(yàn)的工作原理和源程序是成功的必備條件。
4.在下次實(shí)驗(yàn)中會(huì)減少錯(cuò)誤的發(fā)生率,也會(huì)通過單片機(jī)了解更多的知識(shí)和電子產(chǎn)品。
全部資料51hei下載地址:
實(shí)驗(yàn)五矩陣按鍵實(shí)驗(yàn).rar
(110.94 KB, 下載次數(shù): 20)
2020-5-30 16:59 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|