K1 BIT P1.0 ; CHÂN A SÓNG RF
K2 BIT P1.1 ;CHÂN B SÓNG RF
K3 BIT P1.2 ;CHÂN C SÓNG RF
K4 BIT P1.3 ;CHÂN D SÓNG RF
C_HOUR EQU 23H; DIA CHI HIEN THI GIO
C_MINUTE EQU 24H ; DIA CHI HIEN THI PHUT
C_SECOND EQU 25H ;; DIA CHI HIEN THI GIAY
ON_HOUR EQU 26H ;;DIA CHI LUU GIA TRI MO HEN GIO
ON_MINUTE EQU 27H ;DIA CHI LUU GIA TRI MO HEN PHUT
OFF_HOUR EQU 28H ;DIA CHI LUU GIA TRI TAT HEN GIO
OFF_MINUTE EQU 29H ;DIA CHI LUU GIA TRI TAT HEN PHUT
;;;;;;;;;;;DINH NGIA CAC VEC TO DIA CHI NGAT ;;;;;;;;;;;;;;;;;
ORG 00H
JMP MAIN
ORG 03H ; VEC TO NGAT NGAT NGOAI 0
JMP NGAT_NGOAI_0
ORG 0BH; VECTO NGAT TIMER0
JMP NGAT_TIMER0
ORG 30H
MAIN:
MOV SP,#50H;;; DIA CHI NGAN XEP
MOV TMOD,#02H ;;; CHE DO NGAT TIME0 CHE , MODE2 CHE DO NAP LAI
MOV TL0,#-100 ;;; GTRI BAN DAU
TH0
MOV TL0,#-100 ;; GIA TRI BAN DAU TL0
CLR 00H
;; XOA BIT 00H
;;;;;;;;;;;;;;;;;
MOV 21H,#0
; GAN 21H=0
MOV 22H,#0 ;GÁN 22H=0
MOV C_HOUR,#0 ;GÁN GIÁ TRI GIO HIEN THI=0
MOV C_MINUTE,#0
;GÁN GIÁ TRI PHÚT HIEN THI=0
MOV C_SECOND,#0
;GÁN GIÁ TRI GIAY HIEN THI=0
MOV ON_HOUR,#0 ;GÁN GIÁ TRI GIO HEN MO THI=0
MOV ON_MINUTE,#0;GÁN GIÁ TRI PHUT HEN MO THI=0
MOV OFF_HOUR,#0
;GÁN GIÁ TRI GIO HEN TAT THI=0
MOV OFF_MINUTE,#0 ;GÁN GIÁ TRI PHT HEN TATTHI=0
;;;;;;;;;;;;;;;;;
LOP1:
SETB EA
;; CHO BIT EA=1 NGAT TOAN CUC
SETB EX0 ;;; EX0=1 CHO PHEP NGAT NGOAI
SETB ET0 ;;; ET0=1 CHO PHEP NGAT TIMER0
SETB TR0 ;;;TR0=1 CHO PHEP NGAT 0 BAT DAU DEM
CLR IT0
;;; IT0=0 NGAT CANH XUONG
;;;;;;;;;;;;;;;
MOV DPTR,#BANGMA ;;;; GOI DEN RAM NGOAI DE LAY BANG MA
;;;;;;;;;;;;;;;;;
LOOP_1:
MOV A,C_HOUR ;;; DUA GTRI C_HOUR VAO A
CJNE A,ON_HOUR,NEXT
;;; KIEM TRA ON_HOUR=A ; NEU = THI XUONG
PHIA DUOI;; CON A#ON_HOUR NHAY XUONG NHAN NEXT
MOV A,C_MINUTE ;DUA GTRI C_MINUTE VAO A
CJNE A,ON_MINUTE,NEXT ;NEU = THI XUONG PHIA DUOI;; CON
A#ON_MINUTE NHAY XUONG NHAN NEXT
SETB P3.5 ; NEU KTRA A=ON_HOUR,,, A=ON_MINUTE ;;;;;; THI CHO P3.5 =1
DE MO THIET BI HEN GIO
NEXT:
MOV A,C_HOUR ;;; DUA GTRI C_HOUR VAO A
CJNE A,OFF_HOUR,EXIT;;; KIEM TRA OFF_HOUR=A ; NEU = THI XUONG PHIA
DUOI;; CON A#OFF_HOUR NHAY XUONG NHAN NEXT
MOV A,C_MINUTE ;DUA GTRI C_MINUTE VAO A
CJNE A,OFF_MINUTE,EXIT ;; KIEM TRA OFF_MINUTE=A ;NEU = THI XUONG
PHIA DUOI;; CON A#OFF_MINUTE NHAY XUONG NHAN NEXT
CLR P3.5 ; NEU KTRA A=OFF_HOUR,,, A=OFF_MINUTE ;;;;;; THI CHO P3.5 =1
DE TAT THIET BI HEN GIO
EXIT:
JNB 00H,LOP1;;;; BIT 00H=0 THI NHAY DEN TEN NHAN LOP1,,, BIT 00H=1 THI
NHAY XUONG LENH PHAI DUOI
CALL HIENTHI_1 ;;; GOI CHUONG TRINH HIENTHI_1
JMP LOP1 ;; NHAY DEN TEN NHAN LOP1
RET
;;;;;; CHUONG TRINH CON HIENTHI_1;;;;;;;;;;;
HIENTHI_1:
;;;;;;;;;HIEN THI GIO;;;;;;;;;
MOV DPTR,#BANGMA
MOV R0,C_HOUR ;;; DUA GTRI C_HOUR VAO A
MOV A,R0 ;;; DUA R0 VAO A
MOV B,#10 ;;;;; CHO B=10
DIV AB
;;;A/B
MOVC A,@A+DPTR ;;;;; TU GIATRI A TA TRUY CAP DEN BANG MA
MOV P2,A ;;;;; DUA GTRI A VAO PORT 2
CLR P0.6 ;;;;; BAT LED 7SEG THU 6
CALL DELAY50US ;;;; GOI DELAY50US
SETB P0.6
;;;; ; TAT 7SEG THU 6
MOV A,B
;;; DUA GTRI THANH GHI B VAO THANH GHI A
MOVC A,@A+DPTR ;;;; TU GTRI THAN GHI A TRUY CAP TREN GTRI BANG
MA
MOV P2,A ; DUA GTRI A VAO PORT 2
CLR P0.5 ; BAT LED 7SEG THU 5
CALL DELAY50US; GOI DELAY50US
SETB P0.5 ; TAT 7SEG THU 6
;;;;;;;;;;;;;;;HIEN THI PHUT;;;;;;;;;;
MOV DPTR,#BANGMA
MOV R1,C_MINUTE ; DUA R1 VAO C_MINUTE
MOV A,R1 ;; DUA R1 VAO A
MOV B,#10 ;;;;; CHO B=10
DIV AB
;;;A/B
MOVC A,@A+DPTR ;;;;; TU GIATRI A TA TRUY CAP DRN BANG MA
MOV P2,A ; DUA GTRI A VAO PORT 2
CLR P0.4 ;; BAT LED 7SEG THU 4
CALL DELAY50US; GOI DELAY50US
SETB P0.4 ; TAT 7SEG THU 4
MOV A,B
; DUA GTRI THANH GHI B VAO THANH GHI A
MOVC A,@A+DPTR
MOV P2,A ;; DUA GTRI A VAO PORT 2
CLR P0.3
; BAT LED 7SEG THU 3
CALL DELAY50US
SETB P0.3 ; GOI DELAY50US
;;;;;;;;;;;;;;;;; HIEN THI GIAY;;;;;;;;;;;;;;;;;;
MOV DPTR,#BANGMA
MOV R2,C_SECOND
; DUA R2 VAO C_SECOND
MOV A,R2 ; DUA GRTI THANH GHI R2 VAO A
MOV B,#10 ;; CHO B=10
DIV AB
;; A/B (GTRI PHUC CHUC DUA VAO A, PHAN DUA DUA VAO B)
MOVC A,@A+DPTR
MOV P2,A ;; DUA GTRI THANH GHI A VAO P2
CLR P0.2 ;; BAT LED 7SEG LED 2
CALL DELAY50US
SETB P0.2
MOV A,B
;;; GOI DELAY50US
;; XOA LED 7SEG LED 2
;; MOV GTRI B VAO A
MOVC A,@A+DPTR
MOV P2,A;;; MOV GTRI A VAO PORT2
CLR P0.1 ; BAT LED 7SEG LED 1
CALL DELAY50US ;; GOI DELAY50US
SETB P0.1;; TAT LED 7SEG LED 1
RET
;;;;;;;;;;;;;;;;;;CHUONG TRINH CON GIO HEN MO THIET BI ;;;;;;;;;;;;;;;;;;
HIENTHI_2:
MOV R0,ON_HOUR ;;;;;;; DUA GTRI GIO ON_HOUR R0
MOV A,R0 ;;; MOV R0 VAO A
MOV B,#10 ;;; MOV B=10
DIV AB
;;; A/B
MOVC A,@A+DPTR
MOV P2,A ;;; MOV GTRI THANH GHI A VAO PORT 2
CLR P0.6 ;; BAT LED P0.6 LED GIO HANG CHUC
CALL DELAY50US ;;; GOI CHUONG DELAY50US
SETB P0.6 ;TAT LED 6
MOV A,B
;;; DUA THANH GHI B VAO THANH GHI A
MOVC A,@A+DPTR
MOV P2,A ;;; DUA GTRI A VAO PORT2
CLR P0.5 ;;;;BAT LED 7SEG 5
CALL DELAY50US
;; GOI DELAY 500US
SETB P0.5 ;; TAT LED 7SEG 5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R1,ON_MINUTE ;;;;; DUA GTRI GIO HEN VAO THANHH GHI R1
MOV A,R1 ;;; DUA GTRI THANH GHI R1 VAO THANH GHI A
MOV B,#10;;; GÁN B=10
DIV AB
;;;; A/B
MOVC A,@A+DPTR
MOV P2,A ;MOV THANH GHI A VÀO POTTR 2
CLR P0.4 ; MO LED 7SEG 4
CALL DELAY50US ;; GOI DELAY50US
SETB P0.4 ;; TAT LED 7SEG 4
MOV A,B
;DUA THANH GHI B VAO A
MOVC A,@A+DPTR
MOV P2,A ;;;DUA GTRI THANH GHI A VAO PORT 2
CLR P0.3 ;; BAT LED 7SEG THU 3
CALL DELAY50US ; GOI DELAY50US
SETB P0.3 ; TAT LED 7SEG 3
RET
HIENTHI_3:
MOV R0,OFF_HOUR
;; DUA GTRI GIO TAT VAO THANH GHI R0
MOV A,R0;;; DUA GTRI THANH GHI R0 VAO A
MOV B,#10 ;;; GÁN B=10
DIV AB ;; A/B
MOVC A,@A+DPTR
MOV P2,A ; DUA GTRI A VAO PORT2
CLR P0.6 ; MO LED 7SEG 6
CALL DELAY50US ;CALL DELAY50US
SETB P0.6 ; TAT LED 7SEG 6
MOV A,B
;; DUA GTRI B VAO THANH GHI A
MOVC A,@A+DPTR
MOV P2,A ; DUA GTRI A VAO PORT2
CLR P0.5; BAT LED 7SEG 5
CALL DELAY50US
; GOI DELAY50US
SETB P0.5;; TAT LED 7SEG 5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R1,OFF_MINUTE ;;; DUA GTRI R1 VAO OFF_MINUTE
MOV A,R1 ;; DUA GTRI R1 VAO A
MOV B,#10 ;; GÁN B=10
DIV AB ;; A/B
MOVC A,@A+DPTR
MOV P2,A ;; DUA GTRI THANH GHI A VAO THANH GHI PORT2
CLR P0.4 ;; BAT LED 4
CALL DELAY50US ;; GOI DELAY50US
SETB P0.4;;; TAT LED 4
MOV A,B;;; DUA GTRI B VAO A
MOVC A,@A+DPTR
MOV P2,A;; DUA GTRI THANH GHI A VAO B
CLR P0.3 ;;; BAT LED 7SEG THU 3
CALL DELAY50US ;; GOI DELAY50US
SETB P0.3 ;;; TAT LED 7SEG THU 3
RET
;;;;;;;;;;;;;;CHUONG TRINH NGAT TIMER0 TAO DELAY 1S ;;;;;;;;;;;;;;;
NGAT_TIMER0:
PUSH ACC ;;; DUA THANH GHI ACC VAO NGAN SAP THAN GHI SP,#50H
PUSH PSW ;;;; DUA THANH GHI PSW VAO THANH GHI SP
INC 21H
;;;; TANG GTRI TRI TRONG THANH GHI 21H LEN 1 DON VI
MOV A,21H;;; DUA GTRI 21H VAO THANH GHI A
CJNE A,#250,TERI0 ;;; KIEM TRA A=250 ,, NEU A<250 THI NHAY DEN TEN
NHAN TERI0
MOV 21H,#0;;; GÁN GTRI 21H = 0
INC 22H;; TANG GTRI TRONG THANH GHI 22H
MOV A,22H;;; DUA GTRI 22H VAO A
CJNE A,#22,TERI0 ;;;; KTRA GTRI A < 22 THI NHAY DEN TEN NHAN
TERI0;;A=22 NHAY XUONG LENH DUOI
MOV 22H,#0 ;;; GÁN GRTI 22H =0
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;TANG GIAY LEN 1 DON VI;;;;;;;
MOV A,#1 ;;;; GÁN A=1
ADD A,C_SECOND ;;;;; A+ C_SECOND (GTRI CONG DUA VAO THANH GHI A)
MOV C_SECOND,A ;;;;;;; GÁN A BANG GTRI C_SECOND
CJNE A,#60,TERI0 ;;;;;;; KIEM TRA NEU A<60 THI NHAY DEN TEN NHAN
TREI0(THOAT NGAT), NEU =60 THI NHAY XUONG LEN PHIA DUOI
MOV C_SECOND,#0;;; GÁN GIÂY=0
;;;;;;;;;;;;;;;;;;;TANG PHUT LEN 1 DON VI;;;;;;;;;;;;
MOV A,#1;;;; GÁN A=1;;
ADD A,C_MINUTE;; A+ C_MINUTE (GTRI CONG DUA VAO THANH GHI A)
MOV C_MINUTE,A;;;; DUA GTRI A VAO C_MINUTE
CJNE A,#60,TERI0 ;;;; KIEMTRA NEU A<60 THI NHAY DEN TEN NHAN
TERI0(THOAT NGAT TIMER0),, A=60 THI NHAY XUONG DUOI
MOV C_MINUTE,#0;;; GÁN PHÚT =0
;;;;;;;;TANG GIO LEN 1 DON VI;;;;;;;;;;;;;;;;;
MOV A,#1;;; GÁN A=1
ADD A,C_HOUR ;;; A+ C_HOUR(KET QUA DUA VAO THANH GHI A)
MOV C_HOUR,A ;;;; GAN A VAO GIO
CJNE A,#24,TERI0 ;;; KIEM TRA DKIEN A<24 THI NHAY DEN TEN NHAN
TERI0,, A=24 THI NHAY XUONG DUOI
MOV C_HOUR,#0 ;; GÁN GIO=0
;;;;;;;;;;;THOÁT NGAT TIMER0
TERI0:
POP PSW;;; LAY KET QUÁ CUA THANH GHI PSW TU NGAN SEP
POP ACC;;; LAY KET QUÁ CUA THANH GHI ACC TU NGAN SEP
RETI
;;;;;;;CHUONG TRINH NGAT NGOAI DE DIEU CHINH GIO MO VA HAN GIO MO
TAT ;;;;;;;;;;;;;;
NGAT_NGOAI_0:
PUSH ACC
PUSH PSW
CLR ET0
;;; ET0=0; XOA GAT TIMER0
CLR TR0
;; NGUNG DEM TRIMER
CLR EX0
;;; XOA NGAT NGOAI 0
KTRA_1:
JNB K1,KTRA1_1;;;; KIEM TRA NEU K1=0 THI NHAY DEN KTRA1_1, NGUOC
LAI NEU K1=1 THUC HIEN CHUONG TRINH
KTRA1_1:
;CALL HIENTHI_1
JB K1,KTRA1_1
;;;;;;;; CHUONG TRINH TANG PHÚT HIEN THI;;;;;;
KT_1:
CALL HIENTHI_1 ;;;; GOI HIENTHI1
JNB K2,KTRA_2 ;;; K2=0 NHAY XUONG KTRA_2,, K2=1 THI TANG GTRI PHUT
LEN 1 DON VI
KTR1:
CALL HIENTHI_1 ;;; GOI HIENTHI_1
JB K2,KTR1 ;; NEU K2=1 DOI KHI K2=0 DE TANG PHUT LEN 1 DON VI
MOV R0,C_MINUTE;;; DUA GTRI PHÚT HIEN THI VAO THANH GHI R0
MOV A,#1;;; GÁN A=1
ADD A,R0 ;;;A+R0(KET QUA LUU VAO A)
MOV C_MINUTE,A
;;; DUA GTRI A VAO PHUT HIEN THI
CJNE A,#60,KTRA_1;; KTRA NEU PHÚT CHUA BANG 60 THI NEU K2=1 THÌ
TIEP TUC TANG CHO DEN 60;
MOV C_MINUTE,#0;; A=60 ,, GÁN PHUT =0
;;;;; KTRA NUT NHAN TANG GTRI GIO;;;;;;;;;;
KTRA_2:
CALL HIENTHI_1 ;;;;; GOI HIEN THI_1
JNB K3,KTRA_3;;;;;; KIEM TR K3=0 THI NHAY XUONG KIEM TRA PHIAM
KHÁC,, NEU K3=1 THI THUC HIEN TANG GIO L?N 1 DVI
KTRA1_2:
CALL HIENTHI_1 ;;;;;GOI HIEN THI 1
JB K3,KTRA1_2 ;;;; NEU K3 =1 VE 0 THI CHO PHAP HIEN THI LEN LED 7DAON,,
CON NGC LAI THI
MOV R0,C_HOUR;;;;; DUA GTRI GIO VAO R0
MOV A,#1
;;; GÁN A=1;
ADD A,R0 ;;; A+R0(KETQUA LUU VAO A)
MOV C_HOUR,A ;;;; GÁN GTRI CUA A VAO C__HOUR
CJNE A,#24,KTRA_1 ;;;; KIEM TRA NEU GTRI GIO CHUA DC 24 THI NEU CO
NUT NHAN K3 THI TIEP TUC TANG GIO
MOV C_HOUR,#0;;; GÁN GTRI GIO=0
;;;;;;;;;;;; K1=1 THI SE GIAM GTRI GIO VA PHUT,, KHI NHAN K2 HOAC K3;;;;;;;;;
KTRA_3:
JNB K1,KTRA_1;;;;;;;;;;;;;K1=0 THI NHAY KIEM TRA NUT NHAN KHAC
KTRA1_3:
JB K1,KTRA1_3;;; K1=1 THÌ DOI K1 CHUYEN TU 1 XUONG 0 DE CHUYEN
SANG CHE DO KHAC
KTRA1_4:
CALL HIENTHI_1;;; GOI HIENTHI_1
JNB K2,KTRA_4 ;;;; KIEMTRA K2;;; NEU K2=0 THI KIEM TRA NUT NHAN
KHAC
;;;;;;;;;;;;GIAM PHUT HIEN THI 1 DON VI;;;;;;;;;;;;;;;
KTRA1_5:
CALL HIENTHI_1 ;; GOI HIEN THI 1
JB K2,KTRA1_5 ;;;;; NEU K2=1 NHUNG CHUA CHUYEN XUONG 0 THI DUNG
DOI,,, K2 =1 CHUYEN XUONG K2 BANG 0 GIAM PHUT HIEN THI DI 1 DON VI
MOV A,C_MINUTE ;;;; GÁN GTRI PHUT HIEN THI VAO A
SUBB A,#1 ;;; A-1(KET QUA LUU VAO A;
MOV C_MINUTE,A ;;; GÁN GTRI A VAO GTRI HIEN THI PHUT
CJNE A,#-1,KTRA1_4
;;; KTRA NEU CHUA BANG -1 THI NEU CO K2 TAC
DONG THI GIAM A CHO DEN =-1
MOV C_MINUTE,#59; GÁN PHUT HIEN THI =59
;;;;;;;;;;;;KIEM TRA K3 DE GIAM GTRAI GIO HIEN THI;;;;;;;;;;;
KTRA_4:
CALL HIENTHI_1;;;;;;;;; GOI HIEN THI 1
JNB K3,KTRA_5 ;;;; KIEM TRA K3 NEU K3 =0 THI NHAY KIEM TRA CAC NUT
AN KHAC
KTRA1_6:
CALL HIENTHI_1 ;GOI HIENTHI1
JB K3,KTRA1_6;;; KIEM TRA K3 NEU CHUA CHUYEN TU K3=1 XUONG 0 THI
DOI,, NEU CHUYEN XUONG 0 THI GIAM GIO DI 1 DON VI
MOV A,C_HOUR;; GÁN G_HOUR VAO A
SUBB A,#1 ;;;; A-1(GIAM GIO DI 1 DON VI)
MOV C_HOUR,A ; GAN A VAO GIO HIEN THI
CJNE A,#-1,KTRA1_4;; KIEM TRA NEU GIO HIEN THI GIAM CHUA BANG -1
THI TIAP TUC GIAM =-1 KHI CO NUT AN K3
MOV C_HOUR,#23;;; GÁN GIO HIEN THI=0
;;;;;;;;;;; THOAT CHUONG TRIN CAI DAT
KTRA_5:
JNB K4, KTRA_6;;;; KIEM TRA K4 =1 THI THOAT CHUONG TRINH CAI DAT
KTRA1_7:
JB K4,KTRA1_7
JMP THOAT
;;;;;;;;;;;;;;CAI DAT TANG GIO HEN MO THIET BI;;;;;;;;;;;;;;;
KTRA_6:
JNB K1,KTRA1_4 ;;; KIEM TRA K1=1 THI THUC HIEN TANG GIO-PHUT HEN
GIO
KTRA1_8:
JB K1,KTRA1_8
;CALL HIENTHI_2
JNB K2,KTRA_7;;; KIEM TRA K2=1 THI TANG PHUT LEN 1 DON VI
KTRA1_9:
CALL HIENTHI_2
JB K2,KTRA1_9 ;;;; DOI K2 DE CHUYEN TU 1 SANG 0
MOV A,ON_MINUTE
;; GAN GTRI PHHUT HEN MO VAO A
ADD A,#1 ;;;; A+1(TANG GTRI PHUT LEN 1 DVI)
MOV ON_MINUTE,A;;; GÁN GTRI A VAO ON_MINUTE
CJNE A,#60,KTRA1_8 ;;;; KIEM TRA NEU GTRI PHUT HEN MO < 60 THI KHI CO
NUT NHAN K2 THI TANG CHO DEN 60
MOV ON_MINUTE,#0;;; MOV GTRI PHUT HEN MO =0
KTRA_7:
CALL HIENTHI_2;;; GOI CHUONG TRINH CON HIEN THI MO THIET BI
JNB K3,KTRA_9;;;; KTRA K3,,, NEU K3 =0 THI KHIEM TRA NUT NHAN KHAC
KTRA1_10:
CALL HIENTHI_2;;; GOI HIEN THI 2
JB K3,KTRA1_10 ;;; DOI K3 CHUYEN TRANG THAI
CALL HIENTHI_2 ;;;; GOI HIEN THI2
MOV A,ON_HOUR;;; GAN GIATRI GIO HEN MO VAO THANH GHI A
ADD A,#1 ;;; TANG GTRI THANH GHI A LEN 1 DO VI
MOV ON_HOUR,A ;;; GAN GTRI THANH GHI A VAO GIO HEN MO
CJNE A,#24H,KTRA1_8;;;; KIEM TRA GIO HEN NEU CHUA DC 24 THI NEU CO
NUT NHAN K3 THI TIAP TUC TANG DEN 24
MOV ON_HOUR,#0;;;; DUA GIATRI GIO HEN MO = 0
;;;;;;; GIAM GIO -PHUT MO THIET BI ;;;;;;;;
KTRA_9:
JNB K1,KTRA1_8 ;;;;KIEM TRA K1=1 THI CHO PHEP TANG GIO
KTRA1_11:
JB K1,KTRA1_11
KTRA1_12:
;CALL HIENTHI_2
JNB K2,KTRA_10;;;; K2=0 THI KIEM TRA NUT NHAN KHAC
KTRA1_13:
CALL HIENTHI_2 ;;; GOI HIEN THI 2
JB K2,KTRA1_13 ;;;DOI CHUYEN TRANG THAI K2
MOV A,ON_MINUTE;;; GAN GTRI GIO MO
SUBB A,#1 ;;; GIAM THANH GHI A 1 DVI
MOV ON_MINUTE,A
;;; GAN GTRI A VAO PHUT HEN MO
CJNE A,#-1,KTRA1_12
CO K2=1 CHO DEN -1
;;;; KTRA NEU A CHUA =-1 THI TIEP TUC GIAM KHI
MOV ON_MINUTE,#59 ; GAN GTRI PHUT HEN MO =59
KTRA_10:
CALL HIENTHI_2
JNB K3,KTRA_11 ;;;;;K3=0 THI NHAY KIEM TRA NUT KHAC
KTRA1_14:
CALL HIENTHI_2;;; GOI HIEN THI2
JB K3,KTRA1_14 ;;;; DOI CHUYEN TRANG THAI K3 DE GIAM A DI 1 DON VI
MOV A,ON_HOUR ;;; GÁN GTRI GIO HEN MO VAO A
SUBB A,#1;; GIAM A DI 1 DVI
MOV ON_HOUR,A ;;; GAN GTRI A VAO GIO HEN MO
CJNE A,#-1,KTRA1_12;;;; KIEM TRA NEU A CHUA BANG -1 THI GIAM CHO
BANG -1
MOV ON_HOUR,#23 ;;;; DUA GIO HEN MO =23
;;;;;;;;;;;; K1=1 THI SE CHUYEN SANG HEN GIO TAT THIET BI;;;;;;;;;;;;;;;;;;;;;;
KTRA_11:
JNB K1,KTRA1_12
KTRA1_15:
JB K1,KTRA1_15
KTRA1_16:
CALL HIENTHI_3
JNB K2,KTRA_12
KTRA1_17:
CALL HIENTHI_3
JB K2,KTRA1_17
MOV A,OFF_MINUTE
ADD A,#1
MOV OFF_MINUTE,A
CJNE A,#60,KTRA1_16
MOV OFF_MINUTE,#0
KTRA_12:
CALL HIENTHI_3
JNB K3,KTRA_13
KTRA1_18:
CALL HIENTHI_3
JB K3,KTRA1_18
MOV A,OFF_HOUR
ADD A,#1
MOV OFF_HOUR,A
CJNE A,#24,KTRA1_16
MOV OFF_HOUR,#0
KTRA_13:
JNB K1,KTRA1_16
KTRA1_19:
JB K1,KTRA1_19
KTRA1_20:
CALL HIENTHI_3
JNB K2,KTRA_14
KTRA1_21:
CALL HIENTHI_3
JB K2,KTRA1_21
MOV A,OFF_MINUTE
SUBB A,#1
MOV OFF_MINUTE,A
CJNE A,#0,KTRA1_20
MOV OFF_MINUTE,#59
KTRA_14:
CALL HIENTHI_3
JNB K3,KTRA_15
KTRA1_22:
CALL HIENTHI_3
JB K3,KTRA1_22
MOV A,OFF_HOUR
SUBB A,#1
MOV OFF_HOUR,A
CJNE A,#-1,KTRA1_20
MOV OFF_HOUR,#23
KTRA_15:
JNB K1,KTRA1_20
KTRA1_23:
JB K1,KTRA1_23
JMP KT_1
THOAT:
SETB 00H
SETB TR0
SETB EX0
SETB ET0
POP PSW
POP ACC
RETI
DELAY50US:
MOV R7,#2
L1:
MOV R6,#0FFH
L2:
DJNZ R6,L2
DJNZ R7,L1
RET
BANGMA:
db 0c0h, 0f9h, 0a4h, 0b0h, 99h, 92h, 82h, 0f8h, 80h
db 90h
END
Main
MOV A,C_MINUTE
MOV SP,#50H
MOV TMOD,#02H
MOV TL0,# -100
MOV TH0,# -200
S
A=ON_MINUTE
Ð
CLR 00H
SETB P3.5
MOV 21H,#0
MOV 22H,#0
MOV C_HOUR,#0
MOV C_MINUTE,#0
MOV C_SECOND,#0
MOV ON_HOUR,#0
MOV ON_MINUTE,#0
MOV OFF_HOUR,#0
MOV OFF_MINUTE,#0
MOV A,C_HOUR
SETB EA
SETB EX0
SETB ET0
SETB TR0
CLR IT0
A=OFF_HOUR
S
00H = 0
Ð
Ð
MOV A,C _MINUTE
MOV DPTR , #BANGMA
CALL HIENTHI_1
MOV A, C_HOUR
A=OFF_MINUTE
A=ON_HOUR
Ð
S
RET
Ð
CLR P3.5
S
- Xem thêm -