• 您現在的位置是:首頁 >動態 > 2024-03-01 15:10:36 來源:

    交通燈程序設計(交通燈程序)

    導讀 大家好,我是小夏,我來為大家解答以上問題。交通燈程序設計,交通燈程序很多人還不知道,現在讓我們一起來看看吧!1、這個是我以前單片機...

    大家好,我是小夏,我來為大家解答以上問題。交通燈程序設計,交通燈程序很多人還不知道,現在讓我們一起來看看吧!

    1、這個是我以前單片機課程設計上我做的程序,希望對你有一定幫助。

    2、要求:根據TD-PIT-B實驗箱現有的實驗電路,設計電路并編寫程序使六個燈按照交通燈變化規律亮、滅或者閃爍。十字路口交通燈的變化規律要求:

    3、(6) 南北路口的綠燈,東西路口的紅燈同時亮30秒。

    4、(7) 南北路口的黃燈閃爍3次,同時東西路口的紅燈繼續亮。

    5、(8) 南北路口的紅燈,東西路口的綠燈同時亮30秒。

    6、(9) 南北路口的紅燈繼續亮,同時東西路口的黃燈閃爍3次。

    7、(10) 轉(11)重復。

    8、(

    9、當時我們采用的只是二極管p7~p0

    10、東西交通燈我采用的是P7P6P5分別代表紅黃綠燈

    11、 南北交通燈我采用的是P2P1P0分別代表紅黃綠燈,中間的P3P4我空起沒用)

    12、LED方面的自己去摸索哈!

    13、實驗代碼如下:

    14、M8255COUNTB EQU 0D061H

    15、M8255COUNTC EQU 0D062H

    16、M8255MODE EQU 0D063H

    17、M8254COUNT0 EQU 0D040H

    18、M8254MODE EQU 0D043H

    19、CODE SEGMENT

    20、 ASSUME CS:CODE

    21、START:MOV DX,M8255MODE ;初始化8255

    22、 MOV AL,81H ; 工作方式是B口輸出,方式0

    23、 OUT DX,AL

    24、 MOV DX,M8255COUNTB

    25、 MOV AL,00H ; 初始狀態,燈全亮

    26、 OUT DX,AL

    27、 CALL DELAY

    28、 CALL L00 ;第一個狀態,即南北綠燈亮,東西紅燈亮

    29、 CALL L01 ;第二個狀態,即南北黃燈閃,東西紅燈亮

    30、 CALL L02 ;第三個狀態,即南北紅燈亮,東西綠燈亮

    31、 CALL L03 ;第四個狀態,即南北紅燈亮,東西黃燈閃

    32、 CALL L04 ;返回狀態一

    33、 MOV AX,4C00H ;結束返回DOS

    34、 INT 21H

    35、L00 PROC NEAR

    36、 MOV DX,M8255COUNTB

    37、 MOV AL,10000001B ;第一個狀態,即南北綠燈亮,東西紅燈亮

    38、 OUT DX,AL

    39、 CALL DELAY

    40、 CALL GGG ;延時30S

    41、RET ;返回

    42、L00 ENDP

    43、L01 PROC NEAR ;第二個狀態,即南北黃燈閃,東西紅燈亮

    44、 PUSH CX

    45、 MOV CX,3

    46、STA1:MOV DX,M8255COUNTB

    47、 MOV AL,10000010B ;南北黃燈亮,東西紅燈亮

    48、 OUT DX,AL

    49、 CALL DELAY

    50、 CALL YYY ;延時1S

    51、 MOV DX,M8255COUNTB

    52、 MOV AL,10000000B ;南北黃燈滅,東西紅燈亮

    53、 OUT DX,AL

    54、 CALL DELAY

    55、 CALL YYY

    56、 LOOP STA1

    57、 POP CX

    58、 RET

    59、L01 ENDP

    60、L02 PROC NEAR ; 第三個狀態

    61、 MOV DX,M8255COUNTB

    62、 MOV AL,00100100B ; 即南北紅燈亮,東西綠燈亮

    63、 OUT DX,AL

    64、 CALL DELAY

    65、 CALL GGG ;延時30S

    66、RET

    67、L02 ENDP

    68、L03 PROC NEAR ;第四個狀態,即南北紅燈亮,東西黃燈閃

    69、 PUSH CX

    70、 MOV CX,3

    71、STA3:MOV DX,M8255COUNTB

    72、 MOV AL,01000100B ; 南北紅燈亮,東西黃燈亮

    73、 OUT DX,AL

    74、 CALL DELAY

    75、 CALL YYY

    76、 MOV DX,M8255COUNTB

    77、 MOV AL,00000100B ;南北紅燈亮,東西黃燈滅

    78、 OUT DX,AL

    79、 CALL DELAY

    80、 CALL YYY

    81、 LOOP STA3 ;循環STA3

    82、 POP CX

    83、 RET

    84、L03 ENDP

    85、L04 PROC NEAR ;回狀態一

    86、 MOV DX,M8255COUNTB

    87、 MOV AL,10000001B ;南北綠燈亮,東西紅燈亮

    88、 OUT DX,AL

    89、 CALL DELAY

    90、RET

    91、L04 ENDP

    92、DELAY PROC NEAR

    93、 PUSH CX

    94、 MOV CX,0FFH

    95、L3:LOOP L3

    96、 POP CX

    97、 RET

    98、DELAY ENDP

    99、YYY PROC NEAR

    100、 MOV DX,M8254MODE

    101、 MOV AL,15H ;采用0號計數器,寫入低8位,高8位置0

    102、 OUT DX,AL

    103、 MOV DX,M8254COUNT0

    104、 MOV AL,10H

    105、 OUT DX,AL

    106、L2: CALL BREAK

    107、 MOV DX,M8255COUNTC

    108、 IN AL,DX

    109、 TEST AL,02H ;測試PC1位

    110、 JNZ L2

    111、 RET

    112、YYY ENDP

    113、GGG PROC NEAR

    114、 MOV DX,M8254MODE

    115、 MOV AL,25H ;寫入高8位,低8位置0

    116、 OUT DX,AL

    117、 MOV DX,M8254COUNT0

    118、 MOV AL,03H ; 計數時間30s

    119、 OUT DX,AL

    120、L1: CALL BREAK

    121、 MOV DX,M8255COUNTC

    122、 IN AL,DX

    123、 TEST AL,02H ;測試PC1位

    124、 JNZ L1

    125、 RET

    126、GGG ENDP

    127、BREAK PROC NEAR ;防止進入死循環

    128、 MOV AH,06H

    129、 MOV DL,0FFH

    130、 INT 21H

    131、 JE RETURN

    132、RETURN: RET

    133、BREAK ENDP

    134、CODE ENDS

    135、 END START

    本文到此講解完畢了,希望對大家有幫助。

  • 成人app