<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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


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


          ;此程序在硬件上調(diào)試通
          ;晶振頻率為11.0592MHZ
          ;用定時(shí)器1延時(shí),外部中斷0接
          ;R0為100MS延時(shí)常數(shù),R2為狀態(tài)延時(shí)常數(shù)
          ;8279控制數(shù)碼管顯示時(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è)定的將要寫(xiě)入的顯示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 ;延時(shí)50mS常數(shù)
          MOV TH1,#4cH
          MOV R0,#2 ;延時(shí)100mS常數(shù)
          SETB TR1 ;啟動(dòng)T1
          SETB ET1
          setb pt1 ;必須設(shè)置定時(shí)器1的中斷優(yōu)先級(jí)高于外部中斷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)場(chǎng)
          PUSH 2
          PUSH 90H
          clr ex0
          MOV P1,#0FH ;南北,東西都亮紅燈
          MOV R2,#100 ;延時(shí)10秒
          LCALL DELAY_DISPLAY
          setb ex0
          POP 90H ;恢復(fù)現(xiàn)場(chǎng)
          POP 2
          POP PSW
          RETI
          INT_T1:
          PUSH ACC
          PUSH PSW
          CLR TR1
          MOV TL1,#00H ;延時(shí) 50mS 常數(shù)
          MOV TH1,#4CH
          SETB TR1
          DJNZ R0,EXIT
          MOV R0,#2 ;延時(shí) 100ms常數(shù)
          DEC R2
          EXIT:
          POP PSW
          POP ACC
          RETI

          STATUS0: ;南北紅燈,東西紅燈
          MOV P1,#0FH
          MOV R2,#10 ;延時(shí)1秒
          LCALL DELAY_DISPLAY
          RET
          STATUS1: ;南北綠燈,東西紅燈
          MOV P1,#96H ;南北綠燈,東西紅燈
          MOV R2,#200 ;延時(shí)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 ;延時(shí)1秒
          LCALL DELAY_DISPLAY
          RET
          STATUS3: ;南北紅燈,東西綠燈
          MOV P1,#69H
          MOV R2,#200 ;延時(shí)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 ;延時(shí)1秒
          LCALL DELAY_DISPLAY
          NOP
          RET
          INIT8279: ;8279初始化子程序
          PUSH DPH ;保存現(xiàn)場(chǎng)
          PUSH DPL
          PUSH ACC
          LCALL DELAY ;延時(shí)
          MOV DPTR ,#Z8279
          MOV A,#LEDMOD ;置8279工作方式
          MOVX @DPTR,A
          MOV A,#LEDFEQ ;置鍵盤(pán)掃描速率
          MOVX @DPTR,A
          MOV A,#LEDCLS ;清除 LED 顯示
          MOVX @DPTR,A
          LCALL DELAY ;延時(shí)
          POP ACC ;恢復(fù)現(xiàn)場(chǎng)
          POP DPL
          POP DPH
          RET
          ;顯示字符子程序
          ;輸入: R4,位置 R5,值
          DISLED:
          PUSH DPH ;保存現(xiàn)場(chǎng)
          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)場(chǎng)
          POP DPL
          POP DPH
          RET
          DELAY: ;延時(shí)子程序
          PUSH 0 ;保存現(xiàn)場(chǎng)
          PUSH 1
          MOV 0,#0H
          DELAY1:
          MOV 1,#0H
          DJNZ 1,$
          DJNZ 0,DELAY1
          POP 1 ;恢復(fù)現(xiàn)場(chǎng)
          POP 0
          RET

          DELAY_DISPLAY: ;延時(shí)和顯示時(shí)間子程序
          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 ;延時(shí)等待
          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



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();