實驗三、單片機IO及外部中斷實驗_第1頁
實驗三、單片機IO及外部中斷實驗_第2頁
實驗三、單片機IO及外部中斷實驗_第3頁
實驗三、單片機IO及外部中斷實驗_第4頁
實驗三、單片機IO及外部中斷實驗_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、實驗三 單片機I/O及外部中斷實驗一、實驗目的1學習P1、P3口作為基本I/O口的使用方法,掌握對發光二極管和繼電器的程序控制方法;2學習在單片機系統中擴展簡單I/O接口的方法,學習模擬交通燈控制的方法;3掌握外部中斷技術的基本使用方法和中斷處理程序的編程方法。二.實驗儀器:1仿真教學實驗機(5196ET) 一臺2直流穩壓電源(DF 1731 SB 3A) 一臺3PC機 一臺三、實驗內容1、 P1口做輸出口實驗(1)實驗要求:P1口做輸出口,接八只發光二極管,編寫程序,使發光二極管循環點亮。(2)電路及連線如下:(3)實驗說明1.延時子程序的延時計算問題對于程序 DELAY:MOV R0,#0

2、0HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知 MOV,DJNZ 指令均需用兩個機器周期,而一個機器周期時間長度為1211.0592MHz,所以該段程序執行時間為:(0B31)2561)21211059200100.002mS(4)實驗框圖(見TP1A.ASM主程序框圖):(5)P1.0P1.7接DL1.DL8,運行程序TP1A,觀察現象。TP1A程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV A,#01HROTATE: MOV P1,A ;點亮一個LEDRL A ;循環右移LCALL

3、 DELAY ;延時NOPSJMP ROTATEDELAY: ;延時子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND(6)修改程序TP1A,使指示燈左循環。* (7)修改程序TP1A,使指示燈兩兩右循環。* (8)修改程序TP1A,使指示燈從兩邊向中間循環。* (9)修改程序TP1A,使指示燈右循環間隔時間為0.1秒。2、 P1口做輸入口實驗(1)實驗要求:P1口做輸入口,接八個紐子開關,以實驗機上74LS273做輸出口,編寫程序讀取開關狀態,

4、將此狀態在發光二極管上顯示出來。(2)電路及連線如下:(3)實驗說明:P1口是準雙向口。它作為輸出口時與一般的雙向口使用方法相同。由準雙向口結構可知當P1口作為輸入口時,必須先對它置高電平使內部MOS管截止。因為內部上拉電阻阻值是20K40K,故不會對外部輸入產生影響。若不對它置高,且原來是低電平,則MOS管導通,讀入的數據是不正確的。(4)實驗框圖(見TP1B.ASM主程序框圖):(5)P1.0P1.7接K1K8,PO0PO7接DL1DL8,273CS/接8300H,運行程序TP1B,觀察現象。TP1B程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV DPTR

5、,#08300H ;并行輸出口地址READ: MOV P1,#0FFH ; 因P1是準雙向口,所以把P1口作為輸入口時,應先置高電平.MOV A,P1 ;讀開關狀態MOVX DPTR,A ;把讀入的數據輸出AJMP READEND3. 交通燈控制(1)實驗要求:編寫程序模擬一個時序控制裝置,具體為以74LS273作為輸出口,控制4個雙色LED燈(可發紅,綠,黃光),模擬交通燈管理。(2)實驗電路及連線(3)實驗說明因為本實驗是交通燈控制實驗,所以要先了解實際交通燈的變化規律。假設一個十字路口為東西南北走向。初始狀態0為東西紅燈,南北紅燈。然后轉狀態1南北綠燈通車,東西紅燈。過一段時間轉狀態2,

6、南北綠燈閃幾次轉亮黃燈,延時幾秒,東西仍然紅燈。再轉狀態3,東西綠燈通車,南北紅燈。過一段時間轉狀態4,東西綠燈閃幾次轉亮黃燈,延時幾秒,南北仍然紅燈。最后循環至狀態1。雙色LED是由一個紅色LED管芯和一個綠色LED管芯封裝在一起,公用負端。當紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。(4)實驗框圖TRLED1.ASM主程序框圖(5)PO0PO3接DG1DG4,PO4PO7接DR1DR4,D16的/CS接8300H。運行程序TRLED1,觀察現象。ORG 0000H LJMP START ORG 0040H STAR

7、T: MOV SP,#60H LCALL STATUS0 ;初始狀態(都是紅燈) CIRCLE: LCALL STATUS1 ;南北綠燈,東西紅燈 LCALL STATUS2 ;南北綠燈閃轉黃燈,東西紅燈 LCALL STATUS3 ;南北紅燈,東西綠燈 LCALL STATUS4 ;南北紅燈,東西綠燈閃轉黃燈 LJMP CIRCLE STATUS0: ;南北紅燈,東西紅燈 MOV DPTR,#8300H MOV A,#0FH MOVX DPTR,A MOV R2,#10 ;延時1秒 LCALL DELAY RET STATUS1: ;南北綠燈,東西紅燈 MOV DPTR,#08300H MO

8、V A,#96H ;南北綠燈,東西紅燈 MOVX DPTR,A MOV R2,#200 ;延時20秒 LCALL DELAY RET STATUS2: ;南北綠燈閃轉黃燈,東西紅燈 MOV DPTR,#8300H MOV R3,#03H ;綠燈閃3次 FLASH: MOV A,#9FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#96H MOVX DPTR,A MOV R2,#03H LCALL DELAYDJNZ R3,FLASH MOV A,#06H ;南北黃燈,東西紅燈 MOVX DPTR,A MOV R2,#10 ;延時1秒 LCALL DEL

