RxD: Chân vào nhận tín hiệu nối tiếp.
- TxD: Chân vào nhận tín hiệu nối tiếp.
- /INT0: Ngắt ngoài có số hiệu 0.
- /INT1: Ngắt ngoài có số hiệu 1.
- T0: Chân vào 0 của bộ định thời gian/ bộ đếm Timer 0.
- T1: Chân vào 1 của bộ định thời gian/ bộ đếm Timer 1.
- /WR: Ghi dữ liệu vào bộ nhớ ngoài.
- /RD: Đọc dữ liệu từ bộ nhớ ngoài.
- RST: Chân reset.
- XTAL1, XTAL2: 2 chân tạo dao động clock cho On-chip.
- /PSEN: Cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài).
- ALE(/PROG): Cho phép chốt địa chỉ.
- /EA(Vpp): Cho phép làm việc với bộ nhớ chương trình.
- Vcc, Vss: Chân cấp nguồn cho On-chip (5V).
- P0.x: Các chân của cổng 0, từ P0.0 đến P0.7
- P1.x: Các chân của cổng 1, từ P1.0 đến P1.7
- P2.x: Các chân của cổng 2, từ P2.0 đến P2.7
- P3.x: Các chân của cổng 3, từ P3.0 đến P3.7
19 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2737 | Lượt tải: 5
Bạn đang xem nội dung tài liệu Đồ án Thiết kế lịch vạn niên sử dụng on chip 89c51, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
***Mục Lục***
…. LỜI MỞ ĐẦU.
…I. GIỚI THIỆU HỌ VI ĐIỀU KHIỂN 80C51 (89C51)
1. Sơ đồ cấu trúc.
2. Sơ đồ chức năng.
3. Các thanh ghi.
4. Các thanh ngắt.
…II. TỔ CHỨC PHẦN CỨNG
Phân tích.
Sơ đồ tổ chức các phần cứng.
…III. XÂY DỰNG PHẦN MỀM
Lưu đồ thuật toán.
Code chương trình.
GIỚI THIỆU ON-CHIP 80C51
On-chip 80C51 là một bộ vi điều khiển, nó có đầy đủ chức năng của một hệ vi xử lý 8 bit, hoạt động ở tần số 12Mhz, với bộ nhớ EPROM (4Kb), RAM (128 byte) cư trú ở trong và có thể mở rộng ra ngoài, có 4 cổng vào ra 2 chiều 8 bit để giao tiếp với thiết bị ngoại vi. On-chip AT89C51 do hãng Atmel phát triển được sử dụng rất rộng rãi do có bộ nhớ ROM dạng Flash rất tiện dụng.
Các đặc điểm chính:
4 KB ROM bên trong.
128 Byte RAM ngoài.
4 Port I/O 8 bit.
Giao tiếp nối tiếp.
64 KB vùng nhớ mã ngoài.
64 KB vùng nhớ dữ liệu ngoài.
Xử lý Boolean (hoạt động trên bit đơn).
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
P0.0 (AD0)
Vcc
1
2
3
5
6
4
7
8
9
11
12
10
13
14
15
17
18
16
19
20
40
39
38
36
35
37
34
33
32
30
29
31
28
27
26
24
23
25
22
21
80C51
P0.1 (AD1)
P0.2 (AD2)
P0.4 (AD4)
P0.5 (AD5)
P0.3 (AD3)
PSEN
P0.6 (AD6)
P2.5 (A13)
P2.3 (A11)
P2.1 (A9)
P2.7 (A15)
P2.4(A12)
P2.6 (A14)
P2.0 (AB)
P2.2 (A10)
(RXD) P3.0
(TXD) P3.1
(NT0) P3.2
(NT1) P3.3
(T0) P3.4
(T1) P3.5
(WR) P3.6
(RD) P3.7
XTAL2
XTAL1
GND
P0.6 (AD6)
EA/CPP
ALE/PROG
1. Sơ đồ cấu trúc của 80C51(AT89C51)
Các chip 80C51 được đóng vỏ dạng DIP 40 chân:
RxD: Chân vào nhận tín hiệu nối tiếp.
TxD: Chân vào nhận tín hiệu nối tiếp.
/INT0: Ngắt ngoài có số hiệu 0.
/INT1: Ngắt ngoài có số hiệu 1.
T0: Chân vào 0 của bộ định thời gian/ bộ đếm Timer 0.
T1: Chân vào 1 của bộ định thời gian/ bộ đếm Timer 1.
/WR: Ghi dữ liệu vào bộ nhớ ngoài.
/RD: Đọc dữ liệu từ bộ nhớ ngoài.
RST: Chân reset.
XTAL1, XTAL2: 2 chân tạo dao động clock cho On-chip.
/PSEN: Cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài).
ALE(/PROG): Cho phép chốt địa chỉ.
/EA(Vpp): Cho phép làm việc với bộ nhớ chương trình.
Vcc, Vss: Chân cấp nguồn cho On-chip (5V).
P0.x: Các chân của cổng 0, từ P0.0 đến P0.7
P1.x: Các chân của cổng 1, từ P1.0 đến P1.7
P2.x: Các chân của cổng 2, từ P2.0 đến P2.7
P3.x: Các chân của cổng 3, từ P3.0 đến P3.7
2. Sơ đồ khối chức năng
Cấu trúc phần cứng của On-chip được thể hiện ở hình trên bao gồm:
Các thanh ghi chức năng đặc biệt(SFR).
Bộ tính toán lôgic và số học (ALU).
Cổng vào ra (I/O).
Bộ nhớ chương trình và bộ nhớ dữ liệu (EPROM, RAM).
3. Các thanh ghi
Thanh ghi tích lũy Acc: là thanh ghi 8 bit, địa chỉ E0h trong SFR. Dùng để lưu trữ các toán hạng và kết quả của phép tính.
Thanh ghi B: dùng chung với thanh ghi A khi thực hiện các phép toán nhân, chia. Đối với các lệnh khác B có thể xem như là thanh ghi đệm tạm thời. Dài 8 bit, địa chỉ F0h trong SFR.
Con trỏ ngăn xếp SP: dài 8 bit, địa chỉ 81h. Chứa địa chỉ của dữ liệu hiện đang ở đỉnh của Stack.
Con trỏ dữ liệu DPTR: dùng để truy xuất bộ nhớ chương trình ngoài, bộ nhớ dữ liệu ngoài. Thanh ghi dài 16 bit, byte thấp là DPL có địa chỉ là 82h, byte cao là DPH có địa chỉ 83h.
Đệm dữ liệu truyền nối tiếp SBUF: gồm 2 thanh ghi, 1 thanh ghi đệm phát và 1 thanh ghi đệm thu.
Thanh ghi thời gian cơ sở Timer: có 2 đôi thanh ghi TH0,TL0 (dành cho timer0),TH1,TL1(dành cho timer1). Mỗi thanh ghi dài 16 bit dùng làm bộ đếm trong khối ‘định thời/bộ đếm’ tương ứng. Địa chỉ 8Ah, 8Dh.
Thanh ghi từ trạng thái chương trình PSW: chứa thông tin về trạng thái chương trình. Dài 8 bit, địa chỉ D0h. Mỗi bit đảm nhiệm 1 chức năng cụ thể
Thanh ghi điều khiển Mode ‘định thời/bộ đếm’ TMOD: cho phép chọn và điều khiển chức năng thời gian hay bộ đếm trong on chip. Thanh này dài 8 bit và có địa chỉ 89h.
Thanh ghi điều khiển ‘định thời/bộ đếm’ TCON: trong mỗi Mode thời gian hay bộ đếm có 4 chế độ khác nhau. TCON là thanh ghi điều khiển hoạt động của nó.
Thanh ghi điều khiển cổng nối tiếp SCON: Thiết lập trạng thái và điều khiển cổng thực hiện chức năng truyền thông nối tiếp.
Thanh ghi cho phép ngắt IE.
Thanh ghi ưu tiên ngắt IP.
4. Các ngắt của 80C51
*) Cơ chế ngắt
Hệ vi xử lý on – chip có 6 loại ngắt khác nhau: 2 ngắt ngoài /INT0, /INT1, 4 ngắt trong, trong đó 2 ngắt của khối ‘Timer/Counter’, 2 ngắt phục vụ cổng truyền tin nối tiếp.
Các ngắt ngoài có thể kích hoạt bằng mức hoặc bằng sườn tùy thuộc vào giá trị của các bit IT0,IT1 trong TCON. Có 2 cờ ngắt tương ứng là IE0,IE1 cũng trong TCON. Khi một ngắt được thực hiện thì cờ tương ứng bị xóa bằng phần cứng.
2 ngắt của khối ‘timer/counter’ 0 và 1 được phát sinh bởi cờ ngắt TF0,TF1 trong TCON. 2 cờ này được thiết lập khi thanh ghi ‘Timer/Counter’ thực hiện quay vòng. Khi ngắt được thực hiện thì ngắt tương ứng bị xóa bằng phần cứng.
*) Nguyên lý điều khiển ngắt
Sau khi có cờ ngắt được thiết lập thì chương trình con phục vụ ngắt được thực hiện khi có lệnh gọi LCALL. Lệnh trên bị cấm thục hiện trong các trường hợp sau:
+ Có ngắt với mức ưu tiên cao hơn hoặc bằng đang được thực hiện
+ Chu kỳ máy hiện hành không phải là chu kỳ máy cuối cùng đang thực hiện của lệnh hiện hành.
+ Lệnh đang thực hiện là lệnh RET hoặc bất kỳ lệnh nào ghi vào thanh ghi IE hoặc IP.
Lệnh LCALL do phần cứng tạo ra sẽ chuyển nội dung của PC vào ngăn xếp(không lưu lại PSW) và nạp cho PC một địa chỉ phụ thuộc vào nguồn gây ngắt.
Lệnh RETI thông báo cho bộ VXL biết rằng thủ tục ngắt này đã kết thúc, sau đó lấy 2 bytes đầu tiên từ ngăn xếp tái nạp cho PC để trả lại quyền điều khiển cho chương trình chính.
II. TỔ CHỨC PHẦN CỨNG
1. Phân tích bài toán
- Nhiệm vụ: Sử dụng On-chip AT89C51 để thiết kế đồng hồ vạn niên hiển thị giờ, phút, giây, thứ, ngày, tháng, năm lên màn hình LCD.
- Yêu cầu:
+ Hiển thị đúng và đủ giờ, phút, giây, thứ, ngày, tháng, năm.
+ Thời gian hiển hiện phải đúng.
+ Có thể điều chỉnh và cài đặt các giá trị giờ, phút, giây, thứ, ngày, tháng, năm bất cứ lúc nào.
2. Sơ đồ tổ chức các phần cứng.
- Các linh kiện sử dụng:
+ 1 On-chip AT89C51.
+ 1 LCD 16 ký tù x 2 dßng.
+ Các linh kiện khác như: Tụ thạch anh, tụ điện, trở, phím bấm, dây nối, nguồn...
Sơ đồ nguyên lý mạch đồng hồ vạn niên:
Khi điều chỉnh, LCD sẽ hiển thị dữ liệu được điều chỉnh:
III. XÂY DỰNG PHẦN MỀM
1. Lưu đồ thuật toán
2. Code chương trình
; DONG HO THOI GIAN THUC SU DUNG ON-CHIP AT89C51
; NHOM DE TAI: TRIEU VAN LINH, TRAN THI HUYEN - TIN HOC 1 - K43
ORG 0000h
;KHAI_BAO CAC CHAN
LCD_RS EQU P0.5 ;CHAN CHON THANH GHI(LENH_DU LIEU)
LCD_RW EQU P0.6 ;CHAN CHON CHE DO(DOC_GHI )
LCD_E EQU P0.7 ;CHAN CHO PHEP
LCD EQU P2
SELECT EQU P3.0
OK EQU P3.1
UP EQU P3.2
DOWN EQU P3.3
SJMP MAIN
;NGAT_TIMER0
;TAO TRE 10ms ~ 10000 CHU KY MAY
ORG 0Bh
CLR TR0 ; (1 chu ky may)
MOV TH0,#0D8H ; (2 chu ky may)
MOV TL0,#0F7H ; (2 chu ky may)
INC R0 ; (1 chu ky may)
SETB TR0 ; (1 chu ky may)
RETI ; (1 chu ky may)
;*************HAM MAIN ***************************
ORG 030h
MAIN:
MOV P3,#00001111B ; CAC CHAN P3.0-P3.3 LA CHAN NHAN TIN HIEU
MOV R4,#1 ; KHOI TAO NGAY BANG 1
MOV R5,#1 ; KHOI TAO THANG BANG 1
MOV DPTR,#H_THU
; KHOI TAO CHO LCD
MOV LCD,#38H ; KHOI TAO LCD 2 DONG: 5x7
ACALL GDK
MOV LCD,#0CH ; BAT HIEN THI VA TAT CON TRO
ACALL GDK
ACALL DELAY
;..KHOI TAO TIMER VA NGAT
MOV IE,#10000010B ; CHO PHEP NGAT TIMER0
MOV TMOD,#00000001B ; TIMER0 HOAT DONG O CHE DO 1
MOV TH0,#0D8H
MOV TL0,#0F7H ; KHOI TAO GIA TRI CHO TIMER0
SETB TR0 ; BAT DAU DEM
; BAT DAU DEM THOI GIAN
HEAR:
LCALL D_C ; GOI HAM DIEU CHINH
START:
CJNE R0,#100,START ; TANG 1S MOI KHI R0=100
MOV R0,#0 ; DAT LAI CHO R0=0
INC R1 ; R1=BIEU THI CHO GIAY
CJNE R1,#60,HIEN_THI ; KIEM TRA VUOT NGUONG
PHUT:
MOV R1,#0 ; DAT LAI GIAY
INC R2 ; TANG PHUT
CJNE R2,#60,HIEN_THI ; KIEM TRA VUOT NGUONG
GIO:
MOV R2,#0 ; DAT LAI PHUT
INC R3 ; TANG GIO
CJNE R3,#24,HIEN_THI ; KIEM TRA NGUONG
THU:
MOV R3,#0 ; DAT LAI GIO
INC DPTR ; CHU CAI DAU CUA THU
INC DPTR ; CHU CAI THU HAI CUA THU
CLR A
MOVC A,@A+DPTR
CJNE A,#'!',NGAY
MOV DPTR,#H_THU ; KIEM TRA NGUONG
NGAY:
INC R4 ; TANG NGAY
MOV A,R7 ; R7 LUU 2 SO CUOI CUA NAM
MOV B,#4
DIV AB
MOV A,B
CJNE R5,#2,K_T_1 ;KIEM TRA CO PHAI THANG 2 KHONG?
CJNE A,#0,KO_NHUAN ;KIEM TRA CO PHAI NAM NHUAN HAY KHONG?
CJNE R4,#30,HIEN_THI ;NAM NHUAN THANG 2 CO 29 NGAY
SJMP THANG ;NHAY KHONG DIEU KIEN
KO_NHUAN:
CJNE R4,#29,HIEN_THI ;NAM KHONG NHUAN THANG 2 CO 28 NGAY
SJMP THANG
K_T_1:
CJNE R5,#4,K_T_2
SJMP THANG_30
K_T_2:
CJNE R5,#6,K_T_3
SJMP THANG_30
K_T_3:
CJNE R5,#9,K_T_4
SJMP THANG_30
K_T_4:
CJNE R5,#11,THANG_31 ; CAC THANG 4, 6, 9, 11 CO 30 NGAY
SJMP THANG_30
THANG_30:
CJNE R4,#31,HIEN_THI
SJMP THANG
THANG_31:
CJNE R4,#32,HIEN_THI
SJMP THANG
THANG:
MOV R4,#1
INC R5
CJNE R5,#13,HIEN_THI
NAM:
MOV R5,#1
INC R7 ; TANG NAM
CJNE R7,#100,HIEN_THI
MOV R7,#0
INC R6
;........................................
; HIEN THI LEN LCD
HIEN_THI:
MOV LCD,#82H ;HIEN THU, NGAY, THANG, NAM O DONG TREN LCD
ACALL GDK
;.......................................
CLR A
MOVC A,@A+DPTR
MOV LCD,A
ACALL GHT
CLR A
INC A ; HIEN THU
MOVC A,@A+DPTR
MOV LCD,A
ACALL GHT
MOV LCD,#' '
ACALL GHT
MOV A,R4
ACALL H_T ; HIEN NGAY
MOV LCD,#'-'
ACALL GHT
MOV A,R5
ACALL H_T ; HIEN THANG
MOV LCD,#'-'
ACALL GHT
MOV A,R6
ACALL H_T
MOV A,R7 ; HIEN NAM
ACALL H_T
MOV LCD,#0C4H ; HIEN GIO, PHUT, GIAY O DONG DUOI LCD
ACALL GDK
MOV A,R3
ACALL H_T ; HIEN GIO
MOV LCD,#':'
ACALL GHT
MOV A,R2
ACALL H_T ; HIEN PHUT
MOV LCD,#':'
ACALL GHT
MOV A,R1
ACALL H_T ; HIEN GIAY
LJMP HEAR
;******************* CAC CHUONG TRINH CON******************************
; HIEN THI SO NGUYEN 2 CHU SO TREN LCD
H_T:
MOV B,#10
DIV AB
ADD A,#30H
MOV LCD,A
ACALL GHT
MOV A,B
ADD A,#30H
MOV LCD,A
ACALL GHT
THOAT_0: RET
; -----------KIEM TRA CAC NUT DIEU CHINH GIO-------------------------
D_C:
JB SELECT,THOAT_0 ;KIEM TRA NUT AN "SELECT"
D_C_0:
ACALL DELAY1
ACALL DELAY1
MOV R1,#0 ;KHONG DUNG R1 DE LUU SO GIAY NUA
INC R1 ;MA LUC NAY DE LUU SO LAN AN "SELECT"
MOV LCD,#01H ;XOA MAN HINH LCD
ACALL GDK
D_C_1:
ACALL TANG ;GOI HAM DIEU CHINH TANG
ACALL GIAM ; GOI HAM DIEU CHINH GIAM
LCALL XONG ; GOI HAM TRO VE KHI NUT OK DUOC AN
;PHUT DUOC CHINH
CJNE R1,#1,D_C_2
MOV LCD,#80H
ACALL GDK
MOV LCD,#'P'
ACALL GHT
MOV LCD,#'H'
ACALL GHT
;GIO DUOC CHINH
D_C_2:
CJNE R1,#2,D_C_3
MOV LCD,#80H
ACALL GDK
MOV LCD,#'G'
ACALL GHT
MOV LCD,#'I'
ACALL GHT
;NGAY DUOC CHINH
D_C_3: CJNE R1,#3,D_C_4
MOV LCD,#80H
ACALL GDK
MOV LCD,#'N'
ACALL GHT
MOV LCD,#'G'
ACALL GHT
;THANG DUOC CHINH
D_C_4: CJNE R1,#4,D_C_5
MOV LCD,#80H
ACALL GDK
MOV LCD,#'T'
ACALL GHT
MOV LCD,#'H'
ACALL GHT
;NAM DUOC CHINH-
D_C_5: CJNE R1,#5,D_C_6
MOV LCD,#80H
ACALL GDK
MOV LCD,#'N'
ACALL GHT
MOV LCD,#'A'
ACALL GHT
;THU DUOC CHINH
D_C_6: CJNE R1,#7,D_C_7
MOV LCD,#80H
ACALL GDK
MOV LCD,#'T'
ACALL GHT
MOV LCD,#'H'
ACALL GHT
MOV LCD,#'U'
ACALL GHT
; QUAY TRO LAI MAN HINH HIEN THI VA DAT LAI R1
D_C_7: JB SELECT,D_C_1 ; KIEM TRA LAI NUT AN "SELECT"
ACALL DELAY1
ACALL DELAY1
INC R1 ; TANG R1 NEU "SELECT" DUOC AN
CJNE R1,#8,D_C_C
MOV LCD,#01H
ACALL GDK
MOV R1,#0 ; DAT LAI R1=0 NEU R1 DAT BANG 8
THOAT:
RET
D_C_C: LCALL D_C_1
; **********************HAM DIEU CHINH TANG **********************
; NEU R1=1 THI TANG PHUT
TANG:
JB UP,THOAT
CJNE R1,#1,TANG_1
ACALL DELAY1
ACALL DELAY1
INC R2
CJNE R2,#60,TANG_01
MOV R2,#0 ; DAT LAI NEU VUOT QUA NGUONG
TANG_01:MOV LCD,#0C5H
ACALL GDK
MOV A,R2
ACALL H_T
;-------------------------------------------------------------
; NEU R1=2 THI TANG GIO
TANG_1:
CJNE R1,#2,TANG_2
ACALL DELAY1
ACALL DELAY1
INC R3
CJNE R3,#24,TANG_11
MOV R3,#0 ; DAT LAI NEU VUOT QUA NGUONG
TANG_11:MOV LCD,#0C5H
ACALL GDK
MOV A,R3
ACALL H_T
;-------------------------------------------------------------
; NEU R1=3 THI TANG NGAY
TANG_2:
CJNE R1,#3,TANG_3
ACALL DELAY1
ACALL DELAY1
INC R4
CJNE R4,#32,TANG_21
MOV R4,#1 ; DAT LAI NEU VUOT QUA NGUONG
TANG_21:MOV LCD,#0C5H
ACALL GDK
MOV A,R4
ACALL H_T
;-----------------------------------------------------------
; NEU R1=4 THI TANG THANG
TANG_3:
CJNE R1,#4,TANG_4
ACALL DELAY1
ACALL DELAY1
INC R5
CJNE R5,#13,TANG_31
MOV R5,#1 ; DAT LAI NEU VUOT QUA NGUONG
TANG_31: MOV LCD,#0C5H
ACALL GDK
MOV A,R5
ACALL H_T
;--------------------------------------------------------------
; NEU R1=5 THI TANG 2 SO CUOI CUA NAM
TANG_4:
CJNE R1,#5,TANG_5
ACALL DELAY1
ACALL DELAY1
INC R7
CJNE R7,#100,TANG_41
MOV R7,#0 ; DAT LAI NEU VUOT QUA NGUONG
INC R6
TANG_41:MOV LCD,#0C5H
ACALL GDK
MOV A,R6
ACALL H_T
MOV A,R7
ACALL H_T
;--------------------------------------------------------------
; NEU R1 = 6 THI TANG 2 SO DAU CUA NAM
TANG_5:
CJNE R1,#6,TANG_6
ACALL DELAY1
ACALL DELAY1
INC R6
CJNE R6,#100,TANG_51
MOV R6,#0 ; DAT LAI NEU VUOT QUA NGUONG
TANG_51:MOV LCD,#0C5H
ACALL GDK
MOV A,R6
ACALL H_T
MOV A,R7
ACALL H_T
;--------------------------------------------------------------
; NEU R1=7 THI TANG THU
TANG_6:
CJNE R1,#7,EXIT
ACALL DELAY1
ACALL DELAY1
INC DPTR
INC DPTR
CLR A
MOVC A,@A+DPTR
CJNE A,#'!',TANG_61
MOV DPTR,#H_THU ; DAT LAI NEU VUOT QUA NGUONG
TANG_61:MOV LCD,#0C5H
ACALL GDK
CLR A
MOVC A,@A+DPTR
MOV LCD,A
ACALL GHT
CLR A
INC A
MOVC A,@A+DPTR
MOV LCD,A
ACALL GHT
MOV LCD,#' '
ACALL GHT
MOV LCD,#' '
ACALL GHT
EXIT:
RET
;***********************HAM DIEU CHINH GIAM *********************
; NEU R1=1 THI GIAM PHUT
GIAM:
JB DOWN,EXIT
CJNE R1,#1,GIAM_1
ACALL DELAY1
ACALL DELAY1
DEC R2
CJNE R2,#0,GIAM_01
MOV R2,#59 ; DAT LAI NEU VUOT QUA NGUONG
GIAM_01:MOV LCD,#0C5H
ACALL GDK
MOV A,R2
ACALL H_T
;--------------------------------------------------------------
; NEU R1=2 THI GIAM GIO
GIAM_1:
CJNE R1,#2,GIAM_2
ACALL DELAY1
ACALL DELAY1
DEC R3
CJNE R3,#0,GIAM_11
MOV R3,#23D ; DAT LAI NEU VUOT QUA NGUONG
GIAM_11:MOV LCD,#0C5H
ACALL GDK
MOV A,R3
ACALL H_T
;--------------------------------------------------------------
; NEU R1=3 THI GIAM NGAY
GIAM_2:
CJNE R1,#3,GIAM_3
ACALL DELAY1
ACALL DELAY1
DEC R4
CJNE R4,#0,GIAM_21
MOV R4,#31 ; DAT LAI NEU VUOT QUA NGUONG
GIAM_21:MOV LCD,#0C5H
ACALL GDK
MOV A,R4
ACALL H_T
;-------------------------------------------------------------
; NEU R1=4 THI GIAM THANG
GIAM_3:
CJNE R1,#4,GIAM_4
ACALL DELAY1
ACALL DELAY1
DEC R5
CJNE R5,#0,GIAM_31
MOV R5,#12 ; DAT LAI NEU VUOT QUA NGUONG
GIAM_31: MOV LCD,#0C5H
ACALL GDK
MOV A,R5
ACALL H_T
;---------------------------------------------------------
; NEU R1=5 THI GIAM 2 SO CUOI CUA NAM
GIAM_4:
CJNE R1,#5,GIAM_5
ACALL DELAY1
ACALL DELAY1
DEC R7
CJNE R7,#0,GIAM_41
MOV R7,#99 ; DAT LAI NEU VUOT QUA NGUONG
DEC R6
GIAM_41:MOV LCD,#0C5H
ACALL GDK
MOV A,R6
ACALL H_T
MOV A,R7
ACALL H_T
; -----------------------------------------------------------
; NEU R1 = 6 THI TANG 2 SO DAU CUA NAM
GIAM_5:
CJNE R1,#6,RA
ACALL DELAY1
ACALL DELAY1
DEC R6
CJNE R6,#0,GIAM_51
MOV R6,#99 ; DAT LAI NEU VUOT QUA NGUONG
GIAM_51:MOV LCD,#0C5H
ACALL GDK
MOV A,R6
ACALL H_T
MOV A,R7
ACALL H_T
RA: RET
;--------------------------------------------------------
XONG:
JB OK,RA
MOV LCD,#01H
ACALL GDK
MOV R1,#0
LJMP HEAR
;------------------ TRE 1 LAN -----------------------------
DELAY:
MOV 50H,#250
LAP: DJNZ 50H,LAP
RET
;-------------------TRE 2 LAN -----------------------------
DELAY1:
MOV 50H,#250
VONG1: MOV 51H,#250
VONG2: DJNZ 51H,VONG2
DJNZ 50H,VONG1
RET
;------------LCD NHAN TIN HIEU DIEU KHIEN ----------------
GDK:
CLR LCD_RS
CLR LCD_RW
SETB LCD_E
CLR LCD_E
ACALL DELAY
RET
;---- ---------LCD NHAN TIN HIEU HIEN THI ----------------
GHT:
SETB LCD_RS
CLR LCD_RW
SETB LCD_E
CLR LCD_E
ACALL DELAY
RET
;-----------------BANG THU TRONG TUAN --------------------
ORG 500H
H_THU:
DB "MoTuWeThFrSaSu!"
;------------------------ KET THUC -----------------------
END
Các file đính kèm theo tài liệu này:
- bao cao.docx
- DONG HO.docx