Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
1,86 MB
Nội dung
TRƢỜNG ĐẠI HỌC VINH KHOA VẬT LÝ VÀ CÔNG NGHỆ _ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: NGHIÊN CỨU CHẾ TẠO BỘ ĐIỀU KHIỂN ĐÈN LED SỬ DỤNG NĂNG LƢỢNG MẶT TRỜI Giảng viên hƣớng dẫn: Sinh viên thực hiện: Lớp: Niên khóa: Nghệ An, 3/2017 ThS Phan Duy Tùng Nguyễn Văn Thọ 52K-ĐTVT 2011-2016 LỜI NÓI ĐẦU Hiện nguồn lƣợng hóa thạch nhƣ than đá, dầu mỏ, khí đốt ngày cạn kiệt buộc phải sử dụng công nghệ tiết kiệm lƣợng tìm nguồn lƣợng tái tạo thay Qua việc phân tích tình hình nghiên cứu nƣớc liên quan đến lĩnh vực nghiên cứu ta thấy hiệu rõ ràng công nghệ chiếu sáng dùng đèn LED tích hợp với lƣợng mặt trời phƣơng diện tiết kiệm lƣợng môi trƣờng Các nghiên cứu ứng dụng mạng truyền thông điều khiển giám sát hệ thống lƣợng điện nói chung hệ thống điện lƣợng điện mặt trời nói riêng ứng dụng chiếu sáng cịn đƣợc nghiên cứu triển khai nƣớc Ngoài thiết bị liên quan đến hệ thống lƣợng mặt trời có phần đa đƣợc nhập cao, đặc biệt điều khiển LED trực tiếp từ điện chiều lấy từ acquy Do đồ án chọn đề tài thiết kế điều khiển LED sử dụng lƣợng mặt trời nhằm tạo điều khiển đèn thông minh phù hợp với điều kiện thực tế Việt Nam, làm chủ công nghệ, giá thành phù hợp với thực trạng Việt Nam Để hồn thành đồ án này, tơi cần giúp đỡ nhiều từ thầy cô, bạn bè, nhà trƣờng Quan trọng xin đƣợc cảm ơn ThS Phan Duy Tùng PGS.TS Nguyễn Thị Quỳnh Hoa, ngƣời trực tiếp hƣớng dẫn để đồ án đƣợc hồn thành, ý kiến đóng góp thầy cô kiến thức quan trọng, nên tảng kinh nghiệm quý báu để thực đồ án Tôi xin cảm ơn tới ngƣời bạn giúp đỡ, ủng hộ để hoàn thành đồ án Xin chân thành cảm ơn! i TĨM TẮT ĐỒ ÁN Trong đồ án tơi trình bày việc xây dựng điều khiển đèn LED sử dụng lƣợng mặt trời có khả lập trình điều khiển Bộ điều khiển hoạt động nhiều chế độ phụ thuộc vào thời gian, môi trƣờng xung quanh nhu cầu ngƣời Việc thay đổi chế độ hoạt động thay đổi từ xa thu phát RF Bộ điều khiển đƣợc chế tạo thành công Qua kết kiểm tra khảo sát cho thấy điều khiển hoạt động ổn định nhƣ thiết kế ABSTRACT This project presented the designing and implementing of a LED controller using solar energy, which is capable of programming The controller operates in multiple modes depending on the time, the surroundings and the needs of humans The controller has been designed and fabricated The testing result shown that the controller ii MỤC LỤC LỜI NÓI ĐẦU i TÓM TẮT ĐỒ ÁN ii DANH SÁCH BẢNG BIỂU vi DANH SÁCH CÁC TỪ VIẾT TẮT .vii PHẦN MỞ ĐẦU viii CHƢƠNG GIỚI THIỆU VỀ PHẦN CỨNG CỦA HỆ THỐNG 1.1 Vi điều khiển PIC 16F877A .1 1.1.1 Tổng quan PIC 16F877A .1 1.1.2 Tổ chức nhớ PIC 16F877A 1.1.3 Các cổng xuất nhập PIC 16F877A 1.1.4 Các định thời 1.1.5 Ngắt 12 1.1.6 Các ghi đặc biệt 12 1.1.7 Stack 14 1.2 IC thời gian thực DS1307 15 1.2.1 Giới thiệu chung DS1307 15 1.2.2 Ghép nối DS1307 với vi điều khiển 16 1.2.3 Tổ chức ghi DS1307 16 1.3 Bộ thu phát RF 19 1.3.1 Bộ phát 20 1.3.2 Bộ thu 20 1.4 Cảm biến chuyển động .20 1.4.1 PIR 20 1.4.2 Module cảm biến chuyển động HC-SR501 21 1.5 Cảm biến ánh sáng 22 1.5.1 Quang trở 22 1.5.2 Nguyên lý hoạt động .23 1.6 Kết luận chƣơng .23 iii CHƢƠNG THIẾT KẾ VÀ CHẾ TẠO BỘ ĐIỀU KHIỂN ĐÈN LED 24 2.1 Thiết kế điều khiển đèn LED 24 2.1.1 Sơ đồ khối hệ thống chiếu sáng LED 24 2.1.2 Xây dựng sơ đồ thuật toán 25 2.1.3 Xây dựng sơ đồ nguyên lý 29 2.1.4 Thiết kế mạch in 31 2.2 Chế tạo khảo sát 32 2.2.1 Chế tạo .32 2.2.2 Đo đạc khảo sát 33 2.3 Kết luận chƣơng 34 KẾT LUẬN 35 TÀI LIỆU THAM KHẢO 36 PHỤ LỤC 37 iv DANH SÁCH HÌNH VẼ Hình 1.1 Sơ đồ chân PIC 16F877A Hình 1.2 Sơ đồ khối PIC 16F877A Hình 1.3 Sơ đồ nhớ chƣơng trình .5 Hình 1.4 Sơ đồ nhớ liệu Hình 1.5 Cấu tạo hình dáng chíp DS1307 15 Hình 1.6 Mạch ứng dụng đơn giản DS1307 16 Hình 1.7 Bộ thu phát RF 19 Hình 1.8 Module cảm biến chuyển động HC-SR501 21 Hình 1.9 Quang trở 22 Hình 2.1 Sơ đồ khối hệ thống chiếu sáng LED sử dụng lƣợng mặt trời .24 Hình 2.2 Lƣu đồ kết hợp chế độ 25 Hình 2.3 Lƣu đồ thuật toán chế độ điều khiển theo thời gian thực 26 Hình 2.4 Lƣu đồ thuật toán chế độ điều khiển theo thời gian thực cảm biến chuyển động 27 Hình 2.5 Lƣu đồ thuật tốn chế độ điều khiển theo cảm biến ánh sáng 28 Hình 2.6 Lƣu đồ thuật toán chế độ điều khiển theo cảm biến ánh sáng cảm biến chuyển động 29 Hình 2.7 Sơ đồ khối hệ thống 30 Hình 2.8 Sơ đồ nguyên lý mạch điều khiển đèn LED 31 Hình 2.9 Sơ đồ mạch in mạch điều khiển đèn LED 31 Hình 2.10 Board điều khiển LED đƣợc chế tạo 32 Hình 2.11 Bộ điều khiển đèn LED hoàn chỉnh 32 Hình 2.12 Kết khảo sát hoạt động điều khiển theo thời gian thực 33 Hình 2.13 Kết khảo sát hoạt động điều khiển theo cảm biến ánh sáng 33 v DANH SÁCH BẢNG BIỂU Bảng 1.1 Thông số kỹ thuật PIC 16F877A .2 Bảng 1.2 Bảng chọn bank ghi Bảng 1.3 Thanh ghi thời gian thực nhớ DS1307 17 Bảng 1.4 Tổ chức ghi DS 1307 17 Bảng 2.1 Kết khảo sát chế dộ thời gian thực cảm biến chuyển động 34 Bảng 2.2 Kết khảo sát chế độ cảm biến chuyển động cảm biến thời gian 34 vi DANH SÁCH CÁC TỪ VIẾT TẮT LED Điốt phát quang Light Emitting Diode CBAS Cảm biến ánh sáng CBCĐ Cảm biến chuyển động ADC Analog Digital Coverter Bộ chuyển đổi tƣơng tự sang số PWM Pulse Width Modulation Điều chế độ rộng xung PIC Programble Intellgen Computure Máy tính thơng minh khả trình DC Direct Curent Dịng điện khơng đổi RAM Randum Access Memory Bộ nhớ máy tính I2C Inter-Integratel Circuit Đƣờng bus giao tiếp IC vii PHẦN MỞ ĐẦU Hiện nguồn lƣợng hóa thạch nhƣ than đá, dầu mỏ, khí đốt ngày cạn kiệt buộc phải sử dụng công nghệ tiết kiệm lƣợng tìm nguồn lƣợng tái tạo thay Qua việc phân tích tình hình nghiên cứu nƣớc liên quan đến lĩnh vực nghiên cứu ta thấy hiệu rõ ràng công nghệ chiếu sáng dùng đèn LED tích hợp với lƣợng mặt trời phƣơng diện tiết kiệm lƣợng môi trƣờng Các nghiên cứu ứng dụng mạng truyền thông điều khiển giám sát hệ thống lƣợng điện nói chung hệ thống điện lƣợng điện mặt trời nói riêng ứng dụng chiếu sáng cịn đƣợc nghiên cứu triển khai nƣớc Ngoài thiết bị liên quan đến hệ thống lƣợng mặt trời có phần đa đƣợc nhập cao, đặc biệt điều khiển LED trực tiếp từ điện chiều lấy từ acquy Đồ án nghiên cứu điều khiển đèn LED sử dụng lƣợng mặt trời Bộ điều khiển bật tắt điều chỉnh độ sáng đèn LED tùy vào thời gian, mơi trƣờng nhu cầu sử dụng Nếu có ngƣời sử dụng đèn sáng 100%, cịn khơng đèn sáng 60% Bộ điều khiển hoạt động dự vào IC thời gian thực, cảm biến chuyển động cảm biến ánh sáng Trong IC thời gian thực DS1307 đƣợc dùng để xác định ngày đêm, cảm biến chuyển động dùng để xác định có mặt ngƣời, cảm biến ánh sáng dùng để xác định ngày đêm cách chủ động PIC 16F877A điều khiển độ rộng xung PWM để điều khiển độ sáng đèn LED, độ rộng xung tùy thuộc vào tín hiệu từ cảm biến cài đặt theo ý muốn Có chế độ hoạt động là: - Chế độ điều khiển theo thời gian thực - Chế độ điều khiển theo thời gian thực cảm biến chuyển động - Chế độ điều khiển theo cảm biến ánh sáng - Chế độ điều khiển theo cảm biến ánh sáng cảm biến chuyển động Mục tiêu đồ án nghiên cứu thiết kế chế tạo điều khiển đèn LED sử dụng trực tiếp lƣợng mặt trời có khả lập trình điều khiển độ sáng theo thời gian theo nhu cầu sử dụng viii Phạm vi hoạt động đồ án bao gồm xây dựng mơ hình điều khiển đèn LED sử dụng lƣợng mặt trời Một bình ắc quy nơi lƣu trữ nguồn điện đƣợc thu từ pin mặt trời để cấp điện cho đèn LED điều khiển Bộ não điều khiển vi điều khiển PIC 16F877A Viều khiển đọc liệu từ IC thời gian thực cảm biến từ tính tốn xử lý điều khiển độ rộng xung để đƣa điều khiển đèn LED ix d Chế đô điều khiển theo cảm biến ánh sáng cảm biến chuyển động Chế độ kết hợp tín hiệu cảm biến biến ánh sáng cảm biến chuyển động Cũng nhƣ chế độ điều khiển đèn theo thời gian thực cảm biến chuyển động, cảm biến ánh sáng thay IC thời gian thực DS1307 để xác định ngày đêm Khi ánh sáng môi trƣờng thay đổi (sáng, tối) quang trở thay đổi giá trị (tăng, giảm) Trong mạch vi điều khiển PIC16F877A đọc giá trị nhận đƣợc từ đƣa tín hiệu điều khiển đèn cho phù hợp với môi trƣờng, Kết hợp với cảm biến chuyển động, điều kiện trời tối có tín hiệu chuyển động ngƣời vi điều khiển điều chế tín hiệu có độ rộng xung PWM 100% ngƣời qua lại cách dễ dàng Cịn khơng có tín hiệu từ cảm biến chuyển động độ rộng xung PWM 60% để tiết kiệm lƣợng đảm bảo mơi trƣờng đƣợc chiếu sáng đủ Từ yếu tố tơi có sơ đồ thuật tốn nhƣ hình sau: Hình 2.6 Lƣu đồ thuật tốn chế độ điều khiển theo cảm biến ánh sáng cảm biến chuyển động 2.1.3 Xây dựng sơ đồ nguyên lý Sơ đồ khối điều khiển đƣợc cho nhƣ hình 2.7 - Khối nguồn khối cung cấp nguồn điện áp ổn định 5V DC cho khối mạch khác hoạt động - Vi điều khiển PIC 16F877A khối xử lý trung tâm hệ thống thực tiếp nhận thông tin giao tiếp với thiết bị bên ngồi Các nhiệm vụ chính: + Nhận tín hiệu từ cảm biến chuyển động, cảm biến ánh sáng 29 + Nhận giá trị từ khối thời gian thực DS1307 + Xử lý tín hiệu đƣa tín hiệu điều khiển đèn Hình 2.7 Sơ đồ khối hệ thống - Khối thời gian thực: cung cấp liệu thời gian thực: ngày, tháng, năm, giờ, phút, giây - Khối cảm biến ánh sáng: cung cấp thông tin độ sáng tối mơi trƣờng Tín hiệu xuất cảm biến digital HIGH LOW tƣợng trƣng cho trạng thái bật, tắt thiết bị điện tự động mà bạn không cần phải thao tác vào - Khối cảm biến chuyển động: cung cấp thông tin có mặt ngƣời vùng qt Tín hiệu tín hiệu analog Khi có ngƣời chuyển động tín hiệu cổng từ 3,3V đến 5V cịn sau khoảng thời gian mà khơng có chuyển động tín hiệu chân OUT lại đƣợc đƣa mức thấp 0V - Khối khuếch đại: sử dụng MOSFET loại N không sử dụng kiểu đóng mở cách thơng thƣờng nhƣ cơng tắc RELAY bình thƣờng đƣợc Nếu nhƣ sử dụng RELAY khơng thể điều chỉnh cƣờng độ ánh sáng đƣợc chúng có hai chức đóng mở nên phù hợp tơi lựa chọn MOSFET để dựa vào xung PWM để điều chỉnh độ sáng đèn - Khối đèn LED tải tiêu thụ mạch có công suất từ 3-30W Từ sơ đồ khối với chức mịn muốn, tơi sử dụng phần mềm Proteus 7.10 thiết kế nên sơ đồ nguyên lý sơ đồ mạch in điều khiển nhƣ sau: 30 Hình 2.8 Sơ đồ nguyên lý mạch điều khiển đèn LED 2.1.4 Thiết kế mạch in Dựa vào sơ đồ nguyên lý thiết kế sử dụng phần mềm ARES Professional để vẽ nên mạch in sau: Hình 2.9 Sơ đồ mạch in mạch điều khiển đèn LED 31 2.2 Chế tạo khảo sát 2.2.1 Chế tạo Do board mạch điều khiển có cấu tạo đơn giản nên việc thiết kế chế tạo đƣợc thực hiên theo phƣơng pháp thủ công Tôi sử dụng phần mềm thiết kế mạch Proteus để vẽ mạch nguyên lý mạch in Sau vẽ đƣợc in giấy decal, dùng bàn để in lên phíp đồng tiến hành cho ăn mịn phần khơng cần thiết dung dịch FeCl3 Sau tiến hành khoan lỗ hàn gắn linh kiện lên board Chúng ta đƣợc board mạch thật nhƣ hình: b a Mặt Mặt dƣới Hình 2.10 Board điều khiển LED đƣợc chế tạo Tôi tiến hành ghép nối khối module lại với để đƣợc một hệ thống điều khiển đèn hồn chình nhƣ hình: Hình 2.11 Bộ điều khiển đèn LED hoàn chỉnh 32 2.2.2 Đo đạc khảo sát a Khảo sát chế độ điều khiển thời gian thực a) Đêm b) Ngày Hình 2.12 Kết khảo sát hoạt động điều khiển theo thời gian thực Khi bật chế độ điều khiển theo thời gian thực, kiểm tra thời điểm 12h25’ 19h50’ Thời điểm 19h50’(hình a) ban đêm đèn sáng Thời điểm 12h25’(hình b) ban ngày đèn tắt b Khảo sát chế độ điều khiển theo cảm biến ánh sáng a) Điều kiện tối b) Điệu kiện sáng Hình 2.13 Kết khảo sát hoạt động điều khiển theo cảm biến ánh sáng Khi bật chế độ điều khiển theo cảm biến ánh sáng xét điều kiện cƣờng độ ánh sáng yếu (hình a) lấy tay che cảm biến điều kiện ánh sáng mạnh (hình b) Tơi quan sát thấy điều kiện ánh sáng yếu đèn tự động bật sáng Còn điều kiện ánh sáng mạnh đèn tắt Qua nhiều lần kiểm tra khảo sát thực tế thấy điều khiển đèn hoạt động hiệu xác chế độ điều khiện môi trƣờng khác 33 c Khảo sát chế độ thời gian thực cảm biến chuyển động Các chế điều khiển theo cảm biến chuyển động đƣợc khảo sát Kết cho thấy điều khiển làm việc ổn đinh Cụ thể nhƣ sau: Bảng 2.1 Kết khảo sát chế dộ thời gian thực cảm biến chuyển động Ngày/đêm Ngày Đêm Cảm biến chuyển động Trạng thái đèn Có chuyển động Tắt Khơng có chuyển động Tắt Có chuyển động Khơng có chuyển động Sáng 100% Sáng yếu d Khảo sát chế độ cảm biến ánh sáng cảm biến chuyển động Các chế điều khiển theo cảm biến chuyển động cảm biến ánh sáng đƣợc khảo sát Kết cho thấy điều khiển làm việc ổn đinh Cụ thể nhƣ sau: Bảng 2.2 Kết khảo sát chế độ cảm biến chuyển động cảm biến thời gian Cảm biến ánh sáng Cƣờng độ ánh sáng yếu Cƣờng độ ánh sáng mạnh Cảm biến chuyển động Có chuyển động Khơng có chuyển động Trạng thái đèn Sáng 100% Sáng yếu Có chuyển động Tắt Khơng có chuyển động Tắt 2.3 Kết luận chƣơng Trong chƣơng trình bày cách rõ ràng cách thức để tiến hành xây dựng điều khiển đèn LED bao gồm bƣớc xây dựng sơ đồ khối, sơ đồ thuật toán đến thực chế tạo mạch Quá trình chế tạo, khảo sát cho thấy điều khiển hoạt động xác ổn định 34 KẾT LUẬN Hệ thống chiếu sáng thông minh lƣợng mặt trời giải pháp để tiết kiệm lƣợng sử dụng hiệu lƣợng mặt trời Ngoài việc sử dụng lƣợng mặt trời sống góp phần bảo vệ môi trƣờng Thiết kế điều khiển đèn LED sử dụng lƣợng mặt trời phần quan trọng mà đồ án sâu vào thiết kế chế tạo Tơi thiết kế, tính tốn chế tạo thành công điều khiển đèn LED sử dụng lƣợng mặt trời Bộ điều khiển hoạt xác, ổn định, đáp ứng đƣợc yêu cầu đề Tuy nhiên, thời gian thực đồ án có hạn nên hệ thống cịn số đặc điểm chƣa tối ƣu Ví dụ nhƣ đếm thời gian thực chƣa đƣợc kiểm tra kỹ nên điều khiển hoạt động sai lệch thời gian sau khoảng thời gian dài hoạt động Để điều khiển đèn LED sử dụng lƣợng mặt trời hoạt động cách ổn định, xác tối ƣu đề xuất ý tƣởng sau: - Hệ thống chiếu sáng thông minh lƣợng mặt trời kết hợp với lắp đặt thu phát wifi để phủ sóng mạng tồn thành phố - Hệ thống điều khiển kết nối với wifi GSM trả máy chủ thơng tin tình trạng hoạt động chiếu sáng Hy vọng phát triển nêu với ý tƣởng, góp ý khác thầy giáo, bạn đọc phát triển đề tài này, khắc phục nhũng hạn chế, tồn đồ án trở nên hồn chỉnh hơn, mang tính ứng dụng cao vào thực tế sống, phục vụ cho lợi ích ngƣời tƣơng lai 35 TÀI LIỆU THAM KHẢO Satwinder singh, Review of an energy effcient Smart Street Lighting System, International Journal of Research(IJR) Vol-1, Issus-5, June 2014,1018-1023 M Popa and A Marcu, A Solution for Street Lighting in Smart Cities, Carpathian Journal of Electronic and Computer Engineerin (2012) 91-96 T.M.Razykov, C.S Ferekides, D.Morel, E Stefanakor, H.S Ullal, H.M Upadhyaya, Solar photovoltaie electricity: Current status and future prospects, Solar Energy 85 (2011) 1580-1608 Golbal market outlook for photovoltaics until 2014, European Photovoltaic Industry, Assocciation Report, 2010 World energy outlook 2020 And Global Electricity Investment Challenges, World Energy Outlook 2002 Renewables Global Status Reprot 2006, REN21,2006 ON semiconductor, “Driving High Brightness LEDs” Margery Conner, “High Brightness LEDs”, EDN December 14, 2007 Dƣơng Ngọc Huyền cộng sự, Nghiên cứu, thiết kế chế tạo hệ thống chiếu sáng thông minh, tiết kiệm lượng sử dụng điốt phát quang (LED) nguồn cấp điện pin mặt trời, Đại học Bách Khoa Hà Nội, KC.05.07/11-15 Lê Trung Kiên, Trần Thanh Hải, "Sử dụng công nghệ truyền thông qua mạng không dây gsm/gprs quản lý vận hành trung tâm điều khiển chiếu sáng thị", Tự động hóa ngày nay, Số 109(10/2009) 36 PHỤ LỤC Chƣơng trình định nghĩa hàm điều khiển IC DS1307 /*================================================= * Ten Tep : DS1307.c * Tac Gia : NGUYEN VAN THO * Tom Tat : Dinh nghia cac ham dieu khien IC DS1307 =================================================*/ int8 bin2bcd(int8 binary_value) { int8 temp; int8 retval; temp = binary_value; retval = 0; while(true) { // Get the tens digit by doing multiple subtraction // of 10 from the binary value if(temp >= 10) { temp -= 10; retval += 0x10; } else // Get the ones digit by adding the remainder { retval += temp; break; } } return(retval); } int8 bcd2bin(int8 bcd_value) { 37 int8 temp; temp = bcd_value; // Shifting upper digit right by is same as multiplying by temp >>= 1; // Isolate the bits for the upper digit temp &= 0x78; return(temp + (temp >> 2) + (bcd_value & 0x0f)); } void ds1307_khoitao(void) { int8 giay = 0; int8 phut = 0; int8 gio = 0; int8 thu = 0; int8 = 0; int8 thang = 0; int8 nam = 0; i2c_start(); i2c_write(0xD0); // WR to RTC i2c_write(0x00); // REG i2c_start(); i2c_write(0xD1); // RD from RTC giay = bcd2bin(i2c_read() & 0x7f); phut = bcd2bin(i2c_read() & 0x7f); gio = bcd2bin(i2c_read() & 0x3f); thu = bcd2bin(i2c_read() & 0x7f); // REG = bcd2bin(i2c_read() & 0x3f); // REG thang = bcd2bin(i2c_read() & 0x1f); nam = bcd2bin(i2c_read(0)); // REG // REG i2c_stop(); delay_us(3); i2c_start(); i2c_write(0xD0); // WR to RTC 38 i2c_write(0x00); // REG i2c_write(bin2bcd(giay)); // Start oscillator with current "seconds value i2c_write(bin2bcd(phut)); // REG i2c_write(bin2bcd(gio)); // REG i2c_write(bin2bcd(thu)); // REG i2c_write(bin2bcd(ngay)); // REG i2c_write(bin2bcd(thang)); i2c_write(bin2bcd(nam)); // REG // REG i2c_start(); i2c_write(0xD0); // WR to RTC i2c_write(0x07); // Control Register i2c_write(0x90); // squarewave output pin 1Hz i2c_stop(); } void ds1307_ghi(int8 thu, int8 ngay, int8 thang, int8 nam, int8 gio, int8 phut, int8 giay) { giay &= 0x7F; gio &= 0x3F; i2c_start(); i2c_write(0xD0); // I2C write address i2c_write(0x00); // Start at REG - Seconds i2c_write(bin2bcd(giay)); // REG i2c_write(bin2bcd(phut)); // REG i2c_write(bin2bcd(gio)); // REG i2c_write(bin2bcd(thu)); // REG i2c_write(bin2bcd(ngay)); // REG i2c_write(bin2bcd(thang)); // REG i2c_write(bin2bcd(nam)); i2c_write(0x90); // REG // REG - 1Hz squarewave output pin i2c_stop(); } void ds1307_ngay(int8 &thu, int8 &ngay, int8 &thang, int8 &nam) { i2c_start(); 39 i2c_write(0xD0); i2c_write(0x03); // Start at REG - Day of week i2c_start(); i2c_write(0xD1); thu = bcd2bin(i2c_read() & 0x7f); // REG = bcd2bin(i2c_read() & 0x3f); // REG thang = bcd2bin(i2c_read() & 0x1f); nam = bcd2bin(i2c_read(0)); // REG // REG i2c_stop(); } void ds1307_gio(int8 &gio, int8 &phut, int8 &giay) { i2c_start(); i2c_write(0xD0); i2c_write(0x00); // Start at REG - Seconds i2c_start(); i2c_write(0xD1); giay = bcd2bin(i2c_read() & 0x7f); phut = bcd2bin(i2c_read() & 0x7f); gio = bcd2bin(i2c_read(0) & 0x3f); i2c_stop(); } Chƣơng trình cho vi điều khiển PIC 16F877A #INCLUDE #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #USE DELAY(CLOCK=20000000) #USE i2c(Master, sda=PIN_C4, scl=PIN_C3) #USE FAST_IO(B) #USE FAST_IO(D) #INCLUDE "DS1307.c" #byte PORTA = 0x05 #byte PORTB = 0x06 #byte PORTC = 0x07 #byte PORTD = 0x08 #byte PORTE = 0x09 40 #BIT SW0 = 0x06.0 //RB0 #BIT SW1 = 0x06.1 //RB1 #BIT SW2 = 0x06.2 //RB2 #BIT SW3 = 0x06.3 //RB3 #BIT BT0 = 0x08.0 #BIT BT1 = 0x08.1 #BIT BT2 = 0x08.2 #BIT BT3 = 0x08.3 #BIT DN0 = 0x08.4 #BIT DN1 = 0x08.5 #BIT DN2 = 0x08.6 #BIT DN3 = 0x08.7 #BIT CBCD = 0x06.4 //RB4 #BIT CBAS = 0x06.5 //RB5 VOID MAIN() { int8 thu, ngay, thang, nam, gio, phut, giay, i, chedo=0; set_tris_b(0xFF); //PORTB la ngo vao set_tris_d(0x0F); //PORTD la ngo output_low(PIN_C2); setup_timer_2(T2_DIV_BY_16,99,1); setup_ccp1(CCP_PWM); set_pwm1_duty(0); while(true) { for(i=0;i3 && thang9 if(gio>18||(gio==18&&phut>=45)||gio18h45' else // gio mua dong: thang 10->3 if(gio>17||(gio==17&&phut>=45)||gio