當前位置:編程學習大全網 - 編程語言 - 急求單片機控制交通燈的程序,另求數碼管倒計時的匯編程序,要與仿真圖壹套

急求單片機控制交通燈的程序,另求數碼管倒計時的匯編程序,要與仿真圖壹套

倒計時匯編程序:

?ORG0000H

JMPBEGIN

?ORG 000BH

?LJMP T0INT

?ORG 001BH

?LJMP T1INT

LEDD EQU 30H

LEDC EQU?36H

SECC EQU?37H

MINC EQU?38H

HOUR EQU?39H

TCNT EQU?3AH

ORG?0030H

;---------------------------------------

TABLE:?;?***陰極數碼管顯示代碼表

DB?0FCH ;"0" 00H

DB?60H ;"1" 01H

DB?0DAH ;"2" 02H

DB?0F2H ;"3" 03H

DB?66H ;"4" 04H

DB?0B6H ;"5" 05H

DB?0BEH ;"6" 06H

DB?0E0H ;"7" 07H

DB?0FEH ;"8" 08H

DB?0F6H ;"9" 09H

DB?0EEH ;"A" 0AH

DB?3EH ;"B" 0BH

DB?9CH ;"C" 0CH

DB?7AH ;"D" 0DH

DB?9EH ;"E" 0EH

DB?8EH ;"F" 0FH

DB?00H ;"?" 10H

;?DB3FH,06H,5BH,4FH,66H?;12345

;?DB6DH,7DH,07H,7FH,?;6789

;---------------------------------------

DELAY:?

MOVR6,#25

DLY01:?

MOVR7,#100

DJNZ?R7,$

DJNZ?R6,DLY01

RET

;---------------------------------------

BEGIN:?

MOV?SP,#5FH

MOV?TMOD,#11H

MOV?TH0,#3CH

MOV?TL0,#0B0H

MOV?TH1,#0F4H

MOV?TL1,#48H

MOV?LEDC,#6

MOV?R0,#LEDD

CLR?A

INIT:

MOV?@R0,A

INC?R0

DJNZ?LEDC,INIT

SETB?ET1

SETB?TR1

MOV?P2,#0

MOV?TCNT,#0

MOV?HOUR,#0

MOV?MINC,#0

MOV?SECC,#0

SETB?ET0

SETB?EA

LOOP:

JB?P1.0,LOOP1

LCALL?DELAY

JB?P1.0,LOOP1

JNB?P1.0,$

INC?HOUR

MOV?A,HOUR

CJNE?A,#24,LOOPH

LOOPH:

JC?LOOPH1

MOV?HOUR,#0

LOOPH1:

LCALL?DISHOUR

SJMP?LOOP

LOOP1:

JB?P1.1,LOOP2

LCALL?DELAY

JB?P1.1,LOOP2

JNB?P1.1,$

MOV?A,HOUR

JNZ?LOOPH2

MOV?HOUR,#23

SJMP?LOOPH3

LOOPH2:

DEC?HOUR

LOOPH3:

LCALL?DISHOUR

SJMP?LOOP

LOOP2:

JB?P1.2,LOOP3

LCALL?DELAY

JB?P1.2,LOOP3

JNB?P1.2,$

INC?MINC

MOV?A,MINC

CJNE?A,#60,LOOPM

LOOPM:

JC?LOOPM1

MOV?MINC,#0

LOOPM1:

LCALL?DISMIN

SJMP?LOOP

LOOP3:

JB?P1.3,LOOP4

LCALL?DELAY

JB?P1.3,LOOP4

JNB?P1.3,$

MOV?A,MINC

JNZ?LOOPM2

MOV?MINC,#59

SJMP?LOOPM3

LOOPM2:

DEC?MINC

LOOPM3:

LCALL?DISMIN

SJMP?LOOP

LOOP4:

JB?P1.4,LOOP5

LCALL?DELAY

JB?P1.4,LOOP5

JNB?P1.4,$

INC?SECC

MOV?A,SECC

CJNE?A,#60,LOOPS

LOOPS:

JC?LOOPS1

MOV?SECC,#0

LOOPS1:

LCALL?DISSEC

LJMP?LOOP

LOOP5:

JB?P1.5,LOOP6

LCALL?DELAY

JB?P1.5,LOOP6

JNB?P1.5,$

MOV?A,SECC

JNZ?LOOPS2

MOV?SECC,#59

SJMP?LOOPS3

LOOPS2:

DEC?SECC

LOOPS3:

LCALL?DISSEC

LJMP?LOOP

LOOP6:

JB?P3.1,LOOP7

