vi xử lý hệ thống điều khiển rtc

17 302 0
vi xử lý hệ thống điều khiển rtc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

KHOA CÔNG NGHỆ ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP T T À À I I L L I I Ệ Ệ U U H H Ư Ư Ớ Ớ N N G G D D Ẫ Ẫ N N T T H H Í Í N N G G H H I I Ệ Ệ M M - - T T H H Ự Ự C C H H À À N N H H S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Giáo trình thực hành vi xử lý. 2 Biên soạn: Phạm Quang Trí A. MỤC ĐÍCH: • Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng. • Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Khảo sát và sử dụng các loại RTC (đồng hồ thời gian thực) thông dụng trên thực tế. • Tìm hiểu nguyên hoạt động một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển. B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước nguyên hoạt động của các RTC thông dụng như: PCF8583, DS1307, … (Serial RTC) và DS12887 (Parallel RTC). • Thiết kế một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển. S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 1: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 3 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J146 (ADD/DATA BUS) ở khối RTC. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng). • Dùng dây bus 8 nối J65 (PORT2 / ADDRESS) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 2 nối J148 (WRITE/READ) ở khối RTC với J66 (PORT3/FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối 2 bit cao (P3.6 – RD\ và P3.7 – WR\) của J66 và J148 với nhau). • Dùng dây bus 1 nối J150 (CTRL. P-RTC) ở khối RTC với J34 (SWITCH) ở khối công tắc và gạt công tắc tương ứng ở vị trí OFF (vị trí +5V) (chú ý là ta chỉ nối chân RST\ của J150 và J34 với nhau). • Dùng dây bus 1 nối J150 (CTRL. P-RTC) ở khối RTC với chân 30 – ALE của 89C51 (SOCKET 40PIN) ở khối vi điều khiển (chú ý là ta chỉ nối chân ALE của J150 và chân 30 của 89C51). • Dùng dây bus 2 nối J490 (CS RTC) ở khối RTC với J34 (SWITCH) ở khối công tắc và gạt hai công tắc tương ứng ở vị trí ON (vị trí GND). • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J147 (POWER) ở khối RTC với nguồn +5V ở khối nguồn. WRITE READ CTRL. S-RTC CTRL. P-RTC POWER CS RTC ADD/DATA BUS PORT 0PORT 1PORT 3PORT 2 PORT 1PORT 3 40 PINS 20 PINS 3 8 3 1.2 Sơ đồ nguyên của hệ thống: 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN RTC DS12C887 HIEN THI THOI GIAN (23-59-00) TREN ;BO HIEN THI LED 7 DOAN (RTC GIAO TIEP KIEU RAM NGOAI VOI 89C51). ;*************************************************** ;KET NOI: 8 LED -> PORT1 ; SEL LED -> PORT2 ; RTC BUS -> PORT0 (CHE DO RAM NGOAI) ; RESET, CS, AS, DS, RD/WR -> VCC(40), GND(20), ALE(30), RD(17), WR(16) ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ;DINH NGHIA CAC THONG SO ;*************************************************** REGA EQU 0AH ;THANH GHI A REGB EQU 0BH ;THANH GHI B REGSEC EQU 00H ;THANH GHI GIAY REGMIN EQU 02H ;THANH GHI PHUT REGHOUR EQU 04H ;THANH GHI GIO HOUR EQU 23H ;GIA TRI DAT CHO THOI GIAN HH-MM-SS = 23-59-00 MIN EQU 59H ; SEC EQU 00H ; S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 1: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 4 Biên soạn: Phạm Quang Trí ;*************************************************** ORG 00H SJMP MAIN ORG 30H MAIN: MOV SP,#6FH ;VUNG NHO NGAN XEP 70H -> 7FH ACALL SET_RTC ;KHOI DONG RTC ACALL WRITE_HMS ;NAP THOI GIAN BAN DAU HH-MM-SS MP1: ACALL READ_HMS ;DOC GIA TRI THOI GIAN TU RTC ACALL BCD8TO7SEG_CLOCK ;GIAI MA BCD SANG MA 7 DOAN (DUNG CHO DONG HO) ACALL DISP7SEGMUL8 ;QUET HIEN THI SJMP MP1 ;*************************************************** SET_RTC: ;CTC THIET LAP CHE DO BAN DAU CHO RTC PUSH 00H PUSH ACC MOV R0,#REGA ;DIA CHI THANH GHI A MOV A,#0A0H ;OSC = ON, SQW OUT = OFF MOVX @R0,A ;GHI VAO RTC MOV R0,#REGB ;DIA CHI THANH GHI B MOV A,#02H ;24H/12H = 24H, MODE = BCD MOVX @R0,A ;GHI VAO RTC POP ACC POP 00H RET ;*************************************************** WRITE_HMS: ;CTC NAP GIA TRI THOI GIAN BAN DAU VAO RTC -> 23:59:00 (TU QUI DINH) PUSH 00H PUSH ACC MOV R0,#REGSEC ;DIA CHI THANH GHI GIAY MOV A,#SEC ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC MOV R0,#REGMIN ;DIA CHI THANH GHI PHUT MOV A,#MIN ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC MOV R0,#REGHOUR ;DIA CHI THANH GHI GI0 MOV A,#HOUR ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC POP ACC POP 00H RET ;*************************************************** READ_HMS: ;CTC DOC GIA TRI THOI GIAN TU RTC PUSH 00H PUSH ACC MOV R0,#REGSEC ;DIA CHI THANH GHI GIAY MOVX A,@R0 ;DOC TU RTC MOV R4,A ;CAT VAO VUNG NHO (R4) DUNG DE HIEN THI LEN MAN HINH LED MOV R0,#REGMIN ;DIA CHI THANH GHI PHUT MOVX A,@R0 ;DOC TU RTC MOV R5,A ;CAT VAO VUNG NHO (R5) DUNG DE HIEN THI LEN MAN HINH LED MOV R0,#REGHOUR ;DIA CHI THANH GHI GIO MOVX A,@R0 ;DOC TU RTC MOV R6,A ;CAT VAO VUNG NHO (R6) DUNG DE HIEN THI LEN MAN HINH LED POP ACC POP 00H RET ;**************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (4 SO BCD NEN) DUNG CHO HIEN THI DONG HO. ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD8TO7SEG_CLOCK. ;INPUT: R7 = DAU CACH THOI GIAN (NAP SAN TRONG CTC) ; R6 = SO BCD NEN (CHUC GIO - GIO / CHUC NGAY - NGAY). ; R5 = SO BCD NEN (CHUC PHUT - PHUT / CHUC THANG - THANG). ; R4 = SO BCD NEN (CHUC GIAY - GIAY / CHUC NAM - NAM). S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 1: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 5 Biên soạn: Phạm Quang Trí ;OUTPUT: 67H,66H = MA 7 DOAN (CHUC GIO - GIO / CHUC NGAY - NGAY). ; 65H = MA DAU CACH THOI GIAN. ; 64H,63H = MA 7 DOAN (CHUC PHUT - PHUT / CHUC THANG - THANG). ; 62H = MA DAU CACH THOI GIAN. ; 61H,60H = MA 7 DOAN (CHUC GIAY - GIAY / CHUC NAM - NAM). ;*************************************************** BCD8TO7SEG_CLOCK: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV R7,#0AAH ;VI TRI MA CUA HAI DAU CACH THOI GIAN TRONG BANG MA MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG GIAY / NAM VAO O NHO MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC GIAY / CHUC NAM VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG PHUT / THANG VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 64H,A ;CAT BCD HANG CHUC PHUT / CHUC THANG VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 66H,A ;CAT BCD HANG GIO / NGAY VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 67H,A ;CAT BCD HANG CHUC GIO / CHUC NGAY VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT DAU CACH HANG PHUT VA GIAY VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 65H,A ;CAT DAU CACH HANG GIO VA PHUT VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;SO 0 -> 9 DB 0BFH ;DAU CACH THOI GIAN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL8. ;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P1 = 7 DOAN LED - DP (MSB) -> A (LSB). S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 1: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 6 Biên soạn: Phạm Quang Trí ; P2 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL8: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#7FH ;MA QUET MOV R0,#67H ;DIA CHI VUNG MA HIEN THI DISP: MOV P1,@R0 ;XUAT MA HIEN THI MOV P2,A ;XUAT MA QUET LCALL DELAYLED MOV P2,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CTC TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END 1.4 Lưu chương trình và biên dịch chương trình. 1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có. 1.6 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động. 1.7 Nạp chương trình vào vi điều khiển. 1.8 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển. 1.9 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9. 2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3) S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 2: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) và DD-MM-YY (giá trị ban đầu là 28-02-06) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 7 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 1.2 Sơ đồ nguyên của hệ thống: • Sơ đồ nguyên của hệ thống tương tự như Bài 1. 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN RTC DS12C887 HIEN THI THOI GIAN HMS (23-59-00) VA DMY (28-02-06) ;TREN BO HIEN THI LED 7 DOAN (RTC GIAO TIEP KIEU RAM NGOAI VOI 89C51). ;*************************************************** ;KET NOI: 8 LED -> PORT1 ; SEL LED -> PORT2 ; RTC BUS -> PORT0 (CHE DO RAM NGOAI) ; RESET, CS, AS, DS, RD/WR -> VCC(40), GND(20), ALE(30), RD(17), WR(16) ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ;DINH NGHIA CAC THONG SO ;*************************************************** REGA EQU 0AH ;THANH GHI A REGB EQU 0BH ;THANH GHI B REGSEC EQU 00H ;THANH GHI GIAY REGMIN EQU 02H ;THANH GHI PHUT REGHOUR EQU 04H ;THANH GHI GIO REGDATE EQU 07H ;THANH GHI NGAY REGMONTH EQU 08H ;THANH GHI THANG REGYEAR EQU 09H ;THANH GHI NAM HOUR EQU 23H ;GIA TRI DAT CHO THOI GIAN HH-MM-SS = 23-59-00 MIN EQU 59H ; SEC EQU 00H ; DATE EQU 28H ;GIA TRI DAT CHO THOI GIAN DD-MM-YY = 28-02-06 MONTH EQU 02H ; YEAR EQU 06H ; ;*************************************************** ORG 00H SJMP MAIN ORG 30H MAIN: MOV SP,#6FH ;VUNG NHO NGAN XEP 70H -> 7FH ACALL SET_RTC ;KHOI DONG RTC ACALL WRITE_HMS ;NAP THOI GIAN BAN DAU HH-MM-SS ACALL WRITE_DMY ;NAP THOI GIAN BAN DAU DD-MM-YY MP1: ACALL DELAY_SCAN_HMS ;XU LY DOC - GIAI MA - DELAY - QUET HIEN THI GIA TRI HH-MM-SS ACALL DELAY_SCAN_DMY ;XU LY DOC - GIAI MA - DELAY - QUET HIEN THI GIA TRI DD-MM-YY SJMP MP1 ;*************************************************** SET_RTC: ;CTC THIET LAP CHE DO BAN DAU CHO RTC PUSH 00H PUSH ACC MOV R0,#REGA ;DIA CHI THANH GHI A MOV A,#0A0H ;OSC = ON, SQW OUT = OFF MOVX @R0,A ;GHI VAO RTC MOV R0,#REGB ;DIA CHI THANH GHI B MOV A,#02H ;24H/12H = 24H, MODE = BCD MOVX @R0,A ;GHI VAO RTC POP ACC POP 00H RET ;*************************************************** WRITE_HMS: ;CTC NAP GIA TRI THOI GIAN BAN DAU VAO RTC -> 23:59:00 (TU QUI DINH) PUSH 00H PUSH ACC MOV R0,#REGSEC ;DIA CHI THANH GHI GIAY MOV A,#SEC ;LAY GIA TRI DA QUI DINH S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 2: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) và DD-MM-YY (giá trị ban đầu là 28-02-06) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 8 Biên soạn: Phạm Quang Trí MOVX @R0,A ;GHI VAO RTC MOV R0,#REGMIN ;DIA CHI THANH GHI PHUT MOV A,#MIN ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC MOV R0,#REGHOUR ;DIA CHI THANH GHI GI0 MOV A,#HOUR ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC POP ACC POP 00H ;*************************************************** WRITE_DMY: ;CTC NAP GIA TRI THOI GIAN BAN DAU VAO RTC -> 28-02-06 (TU QUI DINH) PUSH 00H PUSH ACC MOV R0,#REGYEAR ;DIA CHI THANH GHI NAM MOV A,#YEAR ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC MOV R0,#REGMONTH ;DIA CHI THANH GHI THANG MOV A,#MONTH ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC MOV R0,#REGDATE ;DIA CHI THANH GHI NGAY MOV A,#DATE ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC POP ACC POP 00H RET ;*************************************************** READ_HMS: ;CTC DOC GIA TRI THOI GIAN GIO-PHUT-GIAY TU RTC PUSH 00H PUSH ACC MOV R0,#REGSEC ;DIA CHI THANH GHI GIAY MOVX A,@R0 ;DOC TU RTC MOV R4,A ;CAT VAO VUNG NHO (R4) DUNG DE HIEN THI LEN MAN HINH LED MOV R0,#REGMIN ;DIA CHI THANH GHI PHUT MOVX A,@R0 ;DOC TU RTC MOV R5,A ;CAT VAO VUNG NHO (R5) DUNG DE HIEN THI LEN MAN HINH LED MOV R0,#REGHOUR ;DIA CHI THANH GHI GIO MOVX A,@R0 ;DOC TU RTC MOV R6,A ;CAT VAO VUNG NHO (R6) DUNG DE HIEN THI LEN MAN HINH LED POP ACC POP 00H RET ;*************************************************** READ_DMY: ;CTC DOC GIA TRI THOI GIAN NGAY-THANG-NAM TU RTC PUSH 00H PUSH ACC MOV R0,#REGYEAR ;DIA CHI THANH GHI NAM MOVX A,@R0 ;DOC TU RTC MOV R4,A ;CAT VAO VUNG NHO (R4) DUNG DE HIEN THI LEN MAN HINH LED MOV R0,#REGMONTH ;DIA CHI THANH GHI THANG MOVX A,@R0 ;DOC TU RTC MOV R5,A ;CAT VAO VUNG NHO (R5) DUNG DE HIEN THI LEN MAN HINH LED MOV R0,#REGDATE ;DIA CHI THANH GHI NGAY MOVX A,@R0 ;DOC TU RTC MOV R6,A ;CAT VAO VUNG NHO (R6) DUNG DE HIEN THI LEN MAN HINH LED POP ACC POP 00H RET ;**************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (4 SO BCD NEN) DUNG CHO HIEN THI DONG HO. ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD8TO7SEG_CLOCK. ;INPUT: R7 = DAU CACH THOI GIAN (NAP SAN TRONG CTC) ; R6 = SO BCD NEN (CHUC GIO - GIO / CHUC NGAY - NGAY). ; R5 = SO BCD NEN (CHUC PHUT - PHUT / CHUC THANG - THANG). S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 2: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) và DD-MM-YY (giá trị ban đầu là 28-02-06) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 9 Biên soạn: Phạm Quang Trí ; R4 = SO BCD NEN (CHUC GIAY - GIAY / CHUC NAM - NAM). ;OUTPUT: 67H,66H = MA 7 DOAN (CHUC GIO - GIO / CHUC NGAY - NGAY). ; 65H = MA DAU CACH THOI GIAN. ; 64H,63H = MA 7 DOAN (CHUC PHUT - PHUT / CHUC THANG - THANG). ; 62H = MA DAU CACH THOI GIAN. ; 61H,60H = MA 7 DOAN (CHUC GIAY - GIAY / CHUC NAM - NAM). ;*************************************************** BCD8TO7SEG_CLOCK: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV R7,#0AAH ;VI TRI MA CUA HAI DAU CACH THOI GIAN TRONG BANG MA MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG GIAY / NAM VAO O NHO MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC GIAY / CHUC NAM VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG PHUT / THANG VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 64H,A ;CAT BCD HANG CHUC PHUT / CHUC THANG VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 66H,A ;CAT BCD HANG GIO / NGAY VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 67H,A ;CAT BCD HANG CHUC GIO / CHUC NGAY VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT DAU CACH HANG PHUT VA GIAY VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 65H,A ;CAT DAU CACH HANG GIO VA PHUT VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;SO 0 -> 9 DB 0BFH ;DAU CACH THOI GIAN ;**************************************************** DELAY_SCAN_HMS: ;CTC TAO THOI GIAN TRE >> 10S CO GOI CTC DOC - GIAI MA - QUET HIEN THI PUSH 00H MOV R0,#200 MOV TMOD,#01H LOOP_HMS: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 SCAN_HMS: ;LIEN TUC GOI CTC DOC - GIAI MA - QUET HIEN THI TRONG LUC TIMER DANG CHAY S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 2: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00) và DD-MM-YY (giá trị ban đầu là 28-02-06) trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài). Giáo trình thực hành vi xử lý. 10 Biên soạn: Phạm Quang Trí ACALL READ_HMS ;DOC GIA TRI THOI GIAN HH-MM-SS TU RTC ACALL BCD8TO7SEG_CLOCK ;GIAI MA BCD SANG MA 7 DOAN (DUNG CHO DONG HO) ACALL DISP7SEGMUL8 ;GOI CTC QUET HIEN THI JNB TF0,SCAN_HMS CLR TR0 CLR TF0 DJNZ R0,LOOP_HMS POP 00H RET ;*************************************************** DELAY_SCAN_DMY: ;CTC TAO THOI GIAN TRE >> 6S CO GOI CTC DOC - GIAI MA - QUET HIEN THI PUSH 00H MOV R0,#200 MOV TMOD,#01H LOOP_DMY: MOV TH0,#HIGH(-30000) MOV TL0,#LOW(-30000) SETB TR0 SCAN_DMY: ;LIEN TUC GOI CTC DOC - GIAI MA - QUET HIEN THI TRONG LUC TIMER DANG CHAY ACALL READ_DMY ;DOC GIA TRI THOI GIAN DD-MM-YY TU RTC ACALL BCD8TO7SEG_CLOCK ;GIAI MA BCD SANG MA 7 DOAN (DUNG CHO DONG HO) ACALL DISP7SEGMUL8 ;GOI CTC QUET HIEN THI JNB TF0,SCAN_DMY CLR TR0 CLR TF0 DJNZ R0,LOOP_DMY POP 00H RET ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL8. ;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P1 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P2 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL8: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#7FH ;MA QUET MOV R0,#67H ;DIA CHI VUNG MA HIEN THI DISP: MOV P1,@R0 ;XUAT MA HIEN THI MOV P2,A ;XUAT MA QUET LCALL DELAYLED MOV P2,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL [...]... 1.6 G n chip vi i u khi n thí nghi m vào socket tương ng trên kh i n p chip và b t ngu n cho kh i n p chip ho t ng Giáo trình th c hành vi x 16 Biên so n: Ph m Quang Trí S H TH NG I U KHI N RTC (REAL TIME CLOCK) Bài 3: Chương trình i u khi n RTC DS12C887 hi n th th i gian HH-MM-SS trên b hi n th LED 7 o n, có th i u ch nh th i gian b ng các nút nh n MODE, INC và DEC (RTC giao ti p v i vi i u khi n... Dùng dây bus 1 n i J150 (CTRL P -RTC) kh i RTC v i chân 30 – ALE c a 89C51 (SOCKET 40PIN) kh i vi i u khi n (chú ý là ta ch n i chân ALE c a J150 và chân 30 c a 89C51) • Dùng dây bus 2 n i J490 (CS RTC) kh i RTC v i J34 (SWITCH) kh i công t c và g t hai công t c tương ng v trí ON (v trí GND) • Dùng dây bus 3 n i J76 (MONOENTARY SW) kh i nút nh n v i J66 (PORT3/FUNCTION) kh i vi i u khi n (chú ý là ta ch... EQU 0BH ;THANH GHI B REGSEC EQU 00H ;THANH GHI GIAY Giáo trình th c hành vi x 12 Biên so n: Ph m Quang Trí S H TH NG I U KHI N RTC (REAL TIME CLOCK) Bài 3: Chương trình i u khi n RTC DS12C887 hi n th th i gian HH-MM-SS trên b hi n th LED 7 o n, có th i u ch nh th i gian b ng các nút nh n MODE, INC và DEC (RTC giao ti p v i vi i u khi n theo ki u RAM ngoài) REGMIN EQU 02H ;THANH GHI PHUT REGHOUR... GHI PHUT MOVX A,@R0 ;DOC TU RTC MOV R5,A ;CAT VAO VUNG NHO (R5) DUNG DE HIEN THI LEN MAN HINH LED MOV R0,#REGHOUR ;DIA CHI THANH GHI GIO MOVX A,@R0 ;DOC TU RTC MOV R6,A ;CAT VAO VUNG NHO (R6) DUNG DE HIEN THI LEN MAN HINH LED POP ACC POP 00H Giáo trình th c hành vi x 13 Biên so n: Ph m Quang Trí S H TH NG I U KHI N RTC (REAL TIME CLOCK) Bài 3: Chương trình i u khi n RTC DS12C887 hi n th th i gian... EXIT_PROCESS: ;THOAT XU LY NUT NHAN POP 50H POP 06H Giáo trình th c hành vi x 14 Biên so n: Ph m Quang Trí S H TH NG I U KHI N RTC (REAL TIME CLOCK) Bài 3: Chương trình i u khi n RTC DS12C887 hi n th th i gian HH-MM-SS trên b hi n th LED 7 o n, có th i u ch nh th i gian b ng các nút nh n MODE, INC và DEC (RTC giao ti p v i vi i u khi n theo ki u RAM ngoài) POP 07H RET ;****************************************************... ;*************************************************** Giáo trình th c hành vi x 15 Biên so n: Ph m Quang Trí S H TH NG I U KHI N RTC (REAL TIME CLOCK) Bài 3: Chương trình i u khi n RTC DS12C887 hi n th th i gian HH-MM-SS trên b hi n th LED 7 o n, có th i u ch nh th i gian b ng các nút nh n MODE, INC và DEC (RTC giao ti p v i vi i u khi n theo ki u RAM ngoài) CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9)... x 11 Biên so n: Ph m Quang Trí S H TH NG I U KHI N RTC (REAL TIME CLOCK) Bài 3: Chương trình i u khi n RTC DS12C887 hi n th th i gian HH-MM-SS trên b hi n th LED 7 o n, có th i u ch nh th i gian b ng các nút nh n MODE, INC và DEC (RTC giao ti p v i vi i u khi n theo ki u RAM ngoài) PORT 0 ADD/DATA BUS PORT 1 PORT 3 20 PINS PORT 1 PORT 3 PORT 2 POWER MOMENTARY SW 40 PINS 8 3 3 CTRL WRITE CS P -RTC. .. N p chương trình vào vi i u khi n 1.8 S d ng vi i u khi n v a n p g n vào socket tương ng trên kh i vi i u khi n 1.9 B t ngu n cho mô hình thí nghi m Quan sát k t qu ho t ng, n u k t qu ho t ng không úng yêu c u c a bài thì ph i quay l i ki m tra vi c k t n i m ch, hi u ch nh chương trình và làm l i các bư c t bư c 3 n bư c 9 2 Bài t p: • Bài 1: Hãy vi t chương trình i u khi n RTC DS12C887 hi n th... HH-MM-SS và DD-MM-YY trên b hi n th LED 7 o n (RTC giao ti p v i vi i u khi n theo ki u RAM ngoài) Có th i u ch nh th i gian và chuy n i hi n th b ng các nút nh n MODE, INC, DEC và DATE/TIME • Bài 2: Hãy vi t chương trình i u khi n RTC DS12C887 hi n th th i gian HH-MM-SS (th i gian th c) và HH-MM-SS (th i gian báo th c) trên b hi n th LED 7 o n (RTC giao ti p v i vi i u khi n theo ki u RAM ngoài) Có th i... VAO RTC MOV R0,#REGMIN ;DIA CHI THANH GHI PHUT MOV A,MIN ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC MOV R0,#REGHOUR ;DIA CHI THANH GHI GI0 MOV A,HOUR ;LAY GIA TRI DA QUI DINH MOVX @R0,A ;GHI VAO RTC POP ACC POP 00H RET ;*************************************************** READ_HMS: ;CTC DOC GIA TRI THOI GIAN TU RTC PUSH 00H PUSH ACC MOV R0,#REGSEC ;DIA CHI THANH GHI GIAY MOVX A,@R0 ;DOC TU RTC . các RTC thông dụng như: PCF8583, DS1307, … (Serial RTC) và DS12887 (Parallel RTC) . • Thiết kế một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển. S. HỆ THỐNG ĐIỀU KHIỂN RTC. hiểu nguyên lý hoạt động một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển. B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước nguyên lý hoạt động. chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động. S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài 3: Chương trình điều khiển RTC

Ngày đăng: 09/05/2014, 21:16

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan