單片機實驗4報告_第1頁
單片機實驗4報告_第2頁
單片機實驗4報告_第3頁
單片機實驗4報告_第4頁
單片機實驗4報告_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 學號序號 19 單片機原理與接口技術 實驗報告實驗工程序號 實驗四 實驗工程名稱 動態(tài)顯示與矩陣式鍵盤實驗 姓 名 盧志雄 專 業(yè) 電子信息工程 班 級 電信14-2BF 完成時間 2021-05-10 一、實驗目的1、 進一步理解數碼管與單片機的接口原理與動態(tài)顯示原理,理解單片機矩陣式鍵盤按鍵識別的原理;2、 掌握單片機動態(tài)顯示應用和編程方法;3、 掌握單片機矩陣式鍵盤按鍵識別的方法。 二、實驗內容實驗內容為3項,其中第1、2項必做。1、動態(tài)顯示。未按鍵不顯示,按K1鍵,動態(tài)顯示 “19491001;按K2鍵,動態(tài)顯示 “20211210。2、動態(tài)顯示與按鍵識別。

2、矩陣式鍵盤鍵值分別是0-F,未按鍵不顯示。每按鍵一次,鍵值在最低位顯示,原鍵值向高位移一位。3、可控動態(tài)顯示與按鍵識別。矩陣式鍵盤鍵值分別是0-9,最下面一排鍵位功能鍵,左右兩個鍵分別為“清0鍵“C,和“回車鍵“8 ,其它鍵無效。未按鍵不顯示,每按鍵一次,鍵值在最低位顯示,原鍵值向高位移一位。按8個鍵后,再按鍵無效。按清0鍵全顯示“0”。按“8 后全部熄滅,再按鍵重新開始。三、實驗原理圖圖3.4 動態(tài)顯示與矩陣式鍵盤實驗電路原理圖動態(tài)顯示共8個共陰極數碼管,采用兩片74LS573進行驅動,74LS573與74LS373都是8D鎖存器,只是573引腳排列更易于布線。其引腳功能為:D1-D8為數據

3、輸入端;Q1-Q8為數據輸出端;LE為數據輸入鎖存端,LE=1數據輸入D鎖存器,LE=0數據不能輸入D鎖存器,即LE下降沿鎖存當前輸入數據;地址輸出允許端,=0輸出鎖存數據,=1輸出高阻。電路中,U1輸出段碼a b c d e f g db,控制顯示的字形與小數點,U2輸出位選碼,控制第幾個數碼管顯示。單片機P14、P15分別連接到U1、U2的LE,連接U1、U2的。四、源程序第一項:#include<reg51.h>#define uchar unsigned chardata uchar f8;data uchar a,b,num,y,k,g;data uchar c=0;ta

4、ble18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;/共陰極數碼管顯示段碼(0-F)void delay( j )/延時函數data uchar j; data uchar i; while(j-) for(i=0;i<1;i+);uchar code sled_bit=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/定義點亮數碼管位選碼data uchar d=1,9,4,9,1,0,0,1;data uchar e=2,0

5、,1,4,1,2,1,0;sbit oe=P13; /2個573的三態(tài)使能端sbit dula=P14; /段碼573控制信號sbit wela=P15; /位碼573控制信號/延時函數void main(void) TMOD=0x01;/ 設置定時器T0為方式1定時 TH0=(65536-500)/256;/ 給T0裝入初值 TL0=(65536-500)%256; / 給T0裝入初值 ET0=1; / 允許T0中斷EA=1;EX0=1;IT0=1;g=0;P0=0X00;while(1);/CPU開中斷 void EX0_int(void) interrupt 0TR0=1; y=P2;

6、y=y; if(y=1)for(g=0;g<8;g+)fg=dg; if(y=2)for(g=0;g<8;g+)fg=eg; void T0_int(void) interrupt 1 /T0中斷函數 TH0=(65536-500)/256; TL0=(65536-500)%256; oe=1;/ 關閉2個573輸出,防止送數據時相互影響 k = fg;/ 每次顯示dispj的數據 P0= tablek; / 相應顯示數字段碼 dula=1; dula=0;/ 鎖存段碼 P0=sled_bitg; / 選擇相應數碼管位選 wela=1; wela=0;/ 鎖存位碼 oe=0;g+;

