在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機(jī)的帶時間顯示和緊急控制的交通燈的設(shè)計

            基于51單片機(jī)的帶時間顯示和緊急控制的交通燈的設(shè)計

            作者: 時間:2012-10-26 來源:網(wǎng)絡(luò) 收藏

            ;特別說明,本程序僅供單片機(jī)愛好者自己學(xué)習(xí)使用,


            ;不得做為其它商業(yè)用途


            ;此程序在硬件上調(diào)試通
            ;晶振頻率為11.0592MHZ
            ;用定時器1延時,外部中斷0接
            ;R0為100MS延時常數(shù),R2為狀態(tài)延時常數(shù)
            ;8279控制數(shù)碼管顯示時間
            ;用P1口控制雙色燈
            ;此程序?qū)懹?007-7-6,作者:徐學(xué)軍
            Z8279 EQU 0FF82H ;8279 狀態(tài)/命令口地址
            D8279 EQU 0FF80H ;8279 數(shù)據(jù)口地址
            LEDMOD EQU 00H ;左邊輸入 八位字符顯示
            ;外部譯碼鍵掃描方式,雙鍵互鎖
            LEDFEQ EQU 33H ;掃描速率
            LEDCLS EQU 0C1H ;清除顯示 RAM
            LEDWR0 EQU 80H ;設(shè)定的將要寫入的顯示RAM地址

            ORG 0000H
            LJMP START
            ORG 0003H ;INT 0 中斷入口地址
            LJMP INT_0
            ORG 001BH ;T1中斷入口地址
            LJMP INT_T1
            ORG 0040H
            START:
            MOV SP,#60H
            MOV TMOD,#10H ;置T1為方式1
            SETB EX0 ;INT 0 中斷有效
            SETB IT0
            SETB EA
            MOV TL1,#00H ;延時50mS常數(shù)
            MOV TH1,#4cH
            MOV R0,#2 ;延時100mS常數(shù)
            SETB TR1 ;啟動T1
            SETB ET1
            setb pt1 ;必須設(shè)置定時器1的中斷優(yōu)先級高于外部中斷0
            LCALL INIT8279 ;初始化8279



            LCALL STATUS0 ;初始狀態(tài)(都是紅燈)
            CIRCLE:
            LCALL STATUS1 ;南北綠燈,東西紅燈
            LCALL STATUS2 ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈
            LCALL STATUS3 ;南北紅燈,東西綠燈
            LCALL STATUS4 ;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈
            LJMP CIRCLE
            INT_0:
            PUSH PSW ;保護(hù)現(xiàn)場
            PUSH 2
            PUSH 90H
            clr ex0
            MOV P1,#0FH ;南北,東西都亮紅燈
            MOV R2,#100 ;延時10秒
            LCALL DELAY_DISPLAY
            setb ex0
            POP 90H ;恢復(fù)現(xiàn)場
            POP 2
            POP PSW
            RETI
            INT_T1:
            PUSH ACC
            PUSH PSW
            CLR TR1
            MOV TL1,#00H ;延時 50mS 常數(shù)
            MOV TH1,#4CH
            SETB TR1
            DJNZ R0,EXIT
            MOV R0,#2 ;延時 100ms常數(shù)
            DEC R2
            EXIT:
            POP PSW
            POP ACC
            RETI

            STATUS0: ;南北紅燈,東西紅燈
            MOV P1,#0FH
            MOV R2,#10 ;延時1秒
            LCALL DELAY_DISPLAY
            RET
            STATUS1: ;南北綠燈,東西紅燈
            MOV P1,#96H ;南北綠燈,東西紅燈
            MOV R2,#200 ;延時20秒
            LCALL DELAY_DISPLAY
            RET
            STATUS2: ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈
            MOV R3,#03H ;綠燈閃3次
            FLASH:
            MOV P1,#9FH
            MOV R2,#03H
            LCALL DELAY_DISPLAY
            MOV P1,#96H
            MOV R2,#03H
            LCALL DELAY_DISPLAY
            DJNZ R3,FLASH
            MOV P1,#06H ;南北黃燈,東西紅燈
            MOV R2,#10 ;延時1秒
            LCALL DELAY_DISPLAY
            RET
            STATUS3: ;南北紅燈,東西綠燈
            MOV P1,#69H
            MOV R2,#200 ;延時20秒
            LCALL DELAY_DISPLAY
            RET
            STATUS4: ;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈
            MOV R3,#03H ;綠燈閃3次
            FLASH1:
            MOV P1,#6FH
            MOV R2,#03H
            LCALL DELAY_DISPLAY
            MOV P1,#69H
            MOV R2,#03H
            LCALL DELAY_DISPLAY
            DJNZ R3,FLASH1
            MOV P1,#09H ;南北紅燈,東西黃燈
            MOV R2,#10 ;延時1秒
            LCALL DELAY_DISPLAY
            NOP
            RET
            INIT8279: ;8279初始化子程序
            PUSH DPH ;保存現(xiàn)場
            PUSH DPL
            PUSH ACC
            LCALL DELAY ;延時
            MOV DPTR ,#Z8279
            MOV A,#LEDMOD ;置8279工作方式
            MOVX @DPTR,A
            MOV A,#LEDFEQ ;置鍵盤掃描速率
            MOVX @DPTR,A
            MOV A,#LEDCLS ;清除 LED 顯示
            MOVX @DPTR,A
            LCALL DELAY ;延時
            POP ACC ;恢復(fù)現(xiàn)場
            POP DPL
            POP DPH
            RET
            ;顯示字符子程序
            ;輸入: R4,位置 R5,值
            DISLED:
            PUSH DPH ;保存現(xiàn)場
            PUSH DPL
            PUSH ACC
            MOV A,#LEDWR0 ;置顯示起始地址
            ADD A,R4 ;加位置偏移量
            MOV DPTR,#Z8279
            MOVX @DPTR,A ;設(shè)定顯示位置
            MOV DPTR,#LEDSEG ;置顯示常數(shù)表起始位置
            MOV A,R5
            MOVC A,@A+DPTR ;查表
            MOV DPTR,#D8279
            MOVX @DPTR,A ;顯示數(shù)據(jù)
            POP ACC ;恢復(fù)現(xiàn)場
            POP DPL
            POP DPH
            RET
            DELAY: ;延時子程序
            PUSH 0 ;保存現(xiàn)場
            PUSH 1
            MOV 0,#0H
            DELAY1:
            MOV 1,#0H
            DJNZ 1,$
            DJNZ 0,DELAY1
            POP 1 ;恢復(fù)現(xiàn)場
            POP 0
            RET

            DELAY_DISPLAY: ;延時和顯示時間子程序
            PUSH 1
            PUSH 0
            push acc
            loopwait: mov b,#10
            mov a,2
            div ab
            mov b,#10
            div ab
            mov r4,#1
            mov r5,a
            LCALL DISLED ;顯示秒高位
            mov r4,#0
            mov r5,b
            LCALL DISLED ;顯示秒低位
            mov a,2
            jnz loopwait ;延時等待
            pop acc
            POP 0
            POP 1
            RET
            LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
            DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
            END



            評論


            相關(guān)推薦

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

            關(guān)閉