Đề bài :Có 3 phím bấm
1: Run(Chạy ở chế độ bình thường)
2: Nháy(Chạy ở chế độ giờ thấp điểm)
3: Stop
Giản đồ thời gian như sau
Mạch Sơ đồ mạch như sau
Toàn bọ chương trình TẠI ĐÂY
Lưu ý: Dùng các phiên bản Proteus lớn hơn bản 6.9 để mở mạch
CODE chương trình
Code:
;=======================================================
; BAM PHIM TANG, GIAM, RESET VA HIEN THI
;=======================================================
ORG 0000H
LJMP INIT
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 0023H
RETI
ORG 002BH
LJMP INT_T2
;=============================
;KHAI BAO BIEN
;=============================
NUM EQU 50H
D0 EQU 51H
D1 EQU 52H
TIC EQU 53H
SEC EQU 54H
PRUN EQU P1.0
PNN EQU P1.1
PSTOP EQU P1.2
MODE1F EQU 00H
MODE2F EQU 01H
RUNF EQU 02H
NNF EQU 03H
STOP EQU 04H
;=============================
;KET THUC KHAI BAO BIEN
;=============================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;=============================
; KHOI TAO CHUONG TRINH
;=============================
ORG 100
INIT:
CLR EA
MOV SP,#2FH
MOV T2CON,#04H
MOV RCAP2H,#0B1H
MOV RCAP2L,#0E0H
MOV NUM,#50
MOV TIC,#0
MOV SEC,#0
MOV MODE1F,#0
MOV MODE2F,#0
MOV RUNF,#1
MOV P3,#0
MOV R7,#0
SETB IE.5
SETB EA
HERE:
SJMP HERE
;===============================
; KET THUC CHUONG TRINH
;===============================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===============================
;SUBROUTINE TSEC
; CHUONG TRINH TINH THOI GIAN
;INPUT: NONE
;OUTPUT: NONE
;===============================
TSEC:
JNB RUNF,KHONG
SJMP CHAY
CHAY:
JB STOP,KHONG
INC TIC
MOV A,TIC
CJNE A,#50,KTSEC1
DEC SEC
MOV TIC,#0
MOV A,SEC
CJNE A,#0FFH,KTEC1
MOV SEC,#29
KHONG:
MOV P0,#0C0H
SJMP KTSEC1
KTSEC1:
MOV NUM,SEC
RET
;===============================
; KET THUC CHUONG TRINH
;===============================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===============================
;SUBROUTINE SLMODE
; CHUONG TRINH CHON MODE
;INPUT: NONE
;OUTPUT: NONE
;===============================
SLMODE:
MOV P1,#00
SETB RUNF
CLR NNF
CLR STOP
MOV SEC,#0
SJMP KTSLMOD
KTNN:
SETB NNF
CLR RUNF
CLR STOP
MOV TIC,#0
SJMP KTSLMOD
KTSTOP:
JNB PSTOP,KTSLMOD
CLR RUNF
CLR NNF
SETB STOP
MOV P3,#0
KTSLMOD:
RET
;===============================
; KET THUC CHUONG TRINH
;===============================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===============================
;SUBROUTINE MODE1
; CHUONG TRINH CHAY CHE DO 1
;INPUT: NONE
;OUTPUT: NONE
;===============================
MODE1:
JNB RUNF,KTMODE1
MOV A,SEC
CJNE A,#29,SEC17
MOV P3,#21H
SEC17:
CJNE A,#17,SEC14
MOV P3,#22H
SEC14:
CJNE A,#14,SEC2
MOV P3,#0CH
SEC2:
CJNE A,#2,KTMODE1
MOV P3,#14H
KTMODE1:
RET
;=================================
; KET THUC CHUYEN TRINH CON
;=================================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===============================
;SUBROUTINE MODE2
; CHUONG TRINH CHAY CHE DO 2
;INPUT: NONE
;OUTPUT: NONE
;===============================
MODE2:
JNB NNF,KTMODE2
JB P1.0,LAM
CPL MODE2F
MOV A,MODE2F
CJNE A,#1,LAM
MOV P3,#0
SJMP KTMODE2
LAM:
MOV A,TIC
CJNE A,#0,V2
MOV P3,#12H
V2:
CJNE A,#26,KTMODE2
MOV P3,#0
KTMODE2:
RET
;=================================
; KET THUC CHUYEN TRINH CON
;=================================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===============================
;SUBROUTINE HEXTOBCD
; HEX TO BCD
;INPUT: NUM
;OUTPUT: D1,D0
;===============================
HEXTOBCD:
MOV A,NUM
MOV B,#10
DIV AB
MOV D0,B
MOV D1,A
RET
;=================================
; KET THUC CHUYEN TRINH CON
;=================================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;==================================
;INT INT_T2
; CHUONG TRINH HIEN THI SO LAN AN PHIM VA HIEN THI
;INPUT: NONE
;OUTPUT: NONE
;===================================
INT_T2:
CLR TF2
LCALL HEXTOBCD
LCALL BCDTO7T
LCALL DISPLAY
LCALL TSEC
LCALL SLMODE
LCALL MODE1
LCALL MODE2
KET:
RETI
;===================================
; KET THUC CHUONG TRINH
;===================================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===================================
;SUBROUTNI BCDTO7T
;INPUT: NONE
;OUTPUT: NONE
;===================================
BCDTO7T:
MOV DPTR,#SEGMENT
MOV A,D0
MOVC A,@A DPTR
MOV D0,A
MOV A,D1
MOVC A,@A DPTR
MOV D1,A
RET
;===================================
; KET THUC CHUONG TRINH
;===================================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===================================
;SUBROUTINE DISPLAY
; HIEN THI LEN LED 7 THANH
;INPUT:
;OUTPUT:
;===================================
DISPLAY:
CJNE R7,#0,LED2
MOV P2,#1B
MOV P0,D0
SJMP XLR7
LED2:
MOV P2,#2
MOV P0,D1
XLR7:
INC R7
CJNE R7,#2,KT
MOV R7,#00H
KT:
RET
;===================================
; KET THUC CHUONG TRINH
;===================================
;************************************************
; NGAN CACH GIUA CAC CHUONG TRINH
;************************************************
;===================================
; MA 7 THANH
;===================================
SEGMENT:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;SO THAP PHAN 0 1 2 3 4 5 6 7 8 9
;====================================
; KET THUC CHUONG TRINH
;====================================P