9、AY RET STATUS3: ;南北紅燈,東西綠燈 MOV DPTR,#8300H MOV A,#69H MOVX DPTR,A MOV R2,#200 ;延時20秒 LCALL DELAY RET STATUS4: ;南北紅燈,東西綠燈閃轉黃燈 MOV DPTR,#8300H MOV R3,#03H ;綠燈閃3次 FLASH1: MOV A,#6FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#69H MOVX DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV A,#09H ;南北紅燈,東西黃燈 M

10、OVX DPTR,A MOV R2,#10 ;延時1秒 LCALL DELAY NOP RET DELAY: ;延時子程序 PUSH 2 PUSH 1 PUSH 0 DELAY1: MOV 1,#00H DELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延時 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END*(6)編寫程序,使東西南北四個燈均閃爍黃燈(閃爍時間為1秒)。4 外部中斷實驗(急救車與交通燈)(1)實驗要求:在交通燈實驗內容的基礎上增加允許急救車優先通過的要求。有急救車到達時,兩向交通信號為全紅,以便讓

11、急救車通過。假定急救車通過路口時間為10秒,急救車通過后,交通燈恢復中斷前狀態。本實驗以按鍵為中斷申請,表示有急救車通過。(2)實驗電路及連線(3)實驗說明中斷服務程序的關鍵是:1.保護進入中斷時的狀態,并在退出中斷之前恢復進入時的狀態。2.必須在中斷程序中設定是否允許中斷重入,即設置EX0位。本例中使用了INT0中斷,一般中斷程序進入時應保護PSW,ACC以及中斷程序使用但非其專用的寄存器。本例的INT0程序保護了PSW,ACC,2等三個寄存器并且在退出前恢復了這三個寄存器。另外中斷程序中涉及到關鍵數據的設置時應關中斷,即設置時不允許重入。本例中沒有涉及這種情況。實驗開始時K8應在H(高電平

12、)端,要產生中斷時先撥向L(低電平)端再撥回H端。(4)實驗框圖INT0中斷程序框圖TRLED2.ASM主程序框圖(5)PO0PO3接DG1DG4,PO4PO7接DR1DR4,D16的/CS接8300H,K8接P3.2。運行程序TRLED2,觀察現象。ORG 0000H LJMP START ORG 0003H ;INT 0 中斷入口地址 LJMP INT0 ORG 0040H START: MOV SP,#60HSETBSETB SETBCIRCLE: LCALL LCALLLCALL LCALLINT0: LCALL LJMPPUSHPUSH PUSHMOVMOV MOVXMOVLCALL

13、 POPMOVX POPSTA POPTUS0: RETIMOVMOV MOVXMOV LCALLSTA RETTUS1:MOVMOV MOVXMOVSTATUS2: LCALL RETFLASH: MOVMOV MOVMOVX MOVLCALL MOVMOVXMOV LCALLDJNZMOV MOVXMOV LCALLSTA TUS3: RET EX0 IT0 EA STASTASTATUS1 TUS0 STATUS2 CIRCLE STATUS3 TUS4 PSW 2 ACC DPTR,#8300H A,#0FH R2,#100 DPTR,A ACC DELAY 2 DPTR,A PSW

14、DPTR,#8300H A,#0FH DELAY R2,#10 DPTR,A DPTR,#8300H A,#96H DELAY R2,#200 DPTR,A DPTR,#8300H R3,#03H A,#9FH R2,#03H DPTR,A DELAY A,#96H DELAY R2,#03H DPTR,A R3,FLASH A,#06H DELAY R2,#10 DPTR,A ;INT 0 中斷有效 ;初始狀態(都是紅燈) ;南北綠燈,東西紅燈 ;南北綠燈閃轉黃燈,東西紅燈 ;南北紅燈南北紅燈,東西綠燈東西綠燈閃轉黃燈 ;保護現場 ;南北,東西都亮紅燈 ;延時10秒 ;恢復現場 ;南北紅燈,

15、東西紅燈 ;延時1秒 ;南北綠燈,東西紅燈 ;南北綠燈,東西紅燈 ;延時20秒 ;南北綠燈閃轉黃燈,東西紅燈 ;綠燈閃3次 ;南北黃燈,東西紅燈 ;延時1秒 ;南北紅燈,東西綠燈MOV DPTR,#8300H MOV A,#69H MOVX DPTR,A MOV R2,#200 ;延時20秒 LCALL DELAY RET STATUS4: ;南北紅燈,東西綠燈閃轉黃燈 MOV DPTR,#8300H MOV R3,#03H ;綠燈閃3次 FLASH1: MOV A,#6FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#69H MOVX DPTR,A

16、MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV A,#09H ;南北紅燈,東西黃燈 MOVX DPTR,A MOV R2,#10 ;延時1秒 LCALL DELAY NOP RET DELAY: ;延時子程序 PUSH 2 PUSH 1 PUSH 0 DELAY1: MOV 1,#00H DELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延時 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END*(6)修改程序TRLED2,使中斷時,東西南北四個燈均為紅色的同時,繼電器發出滴答聲。5 P3口輸出控制繼電器(選做)(1)實驗要求:利用P3.5輸出高低,控制繼電器的開合,實現對外部裝置的控制。(2)實

溫馨提示

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

評論

0/150

提交評論