0% found this document useful (0 votes)
21 views5 pages

5

The document contains code for a temperature monitoring and adjustment system. It initializes ports and variables, then enters a loop to read the temperature, display it, and allow adjustment of the setpoint via buttons. LEDs indicate temperature status and mode.

Uploaded by

Huy Nguyễn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views5 pages

5

The document contains code for a temperature monitoring and adjustment system. It initializes ports and variables, then enters a loop to read the temperature, display it, and allow adjustment of the setpoint via buttons. LEDs indicate temperature status and mode.

Uploaded by

Huy Nguyễn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

RS EQU P0.

0
RW EQU P0.1
E EQU P0.2
OUT EQU P2

READ EQU P3.0


WRITE EQU P3.1
INT EQU P3.2
CS EQU P3.3
IN EQU P1
LED_RED EQU P0.3
LED_YELLOW EQU P0.4
LED_GREEN EQU P0.5
SETT EQU P3.7
CONFIRM EQU P3.5
UP_DOWN EQU P3.4
EN1 EQU P0.6

NUM EQU 30H


NUM_ADJUST EQU 34H
D1 EQU 31H
D2 EQU 32H
D3 EQU 33H

ORG 0000H
CLR LED_RED
CLR LED_GREEN
CLR LED_YELLOW
CLR EN1

JMP SETTT
SETTT:
MOV NUM_ADJUST,#90

START: MOV P2,#0


SETB INT
MOV P2,#38H
ACALL SEND_COMMAND
MOV P2,#0EH
ACALL SEND_COMMAND
MOV P2,#01H
ACALL SEND_COMMAND
MOV P2,#80H
ACALL SEND_COMMAND

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:

JNB CONFIRM , START ;neu CONFIRM button=0,nhay den start tiep


tuc hien thi nhiet do hien tai
JB UP_DOWN,button3
JNB UP_DOWN,button4 ;neu UP_DOWN buton=0,nhay den button4

button4:

ACALL DELAY_1SEC ;doi mot khoang thoi gian


JB UP_DOWN,addition ;sau khoang thoi gian nay,neu UP_DOWN
button = 1 thi nhay den addition
JNB UP_DOWN,subtraction ;neu UP_DOWN van bang 0 thi nhay den
subtraction

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

JNB UP_DOWN,$ ;neu tiep tuc giu button UP_DOWN thi


nhay tai cho,tranh de gia tri set bi tru lien tuc
JB UP_DOWN, button3 ;nhay tro ve button tiep tuc dieu
chinh gia tri hoac confirm gia tri set
TURN_ON_LEDR:
JC TURN_ON_LEDY
CLR LED_GREEN
CLR LED_YELLOW
SETB LED_RED
JMP STARTX

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

DELAY: MOV R0,#10


HERE2: MOV R1,#255
HERE1: DJNZ R1,HERE1
DJNZ R0,HERE2
RET

DELAY_1SEC: MOV R2,#5


L2: MOV R1,#200
L1: MOV R0,#250
L0: DJNZ R0,L0
DJNZ R1,L1
DJNZ R2,L2
RET

ORG 0500H
DB "TEMPERATURE IS: "
ORG 0600H
DB "OVERHEATING "
ORG 0700H
DB"ADJUST "
END

You might also like