LCALL?DELAY

JB?P3.1,LOOP7

JNB?P3.1,$

CPL?TR0

LOOP7:

LJMP?LOOP

;---------------------------------------

T1INT:

PUSH?ACC

CLR?TR1

MOV?TH1,#0F4H

MOV?TL1,#48H

SETB?TR1

MOV?DPTR,#TABLE

MOV?R0,#LEDD

MOV?A,LEDC

T1INT0:

JNZ?T1INT1

MOV?P2,#01H

MOV?A,@R0

MOVC?A,@A+DPTR

CPL?A

MOV?P0,A

SJMP?T1INTD

T1INT1:

DEC?A

JNZ?T1INT2

MOV?P2,#02H

INC?R0

MOV?A,@R0

MOVC?A,@A+DPTR

CPL?A

MOV?P0,A

SJMP?T1INTD

T1INT2:

DEC?A

JNZ?T1INT3

MOV?P2,#04H

INC?R0

INC?R0

MOV?A,@R0

MOVC?A,@A+DPTR

CPL?A

MOV?P0,A

SJMP?T1INTD

T1INT3:

DEC?A

JNZ?T1INT4

MOV?P2,#08H

INC?R0

INC?R0

INC?R0

MOV?A,@R0

MOVC?A,@A+DPTR

CPL?A

MOV?P0,A

SJMP?T1INTD

T1INT4:

DEC?A

JNZ?T1INT5

MOV?P2,#10H

INC?R0

INC?R0

INC?R0

INC?R0

MOV?A,@R0

MOVC?A,@A+DPTR

CPL?A

MOV?P0,A

SJMP?T1INTD

T1INT5:

DEC?A

JNZ?T1INTD

MOV?P2,#20H

INC?R0

INC?R0

INC?R0

INC?R0

INC?R0

MOV?A,@R0

MOVC?A,@A+DPTR

CPL?A

MOV?P0,A

T1INTD:

INC?LEDC

MOV?A,LEDC

CJNE?A,#6,T1INT6

T1INT6:

JC?T1INTE

MOV?LEDC,#0

T1INTE:

POP?ACC

RETI

;---------------------------------------

HBCD:

MOV?B,#10

DIV?AB?

SWAP?A?

ORL?A,B

RET?

;---------------------------------------

T0INT:

PUSH?ACC

CLR?TR0

MOV?TH0,#3CH

MOV?TL0,#0B0H

SETB?TR0

INC?TCNT

MOV?A,TCNT

CJNE?A,#20,T0INT1

T0INT1:

JC?T0INTE

MOV?TCNT,#0

MOV?A,SECC

ORL?A,MINC

ORL?A,HOUR

JNZ?T0INT2

SETB?P3.0

CLR?TR0

POP?ACC

RETI

T0INT2:

MOV?A,MINC

ORL?A,HOUR

JNZ?T0INT3

MOV?A,SECC

CJNE?A,#6,T0INT21

T0INT21:

JNC?T0INT22

CPL?P3.0

T0INT22:

DEC?SECC

LCALL?DISSEC

SJMP?T0INTE

T0INT3:

MOV?A,SECC

JZ?T0INT31

DEC?SECC

LCALL?DISSEC

SJMP?T0INTE

T0INT31:

MOV?SECC,#59

LCALL?DISSEC

MOV?A,MINC

JZ?T0INT32

DEC?MINC

LCALL?DISMIN

SJMP?T0INTE

T0INT32:

MOV?MINC,#59

LCALL?DISMIN

DEC?HOUR

LCALL?DISHOUR

T0INTE:

POP?ACC

RETI

;---------------------------------------

DISSEC:

MOV?A,SECC

LCALL?HBCD

PUSH?ACC

ANL?A,#0FH

MOV?30H,A

POP?ACC

SWAP?A

ANL?A,#0FH

MOV?31H,A

RET

;---------------------------------------

DISMIN:

MOV?A,MINC

LCALL?HBCD

PUSH?ACC

ANL?A,#0FH

MOV?32H,A

POP?ACC

SWAP?A

ANL?A,#0FH

MOV?33H,A

RET

;---------------------------------------

DISHOUR:

MOV?A,HOUR

LCALL?HBCD

PUSH?ACC

ANL?A,#0FH

MOV?34H,A

POP?ACC

SWAP?A

ANL?A,#0FH

MOV?35H,A

RET

;---------------------------------------

END

  • 上一篇:java語言培訓怎麽樣?
  • 下一篇:計算機考研 081200計算機科學與技術跟0812計算機科學與技術有什麽區別
  • copyright 2024編程學習大全網