家用电器定时控制器

家用电器定时控制器
家用电器定时控制器

家用电器定时控制器(可设置分、秒)

设计、实习要求:

设计一个家用电器的定时控制程序,要求显示定时时间,并可用键盘对定时时间进行设定。

程序功能:

(1)一开机数码管显示“good”,使某只发光二极管亮;

(2)用键可使定时控制器清零,允许对定时时间设定;

(3)用键可对分设定;用键可对秒设定;

(4)按“运行键”开始定时,并且运行过程中动态显示时间状态,时间到使八只发光二极管间隔亮。

程序功能附加要求:

在按“设定”键之前按任何键都无效的。

在进入倒计时状态后,仍可以对定时时间再次调节,即重新设定。

运行结束即时间到使八只发光二极管间隔亮,数码管显示“help”。

(型号:89C51)

源程序:

TICK EQU 10000

DBUF0 EQU 30H

TEMP EQU 40H

DIN BIT P0.4

CLK BIT P0.5

T100us EQU 156

C100us EQU 05H

ORG 0000H

LJMP START

ORG 000BH

LJMP T0INT

START:CLR P2.0

CLR P0.0

MOV 30H,#10H

MOV 31H,#10H

MOV 32H,#09H

MOV 33H,#0AH

MOV 34H,#0AH

MOV 35H,#0DH

MOV 36H,#10H

MOV 37H,#10H

ACALL DISP

SHEDING:MOV P1,#0FFH

MOV A,P1

JNB ACC.0,KEY

SJMP SHEDING

KEY:MOV P1,#0FFH

MOV A,P1

JNB ACC.0,CLEAR0

JNB ACC.1,BEGIN

JNB ACC.4,MH

JNB ACC.5,ML

JNB ACC.6,SH

JNB ACC.7,SL

SJMP KEY CLEAR0:ACALL CLEAR

SJMP KEY

MH:MOV A,33H

INC A

MOV 33H,A

CJNE A,#06H,JUMP

MOV 33H,#00H

LCALL DISP

SJMP KEY

ML:MOV A,34H

INC A

MOV 34H,A

CJNE A,#0AH,JUMP

MOV 34H,#00H

LCALL DISP

SJMP KEY

SH:MOV A,36H

INC A

MOV 36H,A

CJNE A,#06H,JUMP

MOV 36H,#00H

LCALL DISP

SJMP KEY

SL:MOV A,37H

INC A

MOV 37H,A

CJNE A,#0AH,JUMP

MOV 37H,#00H

LCALL DISP

SJMP KEY JUMP:LCALL DELAY

ACALL DISP

LJMP KEY

JUMP1:LJMP CLEAR0

JUMP2:LJMP KEY

JUMP3:CLR TR0

SJMP STOP

STOP:SJMP KEY

BEGIN:MOV TMOD, #02H

MOV TH0, #T100us

MOV TL0, #T100us

MOV IE, #10000010B

SETB TR0

MOV C100us, #HIGH(TICK)

MOV C100us+1, #LOW(TICK) W AIT:JNB P1.2,JUMP3

MOV A,33H

JNZ WAIT

MOV A,34H

JNZ WAIT

MOV A,36H

JNZ WAIT

MOV A,37H

JNZ WAIT

CLR TR0

LJMP HELP

SJMP W AIT

T0INT:PUSH PSW

MOV A, C100us+1

JNZ GOON

DEC C100us

GOON:DEC C100us+1

MOV A, C100us

ORL A, C100us+1

JNZ EXIT

MOV C100us, #HIGH(TICK)

MOV C100us+1, #LOW(TICK) TIMING:SETB P0.0

ACALL DELAY

MOV A,37H

DEC A

MOV 37H,A

CJNE A,#0FFH,DISP1

MOV 37H,#09H

MOV A,36H

DEC A

MOV 36H,A

CJNE A,#0FFH,DISP1

MOV 36H,#05H

MOV A,34H

DEC A

MOV 34H,A

CJNE A,#0FFH,DISP1

MOV 34H,#09H

MOV A,33H

DEC A

MOV 33H,A

CJNE A,#0FFH,DISP1

MOV 33H,#05H

MOV A,31H

DEC A

MOV 31H,A

CJNE A,#0FFH,DISP1

MOV 31H,#09H

MOV A,30H

DEC A

MOV 30H,A

CJNE A,#0FFH,DISP1

MOV 30H,#05H DISP1:ACALL DISP EXIT:POP PSW

RETI

HELP:MOV 30H,#10H

MOV 31H,#10H

MOV 32H,#0BH

MOV 33H,#0CH

MOV 34H,#0FH

MOV 35H,#0EH

MOV 36H,#10H

MOV 37H,#10H

ACALL DISP

CLR P0.0

FLASH:MOV A, #0FEH

MOV R5, #8 OUTPUT:JNB P1.3,RESET

MOV P2, A

RL A

LCALL DELAY

DJNZ R5, OUTPUT

SJMP FLASH

RESET:LJMP KEY

DELAY:MOV R6, #0

MOV R7, #0

DELAYLOOP:DJNZ R7, DELAYLOOP

DJNZ R6, DELAYLOOP

RET

DISP:MOV R0, #DBUF0

MOV R1, #TEMP

MOV R2, #8

DP10:MOV DPTR,#SEGTAB

MOV A, @R0

MOVC A, @A+DPTR

MOV @R1, A

INC R0

INC R1

DJNZ R2, DP10

MOV R0, #TEMP

MOV R1, #8

DP12:MOV R2, #8

MOV A, @R0

DP13:RLC A

MOV DIN, C

CLR CLK

SETB CLK

DJNZ R2, DP13

INC R0

DJNZ R1, DP12

RET

SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,5CH,76H

DB 79H,5EH,73H,38H,00H,40H CLEAR:CLR A

MOV P1,#0FFH

MOV A,P1

JNB ACC.0,CLEAR1

SJMP CLEAR

CLEAR1:MOV 30H,#00H

MOV 31H,#00H

MOV 32H,#11H

MOV 33H,#00H

MOV 34H,#00H

MOV 35H,#11H

MOV 36H,#00H

MOV 37H,#00H LCALL DISP RET

END

相关主题
相关文档
最新文档