5
5
0
RW EQU P0.1
E EQU P0.2
OUT EQU P2
ORG 0000H
CLR LED_RED
CLR LED_GREEN
CLR LED_YELLOW
CLR EN1
JMP SETTT
SETTT:
MOV NUM_ADJUST,#90
MOV R4,#16
MOV DPTR,#0500H
TH:
MOV P2,A
MOV A,#0
MOVC A,@A+DPTR
ACALL SEND_DATA
INC DPTR
DJNZ R4,TH
MOV P2,#018H
ACALL SEND_COMMAND
STARTX:
CLR CS
SETB READ
CLR WRITE
SETB WRITE
X1: JB INT,X1
CLR READ
MOV NUM,IN
ACALL SHOWNUM
BUTTON_SET:
JB SETT, CONTINUE ;nhay den CONTINUE neu SET button=1
JNB SETT,ADJUST ;nhay den ADJUST neu SET button=0,hien thi
nhiet do dat
CONTINUE:
CLR C
MOV A, 30H
CJNE A, 34H, TURN_ON_MORTOR
SETB EN1
CONTINUE2:
CLR C
MOV R1,NUM
CJNE R1,#100, TURN_ON_LEDR
SETB LED_RED
CLR LED_YELLOW
CLR LED_GREEN
LJMP STARTX
TURN_ON_MORTOR:
JC CONTINUE1
SETB EN1
JMP CONTINUE2
CONTINUE1:
CLR EN1
JMP CONTINUE2
button3:
button4:
addition:
MOV A,NUM_ADJUST ;chuyen gia tri ban dau NUM_ADJUST = 90 vao
A
ADD A,#00000001B ;cong vao A them 1 don vi
MOV NUM,A
MOV NUM_ADJUST, A ;chuyen A vao NUM_ADJUST,NUM_ADJUST bay gio
la gia tri da duoc set tu lan set truoc do
ACALL SHOWNUM ;hien thi gia tri A
JB UP_DOWN, button3 ;
subtraction:
MOV A,NUM_ADJUST
SUBB A,#00000001B
MOV NUM,A
MOV NUM_ADJUST, A
ACALL SHOWNUM
TURN_ON_LEDY:
CLR C
MOV R1,NUM
CJNE R1,#40,STATUS
SETB LED_YELLOW
CLR LED_RED
CLR LED_GREEN
JMP STARTX
STATUS:
JNC TURN_ON
SETB LED_GREEN
CLR LED_RED
CLR LED_YELLOW
LJMP STARTX
TURN_ON:
CLR LED_GREEN
CLR LED_RED
SETB LED_YELLOW
MOV P2,#01H
LJMP STARTX
ADJUST:
MOV P2,#01H
ACALL SEND_COMMAND
MOV R4,#7
MOV DPTR,#0700H
TH3:
MOV P2,A
MOV A,#0
MOVC A,@A+DPTR
ACALL SEND_DATA
INC DPTR
DJNZ R4,TH3
MOV P2,#018H
ACALL SEND_COMMAND
MOV NUM,NUM_ADJUST
ACALL SHOWNUM
JMP button3
SHOWNUM:
MOV P2, #11000000B
ACALL SEND_COMMAND
MOV P2,#0C7H
ACALL SEND_COMMAND
MOV A,NUM
MOV B,#10
DIV AB
MOV D3,B
MOV B,#10
DIV AB
MOV D2,B
MOV D1,A
MOV A,D1
ADD A,#48
MOV P2,A
ACALL SEND_DATA
MOV A,D2
ADD A,#48
MOV P2,A
ACALL SEND_DATA
MOV A,D3
ADD A,#48
MOV P2,A
ACALL SEND_DATA
RET
SEND_COMMAND:
CLR RW
CLR RS
SETB E
ACALL DELAY
CLR E
RET
SEND_DATA:
CLR RW
SETB RS
SETB E
ACALL DELAY
CLR E
RET
ORG 0500H
DB "TEMPERATURE IS: "
ORG 0600H
DB "OVERHEATING "
ORG 0700H
DB"ADJUST "
END