您的当前位置:首页正文

倒计时器编程

来源:个人技术集锦


DBUF0 EQU 30H

TEMP EQU 40H

DIN BIT P0.4

CLK BIT P0.5

ORG 0000H

LJMP START0

ORG 0100H

START0: MOV 30H,#11H

MOV 31H,#11H

MOV 32H,#0DH

MOV 33H,#0EH

MOV 34H,#0EH

MOV 35H,#0FH

MOV 36H,#11H

MOV 37H,#11H

CLR P0.0

DISP0: MOV R0,#DBUF0

MOV R1,#TEMP

MOV R2,#8

DP100:MOV DPTR,#SEGTAB

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC R0

INC R1

DJNZ R2,DP100

MOV R0,#TEMP

MOV R1,#8

DP120:MOV R2,#8

MOV A,@R0

DP130: RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R2,DP130

INC R0

DJNZ R1,DP120

READY: SETB P1.0

MOV C,P1.0

JC READY

START: MOV A,#0FFH

MOV P2,A

MOV 30H,#11H

MOV 31H,#11H

MOV 32H,#0DH

MOV 33H,#0EH

MOV 34H,#0EH

MOV 35H,#0FH

MOV 36H,#11H

MOV 37H,#11H

DISP1: MOV R0,#DBUF0

MOV R1,#TEMP

MOV R2,#8

DP101:MOV DPTR,#SEGTAB

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC R0

INC R1

DJNZ R2,DP101

MOV R0,#TEMP

MOV R1,#8

DP121:MOV R2,#8

MOV A,@R0

DP131: RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R2,DP131

INC R0

DJNZ R1,DP121

CLEAR: SETB P1.1

MOV C,P1.1

JNC CLEAR1

LJMP CLEAR

CLEAR1: MOV 30H,#00H MOV 31H,#00H

//OO-OO-OO

MOV 32H,#11H

MOV 33H,#00H

MOV 34H,#00H

MOV 35H,#11H

MOV 36H,#00H

MOV 37H,#00H

DISP2: MOV R0,#DBUF0

MOV R1,#TEMP

MOV R2,#8

DP102:MOV DPTR,#SEGTAB

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC R0

INC R1

DJNZ R2,DP102

MOV R0,#TEMP

MOV R1,#8

DP122:MOV R2,#8

MOV A,@R0

DP132: RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R2,DP132

INC R0

DJNZ R1,DP122

SETTIME://JNB P1.2,HOU1

//JNB P1.3,HOU2

JNB P1.4,MIN1

JNB P1.5,MIN2

JNB P1.6,SEC1

JNB P1.7,SEC2

JNB P1.0,COUNTDOWN

LJMP SETTIME

// HOU1:MOV A,30H

// INC A

// MOV 30H,A

// CJNE A,#06H,JUMP

// MOV 30H,#00H

// CALL DELAY

// LJMP DISP2

HOU2:MOV A,31H

INC A

MOV 31H,A

CJNE A,#0AH,JUMP

MOV 31H,#00H

CALL DELAY

LJMP DISP2

MIN1:MOV A,33H

INC A

MOV 33H,A

CJNE A,#06H,JUMP

MOV 33H,#00H

CALL DELAY

LJMP DISP2

MIN2:MOV A,34H

INC A

MOV 34H,A

CJNE A,#0AH,JUMP

MOV 34H,#00H

CALL DELAY

LJMP DISP2

SEC1:MOV A,36H

INC A

MOV 36H,A

CJNE A,#06H,JUMP

MOV 36H,#00H

CALL DELAY

LJMP DISP2

SEC2:MOV A,37H

INC A

MOV 37H,A

CJNE A,#0AH,JUMP

MOV 37H,#00H

CALL DELAY

LJMP DISP2

JUMP:CALL DELAY

LJMP DISP2

COUNTDOWN:JNB P1.2,SETTIME

MOV A,37H

DEC A

MOV 37H,A

CJNE A,#0FFH,DISP3

MOV 37H,#09H

MOV A,36H

DEC A

MOV 36H,A

CJNE A,#0FFH,DISP3

MOV 36H,#05H

MOV A,34H

DEC A

MOV 34H,A

CJNE A,#0FFH,DISP3

MOV 34H,#09H

MOV A,33H

DEC A

MOV 33H,A

CJNE A,#0FFH,DISP3

MOV 33H,#05H

MOV A,31H

DEC A

MOV 31H,A

CJNE A,#0FFH,DISP3

MOV 33H,#09H

MOV A,30H

DEC A

MOV 30H,A

CJNE A,#0FFH,DISP3

LJMP FINISH

DISP3:MOV R0,#DBUF0

MOV R1,#TEMP

MOV R2,#8

DP103:MOV DPTR,#SEGTAB

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC R0

INC R1

DJNZ R2,DP103

MOV R0,#TEMP

MOV R1,#8

DP123:MOV R2,#8

MOV A,@R0

DP133:RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R2,DP133

INC R0

DJNZ R1,DP123

DELAYC1:MOV R1,#50

DELAYC2:MOV R2,#40

DELAYC3:MOV R3,#235

DELAYC4:DJNZ R3,DELAYC4

DJNZ R2,DELAYC3

DJNZ R1,DELAYC2

CLEAR2: SETB P1.1

MOV C,P1.1

JC COUNTDOWN

AJMP CLEAR1

LJMP COUNTDOWN

FINISH:MOV 30H,#11H

MOV 31H,#11H

MOV 32H,#12H

MOV 33H,#0CH

MOV 34H,#13H

MOV 35H,#14H

MOV 36H,#11H

MOV 37H,#11H

DISP4:MOV R0,#DBUF0

MOV R1,#TEMP

MOV R2,#8

DP104:MOV DPTR,#SEGTAB

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC R0

INC R1

DJNZ R2,DP104

MOV R0,#TEMP

MOV R1,#8

DP124:MOV R2,#8

MOV A,@R0

DP134:RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R2,DP134

INC R0

DJNZ R1,DP124

LIGHT:MOV A,#0AAH

MOV P2,A

CALL DELAY

MOV A,#55H

MOV P2,A

CALL DELAY

AGAIN:SETB P1.0

MOV C,P1.0

JC LIGHT

LJMP START

DELAY:MOV R6,#0

MOV R7,#0

DELAYLOOP:DJNZ R7,DELAYLOOP

DJNZ R6,DELAYLOOP

RET

OK:SJMP OK

SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH

DB 7DH,07H,7FH,6FH,77H,7CH

DB 79H,6FH,5CH,5EH,00H,40H

DB 76H,38H,73H

END

因篇幅问题不能全部显示,请点此查看更多更全内容