Đồ án Thiết kế lịch vạn niên sử dụng on chip 89c51

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

docx19 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2737 | Lượt tải: 5download
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:

  • docxbao cao.docx
  • docxDONG HO.docx
Luận văn liên quan