ĐỒNG HỒ THỜI GIAN THỰC SỬ DỤNG RTC DS 12887 KẾT NỐI VI ĐIỀU KHIỂN AT89S52

27 479 1
ĐỒNG HỒ THỜI GIAN THỰC SỬ DỤNG RTC DS 12887  KẾT NỐI VI ĐIỀU KHIỂN AT89S52

Đ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

Niên Luận – Điện Tử TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ  NIÊN LUẬN – ĐIỆN TỬ (CT374) ĐỒNG HỒ THỜI GIAN THỰC SỬ DỤNG RTC DS 12887 KẾT NỐI VI ĐIỀU KHIỂN AT89S52 Giáo Viên Hướng Dẫn: Sinh viên thực hiện: TRẦN NHỰT KHẢI HOÀN LÊ ĐẠI TRUNG MSSV: 1063770 LỚP: VIỄN THÔNG 2 NGUYỄN KHẮC BẢO MSSV: 1063780 LỚP: ĐIỀU KHIỂN TỰ ĐỘNG Cần Thơ 5/2009 Niên Luận – Điện Tử LỜI NÓI ĐẦU Đồng hồ số thiết bị phổ biến thị trường điện tử Các sinh viên lành nghề sản xuất đồng hồ cách dễ dàng Tuy nhiên sinh viên bước vào nghề việc sản xuất hồ đơn giản chuyện dễ dàng Nó địi hỏi người thực phải có vốn kiến thức Kỹ Thuật Vi Xử Lí , Vi Điều Khiển, Mạch Số, Mạch Tương Tự… Chúng em nhận thấy đề tài không bổ sung kiến thức khà nhiều mặt Nên học phần Niên Luận – Điện Tử chúng em định chọn đề tài để thực CẦN THƠ, 30-04-2009 Lê Đại Trung – Nguyễn Khắc Bảo Niên Luận – Điện Tử MỤC LỤC PHẦN : MÔ TẢ ĐỀ TÀI PHẦN : GIỚI THIỆU IC RTC-DS12887 PHẦN : KẾT NỐI RTC VÀ VI ĐIỀU KHIỂN PHẦN : NGUYÊN TẮC HOẠT ĐỘNG 11 1.LƯU ĐỒ CHƯƠNG TRÌNH CHÍNH 12 2.LƯU ĐỒ CHƯƠNG TRÌNH ĐIỀU CHỈNH 13 3.LƯU ĐỒ SET PHÚT VÀ ĐIỀU CHỈNH 14 LƯU ĐỒ SET PHÚT VÀ ĐIỀU CHỈNH 15 GIẢI THÍCH HOẠT ĐỘNG CỦA LƯU ĐỒ 16 PHẦN : KẾT QUẢ - KIẾN NGHỊ 18 PHẦN : TÀI LIỆU THAM KHẢO 19 PHẦN :SƠ ĐỒ PHẦN CỨNG VÀ CHƯƠNG TRÌNH 19 1.SƠ ĐỒ PHẦN CỨNG 20 2.CHƯƠNG TRÌNH 21 Niên Luận – Điện Tử Phần : MÔ TẢ ĐỀ TÀI Tên đề tài : Thiết Kế Đồng Hồ Số Chức : Hiển thị giờ, phút, giây led đoạn HIển thị giờ, phút, giây hẹn led đoạn Có thể điều chỉnh phút giây button Phương án giải : Sử dụng vi điều khiển 89c52 Chip thời gian thực Ds12887 để điều chỉnh tính tốn ngày sau dùng Led đoạn để hiển thị Niên Luận – Điện Tử Phần : GIỚI THIỆU IC RTC-DS12887 I SƠ LƯỢC VỀ RTC DS12887 Ds12C887 IC thời gian thực hảng Dallas sản xuất với vài đặc tính sơ lược sau: Chứa giá trị thời gian giây, phút, giờ, thứ, ngày, tháng, năm với thời gian hoạt động đến năm 2100 - Bộ đếm hoạt động với thời gian 10 năm khơng có nguồn điện ngồi cung cấp Hình : RTC-DS12887 - Các hệ thống bên bao gồm hệ thống thời gian thực, nguồn nội Lithium tạo dao động với chia tần số đính kèm cho phép lập trình Ngồi cịn hỗ trợ ngắt phục vụ cho q trình xử lí thơng tin hệ thống bên - Cho phép hai dạng liệu BCD Binary - Cho phép chế độ hiển thị 24 12 (với AM PM) - Cho phép lựa chọn chế độ giao tiếp BUS Intel Motorola Bộ nhớ RAM 128 byte Trong gồm 15 byte chứa giá trị thời gian điều khiển, 113 byte lại phép tùy ý sử dụng - Các cờ ngắt hỗ trợ bao gồm: ngắt toàn cục, ngẳt báo giờ, ngắt báo hiệu cho phép/ không cho phép truy xuất giá trị thời gian thực - II.CẤU TẠO RTC DS12887 1.Sơ đồ chân : DS12C887 gồm 24 chia làm nhóm - Nhóm chân chân sau: DATA: bao gồm Niên Luận – Điện Tử chân AD7:AD0 Đây chân mà DS12C887 dùng để đưa liệu hay nhận liệu vào - Nhóm chân điều khiển giao tiếp BUS: bao gồm chân MOT, AS, DS, R/W với chức phụ thuộc vào việc lựa chọn chế độ giao tiếp BUS theo chuẩn Intel (MOT =1) hay Motorola (MOT = 0) Nhóm chân chức năng: bao gồm chân RESET (dùng để reset IC), IRQ (chân tác dộng ngắt DS12C887) chân SQW (chân tạo sóng vng ngõ ra) - Ngồi cịn có chân dùng để cấp nguồn cho IC chân không cần thiết (NC) - Các Thanh Ghi Chức Năng: Thanh ghi Seconds Seconds Alarm Minutes Minutes Alarm Hours Hours Alarm Day of the Week Date of the Month Month Year Register A Register B Register C Register D Địa 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh Chức Lưu trữ giá trị thời gian báo giời Lưu trữ giá trị ngày tháng Nhóm ghi điều khiển Thanh ghi A : Niên Luận – Điện Tử Bit (UIP): Chỉ thị trạng thái liệu ghi chứa giá trị thời gian thực Bit đọc + UIP = 1: liệu chưa sẵn sàng để truy xuất + UIP = 0: liệu sẵn sàng cho trình truy xuất Bit – Bit ( DV2 DV1 DV0) : Lựa chọn trạng thái hoạt động IC Chỉ có giá trị 010 cho phép IC hoạt động theo chế độ thời gian thực Bit – Bit : Xác định tỉ số chia tần số tạo dao động chân SQW Bảng : Tần số dao động chân SQW Thanh ghi B : Bit (SET) : SET = 0: cho phép cập nhật thời gian vào ghi SET = 1: không cập nhật thời gian vào ghi Bit (PIE) : Cho phép tạo ngắt định kì chân IRQ PIE =1: cho phép ngược lại Niên Luận – Điện Tử Bit 5(AIE): Cho phép ngắt báo chân IRQ AIE = : cho phép ngược lại Bit (UIE) : Cho phép tạo ngắt UIE = : cho phép ngược lại Bit (SQWE) : SQWE = : tạo sóng vng chân SQW SQWE = : disenable chân SQW Bit (DM): Chọn kiểu liệu DM = : Binary DM = : BCD Bit : Chọn kiêu hiển thị 24/12 = : dạng 24 24/12 = : dạng 12 Thanh ghi C and D ghi đọc Ngoại trừ ghi “REGISTER A, B, C, D” dùng để điều khiển, ghi lại đựoc dùng để truy xuất liệu Niên Luận – Điện Tử Phần : KẾT NỐI RTC VÀ VI ĐIỀU KHIỂN Kết Nối Vi Điều Khiển Và Ds12887 + Từ AD0 > AD7 kết nối với P0 + Chân ALE kết nối với chân AS + Chân p3.6 kết nối với chân R/W + Chân p3.7 kết nối với chân DS + Chân Vss, CS, MOT nối mass + Chân RST (Dalass) nối nguồn + Chân SQW IRQ bỏ trống Hình : Sơ đồ kết nối vi điều khiển Ds12887 Truy xuất liệu từ RTC Niên Luận – Điện Tử + Khởi tạo Dalass: MOV MOV MOVX R0,#0BH;DIA CHI THANH GHI B A,#02H;CHON SO HIEN THI LA BCD VA HIEN THI 24 GIO 0000 0010 @R0,A;KET QUA NOI DUNG THANH GHI B =02H MOV MOV MOVX R0,#0AH A,#20H @R0,A ;DIA CHI THANH GHI A ;LAM CHO BO DAO DONG HOAT DONG ;KQ NOI DUNG THANH GHI A = 0AH + Lấy giờ, phút, giây: MOV MOVX MOV R0,#00H ;Đọc giây A,@R0 ;Chuyển giây vào ghi A 30H,A ; Đưa giây vào nhớ có địa 30H MOV MOVX MOV R0,#02H ;Đọc phút A,@R0 31H,A ;Đưa phút vào ô nhớ có địa 31H MOV MOVX MOV R0,#04H ; Đọc A,@R0 32H,A ;Đưa vào ô nhớ có địa 32H 10 Niên Luận – Điện Tử Lưu đồ chương trình điều chỉnh R2 = Mode Sai Mode = Đúng Set Phut Đúng Set Giờ Đúng Nạp RTC Sai Mode = Sai Mode = 13 Niên Luận – Điện Tử Lưu đồ Set phút điều chỉnh Set Phút Up = Sai Đúng Tăng phút Hiển Thị Sai Bmode = Đúng R2 = R2+1 Thoát 14 Niên Luận – Điện Tử Lưu đồ Set phút điều chỉnh Set gio Up = Sai Đúng Tăng Hiển Thị Sai Bmode = Đúng R2 = R2+1 Thoát 15 Niên Luận – Điện Tử Giải thích hoạt động lưu đồ Đọc liệu từ RTC, ta dùng câu lệnh: MOV ngoại (RTC) A,@R0, R0 chứa địa Ram RTC VĐK Giây-00 10H Phút-02 11H Giờ-04 12H Chuyễn mã sau thu dũ liệu từ RTC ta phải chuyển số BCD, liệu đọc từ RTC số nhị phân bit nên muốn hiển thị Led ta phải chuyển chúng số BCD (với bit cao = 0, lấy giá tri bit thấp) Ta sử dụng lệnh: Div AB Với B=10, A giá trị ghi Bit Bit Bit Bit Bit Bit Bit Bit => Bit Bit Bit Bit Bit Bit Bit BCD BCD B Bit 0 0 Bit Bit Bit Bit Bit Bit A 0 0 Bit Bit 16 Niên Luận – Điện Tử Để đưa liệu hiển thị ta cần chuyển từ mã BCD sang mã đoạn, dụa câu lệnh: Movc A,@A+dptr 0 0 Bit Bit Bit Bit BCD – Đoạn Dp g f e d c b a P2.2 P2.1 P2.0 Hiển thị P2.7 P2.6 P2.5 P2.4 P2.3 Mơ tả chương trình điều chỉnh: Nếu Mode lần chọn chương trình đặt sẵn sàng tăng phút UP chọn Nếu Mode lần chọn chương trình đặt sẵn sàng tăng UP chọn Nếu Mode lần chọn chương trình đặt lại thời gian cho RTC khỏi chương trình điều chỉnh chương trình MODE CT UP MAIN TĂNG PHÚT SET PHÚT TĂNG GIỜ SET GIỜ LƯU VÀO RTC VÀ THOÁT VỀ MAIN 17 Niên Luận – Điện Tử Phần : KẾT QUẢ - KIẾN NGHỊ Kết Quả : Dù cố gắng điều kiện khách quan nguyên nhân chưa tìm Nên mạch chưa hoạt động Chúng tiếp tục nghiên cứu thời gian lại hạn hẹp nên đành báo cáo tiến độ công việc thực Kết : + Hoàn thành phần mềm + Hoàn thành phần cứng + Mạch chưa hoạt động Rất mong thầy cô bạn thông cảm Kiến Nghị : Cần có nhiều thời gian để tiếp tục nghiên cứu Chúng tin tưởng cần khoảng thời gian thích hợp mạch hoạt động mỹ mãn Nếu chúng tơi tiếp tục nghiên cứu đề tài Các bạn khác thích nghiên cứu tiếp hồn thiện đề tài 18 Niên Luận – Điện Tử Phần : TÀI LIỆU THAM KHẢO [1].Vi điều khiển, Nguyễn Văn Khanh, Đại Học Cần Thơ , 2008 [2] TT Vi Điều Khiển, Nguyễn Văn Khanh, Đại Học Cần Thơ, 2008 [3] http://www.maxim-ic.com/TechSupport/DallasPackInfo.htm [4] http://www.dientuvietnam.net [5] http://diendandientu.com 19 Niên Luận – Điện Tử Phần : SƠ ĐỒ PHẦN CỨNG VÀ CHƯƠNG TRÌNH Sơ đồ phần cứng a b c d e f g R1 R2 R3 R4 R5 R6 R7 270 270 270 270 270 270 270 1C 1B 2C 2B 3C 3B 4C 4B 5C 5B 6C 6B 7C 7B 8C 8B COMGND U2 40 U11 18 17 16 15 14 13 12 11 10 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 ULN 2803 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 21 22 23 24 25 26 27 28 ALE SW1 30 29 R16 5v R P1.0/T2 V P1.1/T2X C P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 INT0 INT1 RD RXD T0 T1 TXD WR ALE/P PSEN RST SW_PB_SPST C5 1000uF X1 X2 G EA/VP N D 20 8052 U9 39 38 37 36 35 34 33 32 12 13 17 10 14 15 11 16 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 RD RD R/W ALE 17 15 14 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 20 21 22 R/W 19 18 31 10 11 DS R/W AS AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 NC NC NC Vcc SQW IRQ RESET NC NC NC MOT CS GND DS12887 24 R17 R 23 19 18 16 13 12 SW2 0 Y1 C3 33pF12Mhz 33pF C4 0 20 Niên Luận – Điện Tử Chương trình ;***************************************************** ;* DONG HO HIEN THI NGAY THANG NAM TREN LED DOAN * ;***************************************************** GIAY EQU 10H PHUT EQU 11H GIO EQU 12H MODE BMODE UP EQU BIT BIT R2 P3.0 P3.1 ORG LJMP 00H MAIN LCALL MOV KHOI_DONG_RTC R2,#0H MAIN: MAIN1: LCALL LCALL LCALL LCALL JNB LJMP DIEU_CHINH1: LCALL RET KHOI_DONG_RTC: MOV MOV MOVX MOV MOV MOVX RET DOC_RTC: MOV DOC_RTC HEX_BCD BCD_7DOAN HIEN_THI BMODE,DIEU_CHINH1 MAIN1 DIEU_CHINH R0,#10 A,#20H @R0,A R0,#11 A,#6 @R0,A ;CHON CHE DO THOI GIAN THUC ;CHON CHE DO 24h, NHI PHAN R0,#0 MOV R1,#10H ;VUNG LUU DU LIEU DOC_1: MOVX A,@R0 MOV @R1,A ;TANG R0 LEN DEN O NHO TIEP THEO O RAM NGOAI INC R0 INC R0 21 Niên Luận – Điện Tử ;TANG R1 LEN DEN O NHO TIEP THEO O RAM NOI INC R1 CJNE R1,#13H,DOC_1 RET HEX_BCD: MOV R0,#10H MOV R1,#20H HB: MOV A,@R0 INC R0 MOV B,#10 DIV AB ;LUU G-P-G VAO 10H DEN 12H MOV @R1,B INC R1 MOV @R1,A INC R1 INC R0 CJNE R0,#13H,HB RET BCD_7DOAN: MOV R0,#20H MOV R1,#30H BC: MOV DPTR,#TAB MOV A,@R0 MOVC A,@A+DPTR MOV @R1,A INC R0 INC R1 CJNE R0,#26H,BC RET HIEN_THI: MOV R0,#30H MOV P2,@R0 LCALL MOV LCALL INC DELAY P1,#00000001B DELAY R0 MOV LCALL MOV LCALL INC P2,@R0 DELAY P1,#00000010B DELAY R0 MOV LCALL P2,@R0 DELAY ;HINE THI CHUC GIAY 22 Niên Luận – Điện Tử MOV LCALL INC P1,#00000100B DELAY R0 MOV LCALL MOV LCALL INC P2,@R0 DELAY P1,#00001000B DELAY R0 MOV LCALL MOV LCALL INC P2,@R0 DELAY P1,#00010000B DELAY R0 MOV LCALL MOV LCALL RET P2,@R0 DELAY P1,#00100000B ;HINE THI CHUC GIO DELAY ;HINE THI CHUC PHUT DELAY: MOV R7,#255 DJNZ R7,$ RET DELAY500: MOV R7,#250 MOV R6,#200 LOOP: DJNZ R7,$ MOV R7,#250 DJNZ R6,LOOP RET TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;CHUONG TRINH CHON CHE DO DIEU CHINH ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DIEU_CHINH: INC MODE CJNE MODE,#1,DC1 LCALL SET_PHUT DC1: CJNE MODE,#2,DC2 LCALL SET_GIO DC2: CJNE MODE,#3,$ 23 Niên Luận – Điện Tử MOV MOV MOV MODE,#0 R0,#2 @R0,PHUT MOV MOV R0,#4 @R0,GIO RET ;;;;;;;;;;;;;;;;;; ;;CHINH PHUT;;;; ;;;;;;;;;;;;;; SET_PHUT: MOV MOV DIV A,PHUT B,#10 AB MOV MOVC MOV MOV LCALL MOV LCALL MOV DPTR,#TAB A,@A+DPTR P2,A P1,#00001000B DELAY500 P2,#0 DELAY500 P2,A MOV MOV MOVC MOV MOV LCALL MOV LCALL MOV A,B DPTR,#TAB A,@A+DPTR P2,A P1,#00000100B DELAY500 P2,#0 DELAY500 P2,A LCALL LCALL LCALL HEX_BCD BCD_7DOAN HIEN_THI JNB JNB UP,TANG_PHUT BMODE,OUT LCALL THOAT OUT: 24 Niên Luận – Điện Tử RET TANG_PHUT: MOV A,PHUT INC A CJNE A,#60,TG_P MOV A,#0 TG_P: MOV MOV DIV PHUT,A B,#10 AB MOV MOVC MOV MOV LCALL MOV LCALL MOV DPTR,#TAB A,@A+DPTR P2,A P1,#00001000B DELAY500 P2,#0 DELAY500 P2,A MOV MOV MOVC MOV MOV LCALL MOV LCALL MOV A,B DPTR,#TAB A,@A+DPTR P2,A P1,#00000100B DELAY500 P2,#0 DELAY500 P2,A LCALL LCALL LCALL HEX_BCD BCD_7DOAN HIEN_THI JNB ;************ ;CHINH GIO ;************ SET_GIO: MOV MOV DIV MOV MOVC MOV BMODE,OUT A,GIO B,#10 AB DPTR,#TAB A,@A+DPTR P2,A 25 Niên Luận – Điện Tử MOV LCALL MOV LCALL MOV P1,#00100000B DELAY500 P2,#0 DELAY500 P2,A MOV MOV MOVC MOV MOV LCALL MOV LCALL MOV A,B DPTR,#TAB A,@A+DPTR P2,A P1,#00010000B DELAY500 P2,#0 DELAY500 P2,A LCALL HEX_BCD LCALL LCALL BCD_7DOAN HIEN_THI JNB UP,TANG_GIO JNB BMODE,THOAT TANG_GIO: MOV A,GIO INC A CJNE A,#60,TG_G MOV A,#0 TG_G: MOV GIO,A MOV B,#10 DIV AB MOV MOVC MOV MOV LCALL MOV LCALL MOV DPTR,#TAB A,@A+DPTR P2,A P1,#00001000B DELAY500 P2,#0 DELAY500 P2,A MOV MOV MOVC MOV MOV LCALL MOV A,B DPTR,#TAB A,@A+DPTR P2,A P1,#00000100B DELAY500 P2,#0 26 Niên Luận – Điện Tử LCALL MOV DELAY500 P2,A LCALL LCALL LCALL JNB HEX_BCD BCD_7DOAN HIEN_THI BMODE,THOAT INC RET MODE THOAT: END Hết 27 ... dùng để điều khiển, ghi lại đựoc dùng để truy xuất liệu Niên Luận – Điện Tử Phần : KẾT NỐI RTC VÀ VI ĐIỀU KHIỂN Kết Nối Vi Điều Khiển Và Ds1 2887 + Từ AD0 > AD7 kết nối với P0 + Chân ALE kết nối. .. Chân p3.6 kết nối với chân R/W + Chân p3.7 kết nối với chân DS + Chân Vss, CS, MOT nối mass + Chân RST (Dalass) nối nguồn + Chân SQW IRQ bỏ trống Hình : Sơ đồ kết nối vi điều khiển Ds1 2887 Truy... Đồng Hồ Số Chức : Hiển thị giờ, phút, giây led đoạn HIển thị giờ, phút, giây hẹn led đoạn Có thể điều chỉnh phút giây button Phương án giải : Sử dụng vi điều khiển 89c52 Chip thời gian thực Ds1 2887

Ngày đăng: 09/03/2017, 06:59

Từ khóa liên quan

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

Tài liệu liên quan