新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)交通燈程序設(shè)計(jì)

        51單片機(jī)交通燈程序設(shè)計(jì)

        作者: 時(shí)間:2014-01-16 來源:網(wǎng)絡(luò) 收藏

        采用作為系統(tǒng)的MCU,基本完成控制兩組交通指示燈交替亮

        每個(gè)街口有左拐、直行及行人三種指示燈。直行燈每個(gè)燈有紅、黃、綠三種顏色。自行車與汽車共用左拐和直行燈。

        首先東西向直行綠燈和行人燈亮1分鐘,左轉(zhuǎn)燈亮30秒,黃燈亮5秒(同時(shí)南北向紅燈亮95秒),然后東西向紅燈亮95秒鐘(同時(shí)首先南北向直行綠燈和行人燈亮1分鐘,左轉(zhuǎn)燈亮30秒,黃燈亮5秒),然后東西向的綠燈亮,依次類推。
        每次綠燈亮的時(shí)候,對(duì)應(yīng)的行人燈亮。

        60S/30S/5S/60S/30S/5S
        東西道
        綠和行人/左轉(zhuǎn)/黃/紅/紅/紅
        南北道
        紅/紅/紅/綠和行人/左轉(zhuǎn)/黃
        行人燈亮的時(shí)候有聲音提示盲人能通過。
        突發(fā)交通事故的時(shí)候能夠緊急全紅燈。
        在有重要人物通過的時(shí)候能手動(dòng)改為綠燈。

        ORG 0000H ;主程序的入口地址
        LJMP MAIN ;跳轉(zhuǎn)到主程序的開始處
        ORG 0003H ;外部中斷0的中斷程序入口地址
        ORG 000BH ;定時(shí)器0的中斷程序入口地址
        LJMP T0_INT ;跳轉(zhuǎn)到中斷服務(wù)程序處
        ORG 0013H ;外部中斷1的中斷程序入口地址
        MAIN : MOV SP,#50H
        MOV IE,#8EH ;CPU開中斷,允許T0中斷,T1中斷和外部中斷1中斷
        MOV TMOD,#51H ;設(shè)置T1為計(jì)數(shù)方式,T0為定時(shí)方式,且都工作于模式1
        MOV TH1,#00H ;T1計(jì)數(shù)器清零
        MOV TL1,#00H
        SETB TR1 ;啟動(dòng)T1計(jì)時(shí)器
        SETB EX1 ;允許INT1中斷
        SETB IT1 ;選擇邊沿觸發(fā)方式
        MOV DPTR ,#0003H
        MOV A, #80H ;給8255賦初值,8255工作于方式0
        MOVX @DPTR, A
        AGAIN: JB P3.1,N0 ;判斷是否要設(shè)定東西方向紅綠燈時(shí)間的初值,若P3.1為1 則跳轉(zhuǎn)
        MOV A,P1
        JB P1.7,RED ;判斷P1.7是否為1,若為1則設(shè)定紅燈時(shí)間,否則設(shè)定綠燈時(shí)間
        MOV R0,#00H ;R0清零
        MOV R0,A ;存入東西方向綠燈初始時(shí)間
        MOV R3,A
        LCALL DISP1
        LCALL DELAY
        AJMP AGAIN
        RED: MOV A,P1
        ANL A,#7FH ;P1.7置0
        MOV R7,#00H ;R7清零
        MOV R7,A ;存入東西方向紅燈初始時(shí)間
        MOV R3,A
        LCALL DISP1
        LCALL DELAY
        AJMP AGAIN
        ;----------------------------------
        N0: SETB TR0 ;啟動(dòng)T0計(jì)時(shí)器
        MOV 76H,R7 ;紅燈時(shí)間存入76H
        N00: MOV A,76H ;東西方向禁止,南北方向通行
        MOV R3,A
        MOV DPTR,#0000H ;置8255A口,東西方向紅燈亮,南北方向綠燈亮
        MOV A,#0DDH
        MOVX @DPTR, A
        N01: JB P2.0,B0
        N02: SETB P3.0
        CJNE R3,#00H,N01 ;比較R3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行
        ;------黃燈閃爍5秒程序------
        N1: SETB P3.0
        MOV R3,#05H
        MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮
        MOV A,#0D4H
        MOVX @DPTR,A
        N11: MOV R4,#00H
        N12: CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒
        N13: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅
        MOV A,#0DDH
        MOVX @DPTR,A
        N14: MOV R4,#00H
        CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒
        CJNE R3,#00H,N1 ;閃爍時(shí)間達(dá)5秒則退出
        ;-----------------------------------
        N2: MOV R7,#00H
        MOV A,R0 ;東西通行,南北禁止
        MOV R3,A
        MOV DPTR,#0000H ; 置8255A口,東西方向綠燈亮,南北方向紅燈亮
        MOV A,#0EBH
        MOVX @DPTR,A
        N21: JB P2.0,T03

        N22: CJNE R3,#00H,N21
        ;------黃燈閃爍5秒程序------
        N3: MOV R3,#05H
        MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮
        MOV A,#0E2H
        MOVX @DPTR,A
        N31: MOV R4,#00H
        CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒
        N32: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅
        MOV A,#0EBH
        MOVX @DPTR,A
        N33: MOV R4,#00H
        CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒
        CJNE R3,#00H,N3 ;閃爍時(shí)間達(dá)5秒則退出
        SJMP N00

        51單片機(jī)相關(guān)文章:51單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)視頻教程


        單片機(jī)相關(guān)文章:單片機(jī)工作原理



        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 长垣县| 曲水县| 商丘市| 福海县| 镇原县| 琼海市| 南平市| 永州市| 东光县| 始兴县| 永福县| 蓝田县| 万山特区| 云霄县| 阳江市| 资溪县| 大悟县| 永定县| 锡林郭勒盟| 尉氏县| 巴彦县| 肥乡县| 香格里拉县| 罗甸县| 平邑县| 方山县| 锦屏县| 泰和县| 拉萨市| 长丰县| 长海县| 津市市| 陵川县| 新泰市| 罗江县| 宁强县| 伊金霍洛旗| 隆安县| 宜宾市| 西畴县| 英吉沙县|