壹.實驗要求
以74LS273作為輸出口,控制4個雙色LED燈(可發紅,綠,黃光),模擬交通燈管理。
二.實驗目的
1.學習在單片機系統中擴展簡單I/O接口的方法。
2.學習數據輸出程序的設計方法。
3.學習模擬交通燈控制的方法。
4.學習雙色燈的使用。
三.實驗電路及連線
四.實驗說明
1.因為本實驗是交通燈控制實驗,所以要先了解實際交通燈的變化規律。假設壹個十字路口為東西南北走向。初始狀態0為東西紅燈,南北紅燈。然後轉狀態1南北綠燈通車,東西紅燈。過壹段時間轉狀態2,南北綠燈閃幾次轉亮黃燈,延時幾秒,東西仍然紅燈。再轉狀態3,東西綠燈通車,南北紅燈。過壹段時間轉狀態4,東西綠燈閃幾次轉亮黃燈,延時幾秒,南北仍然紅燈。最後循環至狀態1。
2.雙色LED是由壹個紅色LED管芯和壹個綠色LED管芯封裝在壹起,公用負端。當紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。
五.實驗程序框圖
程序框圖:
源代碼:
ORG 0000H
LJMP START
ORG 0040H
START:
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
MOV A,#5AH ;南北綠燈,東西紅燈
MOVX @DPTR,A
MOV R2,#50 ;延時5秒
LCALL DELAY
RET
STATUS2: ;南北綠燈閃轉黃燈,東西紅燈
MOV DPTR,#8300H
MOV R3,#03H ;綠燈閃3次
FLASH: MOV A,#5FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#5AH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
MOV A,#0AH ;南北黃燈,東西紅燈
MOVX @DPTR,A
MOV R2,#10 ;延時1秒
LCALL DELAY
RET
STATUS3: ;南北紅燈,東西綠燈
MOV DPTR,#8300H
MOV A,#0A5H
MOVX @DPTR,A
MOV R2,#50 ;延時5秒
LCALL DELAY
RET
STATUS4: ;南北紅燈,東西綠燈閃轉黃燈
MOV DPTR,#8300H
MOV R3,#03H ;綠燈閃3次
FLASH1: MOV A,#0AFH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#0A5H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#05H ;南北紅燈,東西黃燈
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