找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5918|回復(fù): 0
收起左側(cè)

[求助]紅綠燈數(shù)碼管顯示部分

[復(fù)制鏈接]
ID:10802 發(fā)表于 2009-4-11 00:20 | 顯示全部樓層 |閱讀模式
大家好,我這個(gè)單片機(jī)新手又來麻煩大家了,我正在編寫一個(gè)紅綠燈在模擬板子上得程序,但數(shù)碼管顯示的部分始終實(shí)現(xiàn)不了,希望各位高手能指點(diǎn)一下,在下不勝感激。這是一個(gè)實(shí)現(xiàn)南北和東西方向的紅綠燈程序的一部分。其中東西方向紅燈延時(shí)30s,南北方向綠燈延時(shí)25s黃燈延時(shí)5s。我的問題主要是在東西方向在實(shí)現(xiàn)25s延時(shí)后剩下得5s,不知怎么和黃燈的5s取得統(tǒng)一。下面綠色部分即是在下困惑的地方,希望各位高手能個(gè)指點(diǎn)一二。謝謝
LED0 BIT P2.0
LED1 BIT P2.1
LED4 BIT P2.4
LED5 BIT P2.5
GRE0 EQU 30H
RED0 EQU 31H
YEL0 EQU 32H
GRE1 EQU 33H
RED1 EQU 34H
YEL1 EQU 35H
BUF_LED0 EQU 36H         ;數(shù)碼存儲(chǔ)區(qū)
BUF_LED1 EQU 37H
BUF_LED4 EQU 38H
BUF_LED5 EQU 39H
BUF_LED3 EQU 40H
LYEL0 EQU 51H
   ORG 00H
   AJMP MAIN
   ORG 0BH
   AJMP IT0P
MAIN: MOV DPTR,#TABLE
      MOV TMOD,#01H
      MOV 21H,#100
      MOV LYEL0,#0      
      MOV P1,#0FFH
      MOV P0,#0FFH
      MOV P2,#0FFH
      MOV BUF_LED0,#092H       ;賦初值   5
      MOV BUF_LED1,#0A4H          ;         2
      MOV BUF_LED4,#0C0H          ;         0
      MOV BUF_LED5,#0B0H          ;         3
      MOV SP,#60H
      MOV GRE0,#25      ;GRE0,RED0,YEL0南北方向燈的存儲(chǔ)區(qū)
      MOV RED0,#25
      MOV YEL0,#5
      MOV GRE1,#20       ;GRE1,RED1,YEL1東西方向燈的存儲(chǔ)區(qū)
      MOV RED1,#30
      MOV YEL1,#5
      MOV TH0,#0D8H  ;賦初值1mS
      MOV TL0,#0F0H
      MOV IE,#82H
      SETB TR0
HERE:   CALL XIANSHI
       SJMP HERE
IT0P:
      PUSH Acc
      PUSH PSW
      MOV TH0,#0D8H
      MOV TL0,#0F0H
      DJNZ 21H,RETURN    ;實(shí)現(xiàn)延時(shí)一秒
      MOV 21H,#100
     MOV A,RED1  ;東西燈30S 
      DEC A
      MOV RED1,A
      ACALL FENLI
      MOVC A,@A+DPTR
     MOV BUF_LED5,A
      MOV A,B
      MOVC A,@A+DPTR
     MOV BUF_LED4,A
     MOV C,LYEL0         ;LYEL0作用是實(shí)現(xiàn)跳轉(zhuǎn)到黃燈,當(dāng)C=1時(shí)跳到B1
     JC B1
     MOV A,GRE0      ;南北綠燈25S
      DEC A
      MOV GRE0,A
      ACALL FENLI
     MOVC A,@A+DPTR       
      MOV BUF_LED1,A
      MOV A,B
     MOVC A,@A+DPTR
      MOV BUF_LED0,A
      MOV A,GRE0 
      CJNE A,#0FFH,B0
      MOV LYEL0,#1
 B1:   MOV A,YEL0    ;南北黃燈5S
       DEC A
      MOV YEL0,A
      AJMP FENLI
      MOVC A,@A+DPTR
      MOV BUF_LED1,A
      MOV A,B
      MOVC A,@A+DPTR
      MOV BUF_LED0,A
 B0:  MOV A,RED1
      CJNE A,#0FFH,RETURN

FENLI: MOV B,#10  ;實(shí)現(xiàn)個(gè)十位的分離
           DIV AB
           RET
RETURN: POP PSW
             POP Acc
             RETI
XIANSHI:MOV P2,#11111110B ;數(shù)碼管1亮
        MOV P0,BUF_LED0
        ACALL DELAY
        MOV P2,#11111101B  ;數(shù)碼管2亮
        MOV P0,BUF_LED1
        ACALL DELAY
        MOV P2,#11101111B  ;數(shù)碼管4亮
        MOV P0,BUF_LED4
        ACALL DELAY
 MOV P2,#11011111B  ;數(shù)碼管5亮
        MOV P0,BUF_LED5
        ACALL DELAY
        RET
DELAY:
        MOV R6,#10
   D2:  MOV R7,#248
   D3:  DJNZ R7,D3
           DJNZ R6,D2
           RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
      END
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表