Đồng hồ số sử dụng vi điều khiển AT89S52 giao tiếp với IC DS1307 hiển thị thời gian thực lên LCD

56 1.1K 5
Đồng hồ số sử dụng vi điều khiển AT89S52 giao tiếp với IC DS1307 hiển thị thời gian thực lên LCD

Đ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

Đồng hồ số sử dụng vi điều khiển AT89S52 giao tiếp với IC DS1307 hiển thị thời gian thực lên LCD

Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng ĐỒ ÁN MÔN HỌC KỸ THUẬT VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI Đề tài: Đồng hồ số sử dụng Vi điều khiển AT89S52 giao tiếp với IC DS1307 hiển thị thời gian thực lên LCD SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng LỜI NÓI ĐẦU Kỹ thuật vi điều khiển phát triển, đƣợc ứng dụng vào nhiều lĩnh vực sản xuất cơng nghiệp, tự động hóa, đời sống nhiều lĩnh vực khác So với kỹ thuật số kỹ thuật vi điểu khiển nhỏ gọn nhiều đƣợc tích hợp lại có khả lập trình đƣợc để điều khiển Nên tiện dụng động Với tính ƣu việt vi điều khiển phạm vi đồ án này, em dùng vi điều khiển xử lí tín hiệu từ IC DS1307, đồng thời cho hiển thị lên LCD Mục đích đề tài hƣớng đến: tạo bƣớc đầu cho sinh viên thử nghiệm ứng dụng vđk thực tiễn để từ tìm tịi, phát triển nhiều ứng dụng khác đời sống ngày cần đến Việc thực xong đồ án môn học kiến thức học, số sách tham khảo số nguồn tài liệu khác nên khơng tránh khỏi thiếu sót Vì em mong đƣợc góp ý thầy cô bạn Đà Nẵng,ngày 19 tháng năm 2014 Sinh viên thực Nguyễn Trọng Cƣờng SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng Mục lục Nội dung Trang Lời nói đầu Mục lục Chƣơng 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI I Giới thiệu II Sơ đồ khối chức khối Sơ đồ khối Chức khối Chƣơng 2: THIẾT KẾ MẠCH I Giới thiệu sơ lƣợc chuẩn giao tiếp I2C II Giới thiệu IC thời gian thực DS1307 III Thuật toán giao tiếp I2C 11 Điều kiện START STOP 11 Chế độ hoạt động 12 IV Giới thiệu chip vi điều khiển AT89S52 14 Giới thiệu sơ lƣợc 14 Sơ đồ khối 14 Sơ đồ chân 15 Chức chân 15 V Tổng quan LCD 16 Chức chân LCD 16 Sơ đồ khối HD44780 17 Tập lệnh 19 Biểu đồ thời gian 22 VI Sơ đồ mạch nguyên lý 24 Chƣơng 3:THIẾT KẾ CHƢƠNG TRÌNH 26 I Lƣu đồ thuật toán 26 Chƣơng trình 26 Chƣơng trình giao tiếp với DS1307 26 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng Chƣơng trình hiển thị lên LCD 30 Chƣơng trình giao tiếp với LCD 30 Chƣơng trình hiệu chỉnh 32 Chƣơng trình DELAY 39 II Phần lập trình 42 TÀI LIỆU THAM KHẢO 56 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI I) Giới thiệu Cùng với phát triển khoa học công nghệ, thiết bị điện tử đã, tiếp tục đƣợc ứng dụng ngày rộng rãi mang lại hiệu hầu hết lĩnh vực khoa học, kỹ thuật nhƣ đời sống xã hội Việc gia cơng, xử lý tín hiệu điện tử đại dựa sở nguyên lý số Vì thiết bị làm việc làm việc dựa nguyên lý số có ƣu điểm hẳn thiết bị làm việc dựa nguyên lý tƣơng tự, đặc biệt trog kỹ thuật tính tốn Sự phát triển mạnh mẽ công nghệ điện tử cho đời nhiều vi mạch số cỡ lớn với giá thành rẻ khả lập trình cao mang lại thay đổi lớn ngành điện tử Mạch số mức độ khác thâm nhập lĩnh vực điện tử thông dụng chuyên nghiệp cách nhanh chóng Các trƣờng kỹ thuật nơi mạch số thâm nhập mạnh mẽ đƣợc học sinh, sinh viện ƣa chuộng lợi ích tính khả thi Vì hiểu biết sâu sắc kỹ thuật số thiếu sinh viên ngành điện tử Nhu cầu hiểu biết kỹ thuật số không riêng ngƣời theo chuyên ngành điện tử mà cán kỹ thuật khác có sử dụng thiết bị điện tử Ngày nay, ứng dụng dân dụng công nghiệp, vi mạch vi điều khiển đƣợc ứng dụng rộng rãi phát huy đƣợc tính ƣu việt Việc sử dụng vi điều khiển để điều khiển cơng việc mang tính lặp lại có chu kỳ cần thiết để thay giám sát ngƣời Ở em xin trình bày việc ứng dụng vi điều khiển việc giao tiếp với IC DS1307 để hiển thị thời gian thực LCD II) Sơ đồ khối chức khối Sơ đồ khối KHỐI HIỂN THỊ KHỐI ĐIỀU CHỈNH KHỐI ĐIỀU KHIỂN (VĐK) KHỐI THỜI GIAN THỰC SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng Chức khối - Khối điều chỉnh gồm nút nhấn để đặt hiệu chỉnh thời gian - Khối hiển thị LCD - Khối điều khiển sử dụng vi điều khiển AT89S52 điều khiển toàn hoạt động mạch : nhận tín hiệu điều khiển khối điều chỉnh tín hiệu từ IC thời gian thực xuất khối hiển thị Mọi hoạt động mạch khối điều khiển - Khối thời gian thực DS1307 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng CHƢƠNG 2: THIẾT KẾ MẠCH I Giới thiệu sơ lƣợc chuẩn giao tiếp I2C Giao thức ƣu tiên truyền thông nối tiếp đƣợc phát triển Philips Semiconductor đƣợc gọi bus I2C Vì nguồn gốc đƣợc thiết kế để điều khiển liên thơng IC (Inter-Intergrated Circuit) nên đƣợc đặt tên I2C Tất chip có tích hợp tƣơng thích với I2C có thêm giao diện tích hợp Chip để truyền thơng trực tiếp với thiết bị tƣơng thích I2C khác Việc truyền liệu nối hai hƣớng bit đƣợc thực thi theo chế dộ sau: - Chuẩn (Standard)—100 Kbits/sec - Nhanh (Fast)—400 Kbits/sec - Tốc dộ cao (High speed)—3.4 Mbits/sec Ðƣờng bus thực truyền thông nối tiếp I2C gồm hai đƣờng đƣờng truyền liệu nối tiếp SDA đƣờng truyền nhịp xung đồng hồ nối tiếp SCL Vì chế hoạt động đồng nên cần có nhịp xung tín hiệu đồng Các thiết bị hỗ trợ I2C có địa định nghĩa trƣớc, số bit địa thấp cấu hình Ðơn vị thiết bị khởi tạo trình truyền thông đơn vị Chủ đơn vị tạo xung nhịp đồng bộ, điều khiển cho phép kết thúc trình truyền Nếu đơn vị Chủ muốn truyền thơng với đơn vị khác gửi kèm thơng tin địa đơn vị mà muốn truyền liệu truyền Ðơn vị Tớ đƣợc gán đánh địa thơng qua đơn vị Chủ thiết lập truyền thơng trao đổi liệu Bus liệu đƣợc thiết kế phép thực nhiều đơn vị Chủ Tớ Bus Q trình truyền thơng I2C đƣợc bắt đầu tín hiệu start tạo đơn vị Chủ Sau đơn vị Chủ truyền liệu bit chứa địa đơn vị Tớ mà muốn truyền thơng, theo thứ tự bit có trọng số lớn MSB đƣợc truyền truớc Bit thứ tám chứa thông tin dể xác định đơn vị Tớ thực vai trò nhận (0) hay gửi (1) liệu Tiếp theo bit ACK xác nhận đơn vị nhận nhận đƣợc byte truớc hay khơng Ðơn vị truyền (gửi) truyền byte liệu bắt đầu MSB Tại diểm cuối byte truyền, đơn vị nhận tạo bit xác nhận ACK Khuôn mẫu bit (gồm bit liệu bit xác nhận) đƣợc lặp lại cần truyền tiếp byte Khi đơn vị Chủ trao dổi xong liệu cần quan sát bit xác nhận ACK cuối sau tạo tín hiệu dừng STOP để kết thúc q trình truyền thơng I2C giao diện truyền thơng đặc biệt thích hợp cho ứng dụng truyền thông đơn vị bo mạch với khoảng cách ngắn tốc dộ thấp Ví dụ nhƣ truyền thơng CPU với khối chức bo mạch nhƣ EEPROM, cảm biến, dồng hồ tạo thời gian thực Hầu hết thiết bị hỗ trợ I2C hoạt dộng tốc độ SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng 400Kbps, số cho phép hoạt động tốc độ cao vài Mbps I2C đơn giản để thực thi kết nối nhiều đơn vị hỗ trợ chế xác định địa II Giới thiệu IC thời gian thực (real time clock) DS1307 DS1307 chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời gian thực đƣợc dùng với ý nghĩa thời gian tuyệt đối mà nguời sử dụng, tình giây, phút, giờ… DS1307 sản phẩm Dallas Semiconductor (một công ty thuộc Maxim Integrated Products) Chip có ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm Ngồi DS1307 cịn có ghi điều khiển ngõ phụ 56 ghi trống dùng nhƣ RAM DS1307 xuất gói SOIC DIP có chân nhƣ hình Hình Hai gói cấu tạo chip DS1307 Các chân DS1307 đƣợc mô tả nhƣ sau: X1 X2: ngõ kết nối với thạch anh 32.768KHz làm nguồn tạo dao động cho chip VBAT: cực dƣơng nguồn pin 3V nuôi chip GND: chân mass chung cho pin 3V Vcc Vcc: nguồn cho giao diện I2C, thƣờng 5V dùng chung với vi diều khiển Chú ý Vcc không đƣợc cấp nguồn nhƣng VBAT đƣợc cấp DS1307 hoạt động (nhƣng không ghi đọc đƣợc) SQW/OUT: ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần số xung đƣợc tạo đƣợc lập trình Nhƣ chân hầu nhƣ khơng liên quan đến chức DS1307 đồng hồ thời gian thực, bỏ trống chân nối mạch SCL SDA đƣờng giao xung nhịp liệu giao diện I2C Có thể kết nối DS1307 mạch điện đơn giản nhƣ hình SVTH: NGUYỄN TRỌNG CƢỜNG- NHĨM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng Hình 2: Mạch ứng dụng đơn giản DS1307 Cấu tạo bên DS1307 bao gồm số thành phần nhƣ mạch nguồn, mạch dao động, mạch điều khiển logic, mạch giao diện I2C, trỏ địa ghi (hay RAM) Sử dụng DS1307 chủ yếu ghi đọc ghi chip Vì có vấn đề cấu trúc ghi cách truy xuất ghi thông qua giao diện I2C Nhƣ trình bày, nhớ DS1307 có tất 64 ghi 8-bit đƣợc đánh địa từ dến 63 (từ 00H dến 3FH theo hệ HexaDecimal) Tuy nhiên, thực chất có ghi đầu dùng cho chức ―đồng hồ‖ (RTC) lại 56 ghi bỏ trống đƣợc dùng chứa biến tạm nhƣ RAM muốn Bảy ghi chứa thông tin thời gian đồng hồ bao gồm: giây (SECONDS), phút (MINUTES), (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) năm (YEAR) Việc ghi giá trị vào ghi tƣơng đƣơng với việc ―cài dặt‖ thời gian khởi động cho RTC Việc đọc giá trị từ ghi đọc thời gian thực mà chip tạo Ví dụ, lúc khởi động chƣơng trình, ghi vào ghi ―giây‖ giá trị 42, sau 12s đọc ghi này, thu đƣợc giá trị 54 Thanh ghi thứ (CONTROL) ghi điều khiển xung ngõ QW/OUT (chân 6) Tuy nhiên, không dùng chân SQW/OUT nên có thề bỏ qua ghi thứ Tổ chức nhớ DS1307 đƣợc trình bày hình Hình 3: Tổ chức nhớ DS1307 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng Vì ghi quan trọng hoạt động DS1307, khảo sát ghi cách chi tiết Trƣớc hết quan sát tổ chức theo bit ghi nhƣ hình Hình 4: Tổ chức ghi thời gian Thanh ghi giây (SECONDS): ghi ghi dầu tiên nhớ DS1307, địa 0x00 Bốn bit thấp ghi chứa mã BCD 4-bit chữ số hàng đơn vị giá trị giây Do giá trị cao chữ số hàng chục (khơng có giây 60) nên cần bit (các bit SECONDS 6:4) mã hóa đƣợc (số =101, bit) Bit cao nhất, bit 7, ghi điều khiển có tên CH (Clock halt – treo dồng hồ), bit đƣợc set dao động chip bị vơ hiệu hóa, đồng hồ khơng hoạt động Vì vậy, thiết phải reset bit xuống từ dầu Thanh ghi phút (MINUTES): có địa 01H, chứa giá trị phút đồng hồ Tƣơng tự ghi SECONDS, có bit ghi đƣợc dùng lƣu mã BCD phút, bit ln ln Thanh ghi (HOURS): nói ghi phức tạp DS1307 Thanh ghi có địa 02H Truớc hết 4-bits thấp ghi đƣợc dùng cho chữ số hàng đơn vị Do DS1307 hỗ trợ loại hệ thống hiển thị (gọi mode) 12h (1h dến 12h) 24h (1h dến 24h) giờ, bit6 (hình 4) xác lập hệ thống Nếu bit6=0 hệ thống 24h đƣợc chọn, dó bit cao dùng mã hóa chữ số hàng chục giá trị Do giá trị lớn chữ số hàng chục truờng hợp (=10, nhị phân) nên bit đủ để mã hóa Nếu bit6=1 hệ thống 12h đƣợc chọn, với truờng hợp có bit dùng mã hóa chữ số hàng chục giờ, bit (màu orange hình 4) buổi ngày, AM PM Bit5 =0 AM bit5=1 PM Bit Thanh ghi thứ (DAY – ngày tuần): nằm dịa 03H Thanh ghi DAY mang giá trị từ dến tƣơng ứng từ Chủ nhật đến thứ tuần Vì thế, có bit thấp ghi có nghĩa SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 10 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng II Phần lập trình ; -KHOI TAO -GIO DATA 30H PHUT DATA 31H GIAY DATA 32H TRUYEN DATA 33H NHAN DATA 34H VETREN DATA 35H CO DATA 29H CHUATG DATA 36H GIOIHANTREN DATA 37H GIOIHANDUOI DATA 38H DAT DATA 39H ADDR DATA 40H ACK BIT CO.7 SCL BIT P1.0 SDA BIT P1.1 RS EQU P3.5 RW EQU P3.6 EN EQU P3.7 D7 BIT P0.7 CHON BIT P3.0 NUT_TANG BIT P3.1 NUT_GIAM BIT P3.2 ; CHUONG TRINH -ORG 0H LJMP MAIN ORG 50H MAIN: CALL LCD_SET MOV TMOD,#11H MAIN1: CALL TIME CALL READ_DATA CALL HIEN_THI CALL CHUOI JNB CHON,CAI_DAT CALL DELAY40MS JMP MAIN1 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 42 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng ; -SET TIME CAI_DAT: LGIO: CALL HIEN_THI_GIO JB NUT_TANG,KOTANGH CALL DELAY40MS CALL TANGGIO KOTANGH: JB NUT_GIAM,KOGIAMH CALL DELAY40MS CALL GIAMGIO KOGIAMH: JB CHON,LGIO CALL DELAY40MS CAI_DAT_PHUT: CALL HIEN_THI_PHUT JB NUT_TANG,KOTANG1 CALL DELAY40MS CALL TANGPHUT KOTANG1: JB NUT_GIAM,KOGIAM1 CALL DELAY40MS CALL GIAMPHUT KOGIAM1: JB CHON,CAI_DAT_PHUT CALL DELAY40MS CAI_DAT_GIAY: CALL HIEN_THI_GIAY JB NUT_TANG,KOTANG2 CALL DELAY40MS CALL TANGGIAY KOTANG2: JB NUT_GIAM,KOGIAM2 CALL DELAY40MS CALL GIAMGIAY KOGIAM2: JB CHON,CAI_DAT_GIAY CALL DELAY40MS RET SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 43 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng ; -CHINH GIO TANGGIO: MOV A,GIO ANL A,#0FH MOV R7,A MOV A,GIO SWAP A ANL A,#0FH INC R7 CJNE R7,#10,DAOBYTE1 MOV R7,#00H INC A DAOBYTE1: SWAP A ORL A,R7 CJNE A,#24H,THOAT1 MOV A,#00H THOAT1: MOV GIO,A MOV DAT,A MOV ADDR,#02H CALL CAPNHATDULIEU RET GIAMGIO: MOV A,GIO ANL A,#0FH MOV R6,A MOV A,GIO SWAP A ANL A,#0FH DEC R6 CJNE R6,#0FFH,DAOBYTEG MOV R6,#09H DEC A DAOBYTEG: SWAP A ORL A,R6 CJNE A,#0FFH,THOATG MOV A,#23H SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 44 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng THOATG: MOV DAT,A MOV GIO,A MOV ADDR,#02H CALL CAPNHATDULIEU RET HIEN_THI_GIO: MOV A,#85H CALL W_CONTROL MOV 47H,GIO CALL HIEN_ MOV A,#85H CALL W_CONTROL MOV A,#32 CALL W_STRING MOV A,#32 CALL W_STRING CALL DELAYS4 RET ; CHINH PHUT TANGPHUT: MOV A,PHUT ANL A,#0FH MOV R5,A MOV A,PHUT SWAP A ANL A,#0FH INC R5 CJNE R5,#10,DAOBYTE_P1 MOV R5,#00H INC A DAOBYTE_P1: SWAP A ORL A,R5 CJNE A,#60H,THOAT_P1 CALL TANGGIO MOV A,#00H THOAT_P1: MOV PHUT,A SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 45 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng MOV DAT,A MOV ADDR,#01H CALL CAPNHATDULIEU RET GIAMPHUT: MOV A,DAT ANL A,#0FH MOV R4,A MOV A,DAT SWAP A ANL A,#0FH DEC R4 CJNE R4,#0FFH,DAOBYTE_P MOV R4,#09H DEC A DAOBYTE_P: SWAP A ORL A,R4 CJNE A,#0FFH,THOAT_P CALL GIAMGIO MOV A,#59H THOAT_P: MOV PHUT,A MOV DAT,A MOV ADDR,#01H CALL CAPNHATDULIEU RET HIEN_THI_PHUT: MOV A,#88H CALL W_CONTROL MOV 47H,PHUT CALL HIEN_ MOV A,#88H CALL W_CONTROL MOV A,#32 CALL W_STRING MOV A,#32 CALL W_STRING CALL DELAYS4 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 46 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng MOV A,#85H CALL W_CONTROL MOV 47H,GIO CALL HIEN_ RET ; -TANGGIAY: MOV A,GIAY ANL A,#0FH MOV R3,A MOV A,GIAY SWAP A ANL A,#0FH INC R3 CJNE R3,#10,DAOBYTES1 MOV R3,#00H INC A DAOBYTES1: SWAP A ORL A,R3 CJNE A,#60H,THOATS1 INC PHUT MOV DAT,PHUT CALL CAPNHATDULIEU CALL HIEN_THI_PHUT MOV A,#00H THOATS1: MOV GIAY,A MOV DAT,A MOV ADDR,#00H CALL CAPNHATDULIEU RET GIAMGIAY: MOV A,GIAY ANL A,#0FH MOV R2,A MOV A,GIAY SWAP A ANL A,#0FH SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 47 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng DEC R2 CJNE R2,#0FFH,DAOBYTES MOV R2,#09H DEC A DAOBYTES: SWAP A ORL A,R2 CJNE A,#0FFH,THOATS DEC PHUT MOV DAT,PHUT CALL CAPNHATDULIEU CALL HIEN_THI_PHUT MOV A,#59H THOATS: MOV DAT,A MOV GIAY,A MOV ADDR,#00H CALL CAPNHATDULIEU RET HIEN_THI_GIAY: MOV A,#8BH CALL W_CONTROL MOV 47H,GIAY CALL HIEN_ MOV A,#8BH CALL W_CONTROL MOV A,#32 CALL W_STRING MOV A,#32 CALL W_STRING CALL DELAYS4 MOV A,#88H CALL W_CONTROL MOV 47H,PHUT CALL HIEN_ MOV A,#85H CALL W_CONTROL MOV 47H,GIO CALL HIEN_ SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 48 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng RET ; -HIEN_: CALL HBCDTOHEX_P0 CALL W_STRING CALL LBCDTOHEX_P0 CALL W_STRING CALL DELAYS4 RET ; -CAPNHATDULIEU -CAPNHATDULIEU: CALL SEND_START MOV A,#0D0H CALL SEND_BYTE MOV A,ADDR CALL SEND_BYTE MOV A,DAT CALL SEND_BYTE CALL SEND_STOP RET ; -; -READ DATA READ_DATA: CALL SEND_START MOV A,#0D0H CALL SEND_BYTE MOV A,#00H CALL SEND_BYTE CALL SEND_STOP CALL SEND_START MOV A,#0D1H CALL SEND_BYTE CALL READ_BYTE MOV GIAY,A CLR SDA CALL OKOK CALL READ_BYTE MOV PHUT,A CLR SDA SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 49 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng CALL OKOK CALL READ_BYTE MOV GIO,A SETB SDA CALL OKOK CALL SEND_STOP RET ; -HBCDTOHEX_P0: MOV A,47H SWAP A ANL A,#0FH ORL A,#48 RET ; -LBCDTOHEX_P0: MOV A,47H ANL A,#0FH ORL A,#48 RET ; -TB BAT DAU TRUYEN/DOC BYTE SEND_START: SETB SDA SETB SCL CALL DELAY5US CLR SDA CALL DELAY5US CLR SCL CALL DELAY5US RET ; -TB KET THUC GUI/NHAN BYTE -SEND_STOP: CLR SDA SETB SCL CALL DELAY5US SETB SDA CALL DELAY5US RET ; -GUI BYTE DEN DS1307 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 50 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng SEND_BYTE: MOV TRUYEN,#08H GUITIEP: JNB ACC.7,BIT0 SETB SDA JMP BIT1 BIT0: CLR SDA BIT1: SETB SCL CALL DELAY5US CLR SCL RLC A DJNZ TRUYEN,GUITIEP JNB SDA,SEND0 JMP THOAT SEND0: CLR SDA SETB SCL CALL DELAY5US CLR SCL CALL DELAY5US THOAT: RET ; -NHAN DU LIEU TU DS1307 READ_BYTE: MOV NHAN,#08H MOV A,#00H SETB SDA DOCTIEP: SETB SCL MOV C,SDA CALL DELAY5US RLC A CLR SCL CALL DELAY5US DJNZ NHAN,DOCTIEP RET OKOK: SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 51 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng SETB SCL CALL DELAY5US CLR SCL SETB SDA RET ; -HIENTHI HIEN_THI: MOV 47H,GIO CALL HBCDTOHEX_P0 CALL W_STRING CALL LBCDTOHEX_P0 CALL W_STRING MOV A,#176 CALL W_STRING MOV 47H,PHUT CALL HBCDTOHEX_P0 CALL W_STRING CALL LBCDTOHEX_P0 CALL W_STRING MOV A,#176 CALL W_STRING MOV 47H,GIAY CALL HBCDTOHEX_P0 CALL W_STRING CALL LBCDTOHEX_P0 CALL W_STRING RET ; -LCD_SET: MOV A,#38H CALL W_CONTROL MOV A,#0CH CALL W_CONTROL MOV A,#06H CALL W_CONTROL RET ; -W_STRING: SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 52 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng SETB RS CLR RW MOV P0,A SETB EN NOP CLR EN CALL DELAYS4 RET ; -W_CONTROL: CLR RS CLR RW MOV P0,A SETB EN NOP CLR EN CALL DELAYMS RET HIENCHUOI: CLR A MOVC A,@A+DPTR JZ EXIT CALL W_STRING CALL DELAYS4 INC DPTR SJMP HIENCHUOI EXIT: RET ; -TIME: MOV A,#80H CALL W_CONTROL MOV DPTR,#MA1 CALL HIENCHUOI RET ; CHUOI: MOV A,#0C0H CALL W_CONTROL MOV DPTR,#MA2 SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 53 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng CALL HIENCHUOI RET ; KIEM TRA LCD BUSY: SETB D7 CLR RS SETB RW BACK: CLR EN SETB EN JB D7, BACK RET ; -DELAY CHO DS1307 DELAY5US: NOP NOP NOP NOP NOP RET ; -DELAY -DELAYMS: MOV TH0,#HIGH(-500) MOV TL0,#LOW(-500) SETB TR0 WAITMS: JNB TF0,WAITMS CLR TF0 CLR TR0 RET DELAYS4: MOV TH0,#HIGH(-20000) MOV TL0,#LOW(-20000) SETB TR0 WAITS4: JNB TF0,WAITS4 CLR TF0 CLR TR0 RET DELAY40MS: SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 54 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng MOV TH0,#HIGH(-40000) MOV TL0,#LOW(-40000) SETB TR0 WAIT: JNB TF0,WAIT CLR TF0 CLR TR0 RET ; MA1: DB 'TIME:',0 MA2: DB 'TRONG CUONG-CDT1',0 END SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 55 Đồ án Vi điều khiển ghép nối Ngoại vi GVHD: Ths.Lê Xứng TÀI LIỆU THAM KHẢO - Vi điều khiển 8051 _ Tống Văn On & Hoàng Đức Hải - Cấu trúc & lập trình họ vi điều khiển 8051 _ Nguyễn Tăng Cƣờng & Phan Quốc Thắng - 64X8SerialRealTimeClock.pdf - SerialLCD-v2.0.pdf SVTH: NGUYỄN TRỌNG CƢỜNG- NHÓM 06 Trang 56 ... bày vi? ??c ứng dụng vi điều khiển vi? ??c giao tiếp với IC DS1307 để hiển thị thời gian thực LCD II) Sơ đồ khối chức khối Sơ đồ khối KHỐI HIỂN THỊ KHỐI ĐIỀU CHỈNH KHỐI ĐIỀU KHIỂN (VĐK) KHỐI THỜI GIAN. .. Khối điều khiển sử dụng vi điều khiển AT89S52 điều khiển toàn hoạt động mạch : nhận tín hiệu điều khiển khối điều chỉnh tín hiệu từ IC thời gian thực xuất khối hiển thị Mọi hoạt động mạch khối điều. .. có sử dụng thiết bị điện tử Ngày nay, ứng dụng dân dụng công nghiệp, vi mạch vi điều khiển đƣợc ứng dụng rộng rãi phát huy đƣợc tính ƣu vi? ??t Vi? ??c sử dụng vi điều khiển để điều khiển cơng vi? ??c

Ngày đăng: 23/03/2016, 09:46

Từ khóa liên quan

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

Tài liệu liên quan