7、 if(g>=8)g=0;/ 翻開2個573三態(tài)門,輸出段碼和位碼 第二項#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit oe=P13; /數碼管段選、位選鎖存器輸出控制信號sbit dula=P14; /數碼管段選鎖存器控制信號sbit wela=P15; /數碼管位選鎖存器控制信號uchar j=0;uchar code sled_bit=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/定義點亮數碼管位選碼data uchar disp8=

8、16,16,16,16,16,16,16,16;uchar code table18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;/共陰極數碼管顯示段碼(0-F)void delay( n )/延時函數data uchar n; data uchar m; while(n-) for(m=0;m<1;m+);void main(void) uchar a,b,c,i,num;TMOD=0x01;/ 設置定時器T0為方式1定時 TH0=(65536-500)/256

9、;/ 給T0裝入初值 TL0=(65536-500)%256; / 給T0裝入初值 ET0=1; / 允許T0中斷 EA=1;/ CPU開中斷 TR0=1;/ 啟動T0oe=0;P2=0xff;while(1) P2=0xf0;delay(5);P2=0xf0;a=P2;P2=0x0f;delay(5);P2=0x0f;b=P2;a=a|b;if(a!=0xff)while(P2!=0x0f); switch(a) case 0xee: num=0;break; case 0xde: num=1;break; case 0xbe: num=2;break; case 0x7e: num=3;b

10、reak; case 0xed: num=4;break; case 0xdd: num=5;break; case 0xbd: num=6;break; case 0x7d: num=7;break; case 0xeb: num=8;break; case 0xdb: num=9;break; case 0xbb: num=10;break; case 0x7b: num=11;break; case 0xe7: num=12;break; case 0xd7: num=13;break; case 0xb7: num=14;break; case 0x77: num=15; for(i=

11、0;i<7;i+) dispi=dispi+1; disp7=num; delay(255); void T0_int(void) interrupt 1 data uchar k;TH0=(65536-1000)/256; TL0=(65536-1000)%256;oe=1;/ 關閉2個573輸出,防止在送數據時相互影響k = dispj;/ 每次顯示arj的數據P0 = tablek; / 相應顯示數字段碼 dula=1;dula=0;/ 鎖存段碼P0=sled_bitj; / 選擇相應數碼管位選 wela=1;wela=0;/ 鎖存位碼oe=0;/ 翻開2個573三態(tài)門,輸出段碼和

12、位碼j+;/ 為下一個顯示做準備if(j>=8)j=0; 五、實驗結果第一項:給單片機上電,未按鍵不顯示,按K1鍵,動態(tài)顯示 “19491001;按K2鍵,動態(tài)顯示 “20211210。第二項:給單片機上電,未按鍵不顯示,按矩陣式鍵盤鍵值從小到大依次按鍵,依次顯示為:0,01,012,0123,01234,012345,0123456,01234567,12345678,23456789,3456789A,456789Ab,56789AbC,6789AbCd,789AbCdE,89AbCdEF。六、實驗思考題1、 電路中為什么要用74LS573,不用74LS573,可用什么器件代替?如果

13、U1、U2的都直接接地,應如何編程?答:電路中需要2片74LS573來驅動8個共陰極數碼管,所以不能用74LS573,可用74LS373代替。如果U1、U2的都直接接地,即一直為0,74LS573總是輸出鎖存數據,所以應控制數據輸入鎖存端LE,使之在需要鎖存時置1。2、 為什么要等鍵彈起,才進行鍵值分析?答:因為在按鍵前后都有一個過渡期,在這個階段電平忽高忽低,最好等這個時期過去再判斷是否按鍵,同樣,最好等鍵彈起,才進行鍵值分析,這樣才能分析準確。3、 如果用簡單按鍵與矩陣式鍵盤構成組合按鍵,組合按鍵如何編程得到鍵值?答:采用線反轉法,將行和列得到的鍵值相或來得到鍵值。七、實驗心得通過這次實驗,使我學到了不少實用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論