




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機原理與應用課程實驗指導書廖傳書 編武漢理工大學華夏學院教務處二一年三月目錄實驗一實驗環境及I/O口應用實驗3實驗二定時器/計數器實驗和外部中斷實驗7實驗三串口通信實驗10實驗四數碼管顯示和掃描鍵盤實驗16實驗一 實驗環境及I/O口應用實驗一、實驗目的l 熟悉單片機系統的硬件電路。l 熟悉單片機編程軟件、程序下載軟件的使用。l 熟悉單片機I/O口基本輸入、輸出功能。二、實驗內容1. 學習單片機實驗硬件環境(mini80E開發板)的使用,了解開發板上電路的組成以及各元器件的作用。2. 學習軟件環境(編程軟件keil)的安裝、設置與使用。3. 學習下載環境(程序燒寫軟件STC_ISP_V3.1
2、)的安裝、設置與使用。4. 開關控制燈實驗,要求分別按下S1S4,LED2LED4分別點亮,松開S1S4,LED2LED4熄滅。5. 使用單片機的I/O口完成流水燈實驗,要求從LED2LED9依次點亮,然后再從LED9LED2依次點亮,亮燈間隔0.2秒,如此循環下去。三、實驗環境l 軟件資源:編程軟件keil,程序燒寫軟件STC_ISP_V3.1。l 硬件資源:mini80E開發板上8個發光二極管LED2-LED9,小按鍵S1-S4,插針J11。 帶串口的PC機一臺以及串口下載線一根(如果PC機沒有串口,請用USB轉串口下載線)。四、實驗原理發光二極管連接電路如圖1所示,8個LED陽極串聯30
3、0歐姆電阻到電源正端VCC, LED陰極接單片機P1口, LED2接最低位P1.0,LED9接最高位P1.7。當P1口輸出低電平時LED點亮,高電平時LED熄滅。首先P1.0輸出低電平,LED2點亮,其它LED熄滅,采用延時子程序延時0.2秒,然后P1.1輸出低電平,LED3點亮,其它LED熄滅,如此LED2-LED9依次點亮時,就形成了流水燈現象。按鍵連接電路如圖2所示,用跳冒將J11的左邊兩個引腳針(1和2)連接,鍵盤S1-S4是獨立按鍵,S5-S16不用。當按鍵S1-S4分別按下時,P3.0-P3.3分別為低電平,此時單片機控制相應的燈點亮。例如S1按下,P3.0為低電平,單片機點亮LE
4、D2,當S1松開,LED2熄滅。 圖 1 LED電路 圖2 按鍵/鍵盤電路五、實驗步驟1. 熟悉硬件環境mini80E開發板,對照開發板的原理圖和說明書學習,了解發板上電路的組成以及各元器件的作用。mini80E開發板實物參照下圖。2. 熟悉軟件環境(編程軟件keil)的安裝、設置與使用,請參照Keil使用說明.doc。3. 熟悉下載環境(程序燒寫軟件STC_ISP_V3.1)的安裝、設置與使用,請參照stc使用說明以及注意事項.doc4. 首先進行硬件連接,將J11的左邊兩個引腳針(1和2)用跳冒連接,用串口下載線將PC機與單片機連接。然后編寫程序,編譯程序,下載到單片機,完成流水燈實驗和開
5、關控制燈實驗。六、實驗程序(選用12M晶振)實驗A、開關控制燈實驗:ORG 00HMAIN: JNB P3.0,S1OK ;檢測按鍵是否按下 JNB P3.1,S2OK JNB P3.2,S3OK JNB P3.3,S4OK MOV P1,#0FFh ;沒有鍵按下,LED2LED5全部熄滅 JMP MAIN S1OK:MOV P1,#0FEh ;點亮LED2JMP MAINS2OK:MOV P1,#0FDh;點亮LED3JMP MAINS3OK:MOV P1,#0FBh;點亮LED4JMP MAINS4OK:MOV P1,#0F7h;點亮LED5JMP MAINEND實驗B、流水燈實驗:ORG
6、 00HSTART:MOV A,#0FFH ;賦初值 CLR C MOV R2,#8LOOP:RRC A ; 帶進位右移MOV P1,ACALL DELAY DJNZ R2,LOOP MOV R2,#7LOOP1:RLC A ; 帶進位左移 MOV P1,A CALL DELAY DJNZ R2,LOOP1JMP STARTDELAY:MOV R3,#20 ; 延時0.2秒D1: MOV R4,#20D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET END七、實驗結果記錄1.請記錄實驗A中輸入與輸出的對應關系。2.若要求開關按下后,燈保持狀
7、態不變,如何修改程序?3.請記錄實驗B的實驗現象。4.如果將亮燈間隔1秒,應該如何修改程序?5.請畫出實驗A和實驗B的程序流程圖。實驗二 定時器/計數器實驗和外部中斷實驗一、實驗目的l 熟悉單片機定時器/計數器的工作原理、寄存器設置以及工作方式的選擇。l 熟悉單片機中斷系統結構、中斷寄存器設置,理解中斷響應的處理過程。二、實驗內容1. 使用定時器/計數器T1完成循環流水燈實驗,定時時間100ms。2. 使用外部中斷INT0完成外部中斷實驗,按一下S3(INT0)按鍵,8個LED全亮,再按一下S3按鍵,8個LED全滅,使LED狀態取反。三、實驗環境l 軟件資源:編程軟件keil,程序燒寫軟件ST
8、C_ISP_V3.1。l 硬件資源:mini80E開發板上8個發光二極管LED2-LED9,小按鍵S3,插針J11。 帶串口的PC機一臺以及串口下載線一根(如果PC機沒有串口,請用USB轉串口下載線)。四、實驗原理首先點亮LED2,其它LED熄滅,啟動定時器T1延時100ms,當定時時間到產生中斷,單片機執行中斷程序,點亮下一個燈LED3,其它LED熄滅,T1再延時100ms點亮LED4,如此循環下去,當點亮LED9后延時100ms再點亮LED2,形成循環流水燈現象。單片機引腳P3.2的第二功能是外部中斷INT0輸入端,低電平有效,下降沿觸發。首先軟件設置中斷寄存器將INT0中斷功能打開,小按
9、鍵S3按下,引腳P3.2的電平由高變為低,觸發中斷,單片機執行中斷程序,將LED狀態取反。五、實驗步驟1. 進行定時器/計數器實驗,編寫軟件。首先設置T1工作在方式1,根據定時時間100ms計算定時初值,打開中斷,啟動定時器,等待中斷。進入中斷后點亮下一個LED燈,實現流水燈。2. 進行外部中斷實驗,編寫軟件。首先設置中斷寄存器IE、IP和TCON,打開中斷,等待按鍵按下觸發中斷,當按鍵按下時進入中斷程序,LED狀態取反。六、實驗程序(選用12M晶振)實驗A、定時器/計數器實驗:ORG 0000HLJMP MAINORG 000BH ;定時器0中斷入口地址LJMP INTORG 0030HMA
10、IN:MOV R0,#00H ;中斷次數R0清0MOV A,#0FEH MOV P1,A ;點亮LED2 MOV TMOD,#01H ;定時器0工作方式1 MOV TH0,#3CH ;置50ms定時初值 MOV TL0,#0AFH SETB EA ;開總中斷 SETB ET0 ;開T0中斷 SETB TR0 SJMP $ ;動態暫停ORG 0050H ;中斷程序INT: INC R0 ;中斷次數R0加1 CJNE R0,#2,EXIT ;R0等于2,即中斷兩次,定時100ms ,如果沒到100ms,跳至EXIT退出 MOV R0,#00H ;中斷次數R0清0 RL A ;A的值循環左移;點亮下
11、一個燈 MOV P1,A EXIT:RETIEND實驗B、外部中斷實驗:ORG 0000HAJMP MAINORG 0003HAJMP IN0ORG 0030HMAIN:MOV A,#0FFH MOV P1,A ;8個LED全滅 SETB EX0 ;開外部中斷 SETB EA ;開總中斷 SETB IT0 SJMP $ ;等待中斷IN0: CLR EX0 ;關外部中斷 CALL DELAY_10 ;延時10ms去抖動 JNB P3.2, $ ;等待按鍵松開 MOV A,P1 CPL A ;P1口狀態取反 MOV P1,A SETB EX0 ;開外部中斷 RETIDELAY_10: MOVR7,
12、#20D4:MOVR6,#250DJNZR6,$DJNZR7,D4RETEND七、實驗結果記錄1.記錄實驗A的現象。2.在實驗A中,如果流水燈定時時間間隔改為1秒,程序應該如何修改?3.在實驗B中,將語句MAIN:MOV A,#0FFH改成MAIN:MOV A,#0F0H,實驗現象是怎樣的?如果改成MAIN:MOV A,#55H,實驗現象又是怎樣的?4.請畫出實驗A和實驗B的程序流程圖。實驗三 串口通信實驗一、實驗目的1. 理解串行通信的基本概念和51系列單片機的串行通信接口結構。2. 熟悉串口的4種工作方式、通信連線和應用編程。二、實驗內容1. 使用串口實現單片機1與單片機2的數據通信,實現
13、互相控制。要求按下單片機1系統板上的S3S4鍵,單片機2系統板上LED4LED5分別點亮。按下單片機2系統板上的S3S4鍵,單片機1系統板上LED4LED5也分別點亮。2. 使用串口實現單片機與PC機的數據通信。要求按下單片機系統板上中斷INT0時,單片機向PC機發送0-9這十個數字,并用“串口調試助手”接收顯示。在“串口調試助手”上發送0-9中任何一個數字時,單片機用8個發光二極管顯示對應的ASCII碼值。三、實驗環境l 軟件資源:編程軟件keil,程序燒寫軟件STC_ISP_V3.1,串口調試工具。l 硬件資源:兩塊mini80E開發板,板上資源用到發光二極管LED3,小按鍵S3,插針J1
14、1。 帶串口的PC機一臺以及串口下載線一根(如果PC機沒有串口,請用USB轉串口下載線)。四、實驗原理MAX232芯片用于電平轉換,實現RS232電平與TTL電平(單片機)的互相轉換。本次實驗單片機之間通信不使用握手信號,只需3根信號線:TXD(發送線),RXD(接收線),GND(地線)。單片機之間通信的原理圖如圖1所示,當單片機1(主機) 查詢外接控制開關S3按下時,單片機1發送一個自定義信號給單片機2(從機),單片機2收到信號后點亮指示燈LED4。圖1 單片機之間通信的原理圖單片機與PC機之間通信原理圖如圖2所示。S3鍵接P3.2,作為外部中斷INT0輸入端,當S3按下,產生中斷,執行中斷
15、程序發送0-9這十個數字,在PC機上用“串口調試助手”接收并顯示。圖2 單片機與PC機之間通信五、實驗步驟1. 進行單片機1與單片機2的通信實驗。硬件連接:將J11的左邊兩個引腳針(1和2)用跳冒連接,用三根導線分別連接兩個串口的RX、TX、GND。編寫軟件:首先設置單片機1和單片機2的TMOD寄存器,使定時器T1為工作方式2,作為波特率時鐘。設定波特率為1200,根據公式計算出定時器1的定時初值并啟動T1。設置SCON寄存器,使串口工作在方式1(波特率可變10位異步通信方式)。單片機1串口負責發送數據,程序中查詢P3.2- P3.3的電平,其中有一個為低電平表示S3S4有一個按下,串口發送自
16、定義信號。單片機2串口負責接收數據,收到信號并點亮相對應的燈LED4LED5。當單片機2這邊S3S4有鍵按下時,單片機板1上也點亮相對應的燈LED4LED5。2. 進行單片機與PC機的通信實驗。硬件連接:將J11左邊兩個引腳針(1和2)用跳冒連接,用串口下載線將PC機與單片機連接。編寫軟件:單片機1串口負責發送0-9十個數據,按照上個實驗的設置來配置串口的工作方式。設置中斷寄存器IE、IP和TCON,打開中斷,當S3按下時出發中斷開始發送數據。“串口調試助手”是在電腦上運行的程序,它可以接收并顯示電腦串口上的數據,設置如圖3所示。圖3 串口調試助手界面六、實驗程序(選用12M晶振)實驗A、單片
17、機1與單片機2的通信實驗:ORG 0000HAJMP MAINORG 0023HAJMP INTRTORG 0030HMAIN:MOV TMOD,#20H ;設置定時器1的工作方式 MOV TH1,#0E6H ;設置波特率1200 MOV TL1,#0E6H SETB TR1 ;啟動定時器1 MOV SCON,#50H ;設置串口工作方式 CLR RI ;清除標志位 CLR TI ;清除標志位 SETB ES ;開串口中斷 SETB EA ;開總中斷LOOP:JNB P3.2,S3OK ;檢測按鍵是否按下JNB P3.3,S4OKAJMP LOOPS3OK:MOV A,#0FBH ;點亮LED
18、4MOV SBUF,A JNB TI,$ ;等待發送完 SJMP LOOP2S4OK:MOV A,#0F7H ;點亮LED5MOV SBUF,A JNB TI,$ ;等待發送完 LOOP2:ACALL DELAYAJMP LOOPINTRT:PUSH ACCJNB TI,NEXTCLR TIAJMP OUTNEXT: CLR RI ;清標志 MOV A,SBUF;讀取接收的數據 MOV P1,A;送P1口OUT: POP ACC RETIDELAY:MOV R3,#60 ; 延時0.6秒D1: MOV R4,#20D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJN
19、Z R3,D1 RETEND實驗B、單片機與PC機的通信實驗:ORG 0000HAJMP MAINORG 0003HAJMP IN0ORG 0030HMAIN:MOV TMOD,#20H ;設置定時器1的工作方式MOV TH1,#0E6H ;設置波特率1200MOV TL1,#0E6HSETB TR1 ;啟動定時器1MOV SCON,#50H ;設置串口工作方式CLR TI ;清除標志位SETB EX0 ;開外部中斷SETB EA ;開總中斷SETB IT0 GO_ON:CLR RIJNB RI,$MOV A,SBUFCPL AMOV P1,ASJMP GO_ON ;等待IN0: PUSH A
20、CC CLR EX0 ;關外部中斷 JB P3.2, OUT CALL DELAY_10 ;延時10ms去抖動 JNB P3.2,$ CALL DELAY_10 ;延時10ms去抖動 JNB P3.2,$ MOV R0,#30HLOOP:MOV A,R0 ;向PC機發送P2口采集到的信號MOV SBUF,A JNB TI,$ ;等待發送完 CLR TI ;清除標志位 INC R0 CJNE R0,#3AH,LOOPOUT: SETB EX0 ;開外部中斷POP ACCRETIDELAY_10: MOVR7,#20D4:MOVR6,#250DJNZR6,$DJNZR7,D4RETEND七、實驗結
21、果記錄1.請記錄實驗A的實驗現象。2.在實驗A中,若要求按下S3鍵時LED6點亮,應該如何修改程序?3. 在實驗B中,如果要在“串口調試助手”上顯示A,B,C,D,E,F,G,H,I,J這10個字母,程序應該如何修改?4.請畫出實驗A和實驗B的程序流程圖。實驗四 數碼管顯示和掃描鍵盤實驗一、實驗目的1. 熟悉單片機4個并行口的結構、使用特點和程序設計。2. 學習用并行口設計LED顯示電路和鍵盤電路。二、實驗內容1. 八個數碼管顯示0-7這8個數字,采用動態顯示方式。2. 編寫4´4鍵盤掃描程序,按下按鍵時能返回鍵值,并將按鍵的編號用數碼管顯示。共有16個按鍵,編號分別為1-16。三、
22、實驗環境l 軟件資源:編程軟件keil,程序燒寫軟件STC_ISP_V3.1。l 硬件資源: mini80E開發板上小按鍵S1-S16,八位共陰數碼管,鎖存器74HC573和譯碼器74HC138,插針J11和J6。帶串口的PC機一臺以及串口下載線一根(如果PC機沒有串口,請用USB轉串口下載線)。四、實驗原理數碼管連接電路如圖1所示,P0口輸出碼型,P2口輸出位選。鎖存器74HC573起驅動作用,提供驅動電流供數碼管發光。譯碼器74HC138將位選地址轉換成位選信號,例如當前是第5個數碼管顯示,那么P2口輸出位選地址05H,譯碼器輸入CBA=110,輸出位選信號Y7-Y0=11101111,其
23、中Y5=0,第5個數碼管選通并顯示,其它數碼管不顯示。實驗時將J6的左邊兩個引腳針(1和2)用跳冒連接,鎖存器11腳接VCC,關閉鎖存功能。 數碼管顯示方式為動態掃描方式,當P0口送第一個數0的碼型到鎖存器時,P2送位選地址01H,即Y0=0,只有第一個數碼管亮,顯示0,其他數碼管不顯示。當P0口送第二個數1的碼型到鎖存器時,P2送位選地址02H,即Y1=0,只有第二個數碼管亮,顯示1,其他數碼管不顯示。即每次只有一個數碼管點亮,8個數碼管是輪流被點亮的,輪流點亮的間隔時間很短(一般用延時程序延時幾個毫秒),由于視覺的暫留現象,看到的卻好象全都點亮著,這就是動態掃描。圖1 數碼管連接電路數碼管
24、顯示數字的碼型由數碼管的數據腳adp決定,圖2為數碼管的筆段分布圖,由于是共陰極的,所以當adp為高電平時相應的筆段會亮,電路中P1.0P1.7分別接數碼管的a.b.c.d.e.f.g.dp,得到09這10個數字的碼型如表1所示。圖2 數碼管的筆段分布圖表1 數字的碼型表引腳P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0數字碼型筆段dpgfedcba0011111103FH00000110106H0101101125BH0100111134FH01100110466H0110110156DH0111110167DH00000111707H0111111187FH0110111
25、196FH10000000小數點80H4´4鍵盤電路如圖3所示,用跳冒將J11的右邊兩個引腳針(2和3)連接,鍵盤S1S16是被配置成4´4鍵盤。機械按鍵在動作時會有抖動,所以在程序中要加入延時程序來避免抖動帶來的干擾,一般軟件延時時間為1020毫秒。圖3 4´4鍵盤電路五、實驗步驟3. 進行數碼管顯示實驗。硬件連接:將J6的左邊兩個引腳針(1和2)用跳冒連接。編寫軟件:參考下列示例程序及注釋。4. 進行單片機與PC機的通信實驗。硬件連接:將J11的右邊兩個引腳針(2和3)連接。編寫軟件:參考下列示例程序及注釋。六、實驗程序(選用12M晶振)實驗A、數碼管顯示實驗
26、:ORG 00HMOV 20H,#3FHMOV 21H,#06H MOV 22H,#5BH MOV 23H,#4FH MOV 24H,#66H MOV 25H,#6DH MOV 26H,#7DH MOV 27H,#07HSTART:CALL SCANJMP STARTSCAN: MOV A,#0 ;掃描子程序 MOV R0,#20H MOV R2,#8LOOP: MOV P2,A MOV P0,R0 INC R0 CALL DELAY ADD A,#01H DJNZ R2,LOOP ;循環顯示8個數字 MOV R2,#8 CLR A RETDELAY:MOV R3,#1 ;掃描延時D1:MOV
27、 R4,#2D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2 DJNZ R3,D1 RETEND實驗B、矩陣鍵盤實驗:ORG 0000HAJMP MAINORG 0030HMAIN: MOV 20H,#00H;初始化,清顯示 MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00H MOV 26H,#00H MOV 27H,#00H LCALL SCAN ;顯示S1: LCALL KEY;調用鍵盤掃描程序,并返回鍵值 LCALL SCAN;顯示 JNB F0,S1 ;有鍵按下繼續執行,否則繼續返回S1掃描
28、 CLR F0 ;清標志 MOV A,3FH MOV 46H,A;存按鍵的編號到46H LCALL ZHUAN;將16進制的編號轉換成十進制的BCD碼 LCALL CHA_BIAO ;查表,將數字對應的碼型值存于相應寄存器 MOV A,7AH MOV 26H,A;高位的碼型值存于26HMOV A,7BH MOV 27H,A ;低位的碼型值存于27H LCALL SCAN AJMP S1/數碼管顯示程序/SCAN: MOV A,#0 ;掃描子程序 MOV R0,#20H MOV R2,#8LOOP: MOV P2,A MOV P0,R0 INC R0 CALL DELAY ADD A,#01H
29、DJNZ R2,LOOP ;循環顯示8個數字 MOV R2,#8 CLR A RETDELAY:MOV R3,#1 ;掃描延時D1:MOV R4,#2D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2 DJNZ R3,D1 RET/將46H單元中存放的十六進制數轉換成十進制的BCD碼并存放于7CH(最高位),7DH, 7EH(最低位)單元中/ZHUAN:MOV A,46HMOV B,#0AHDIV ABMOV 7EH,BMOV B,#0AHDIV ABMOV 7DH,BMOV 7CH,ARET/十進制數存于7CH,7DH,7EH單元中/對應的碼型存入79H,7AH,7BH單元中
30、/CHA_BIAO:MOV R3,#03HMOV R0,#7CH MOV R1,#79H ;查表,將碼型存入79H,7AH,7BHC1: MOV A,R0MOV DPTR,#TAB1MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R3,C1RET/TAB1: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH/鍵盤掃描程序/KEY: MOV P3,#0FFH ;要先給P2口輸出FF,再回讀 MOV P3,#0F0H MOV A,P3 ORL A,#0FH CJNE A,#0FFH,K1 ;有鍵按下,調至K1處執行 AJMP EXIT ;否則繼續掃描K1: LCALL DELAY_10 ;延時10ms去抖動 MOV P3,#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西賀州市本年度(2025)小學一年級數學統編版期中考試((上下)學期)試卷及答案
- 江西省撫州市臨川區一中2025年高考英語考前最后一卷預測卷含答案
- 2025年天津市七校靜海一中楊村中學高三壓軸卷英語試卷含答案
- 臨床診斷學模擬練習題(附答案)
- 山西省晉城市部分學校2024-2025學年高一下學期期中考試數學試題(原卷版+解析版)
- 電纜線路敷設工程中的質量控制與驗收流程考核試卷
- 糧食儲備的社會責任考核試卷
- 再生物資回收在綠色供應鏈中的作用考核試卷
- 稀土金屬提煉過程中的政策法規研究與實踐考核試卷
- 職場情緒智能與人際溝通考核試卷
- 美國加征關稅從多個角度全方位解讀關稅課件
- “皖南八校”2024-2025學年高一第二學期期中考試-英語(譯林版)及答案
- 一例脂肪液化切口的護理
- 2025屆嘉興市高三語文二模作文解析:智慧不會感到孤獨
- GB 15269-2025雪茄煙
- 安寧療護人文關懷護理課件
- 規模養殖場十項管理制度
- 2025航天知識競賽考試題庫(含答案)
- 路基路面壓實度評定自動計算表-標準-
- 2025中考英語熱點話題閱讀《哪吒2魔童鬧海》
- 頭療培訓知識課件
評論
0/150
提交評論