THIẾT KẾ VÀ THI CÔNG HỆ THỐNG TƯỚI NƯỚC THEO THỜI GIAN THỰC VÀ QUA TIN NHẮN Tên đề tài sinh viên thực hiện là: “Thiết kế – Thi công mạch tưới nước theo thời gian thực và điều khiển qua tin nhắn”, lý do chọn đề tài: Thứ nhất, giúp sinh viên hiểu rõ về cấu trúc cũng như ngôn ngữ lập trình cho dòng PIC do hang Micro Controller sản xuất và cụ thể trong để tài này là PIC16F887. Thứ hai, nắm rõ giao thức truyền dữ liệu I2C và Uart, hiểu được nguyên lý hoạt động của modul sim900 mini, và IC thời gian thực DS1307. Thứ ba, do nhu cầu cầu áp dụng công nghệ vào nông nghiệp ngày càng tăng, nên phải có những đề tài hướng đến nhằm đáp ứng nhu cầu phát triển của thế giới. Thứ tư, được kỹ năng cũng như kiến thức nền tảng để thực hiện các đồ án môn học tiếp theo.
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN MÔN HỌC THIẾT KẾ VÀ THI CÔNG HỆ THỐNG TƯỚI NƯỚC THEO THỜI GIAN THỰC VÀ QUA TIN NHẮN SVTH: MAI QUỐC THÁI MSSV: 13119137 Khố: 2013 Ngành: CƠNG NGHỆ KỸ THUẬT MÁY TÍNH GVHD: ThS NGUYỄN NGƠ LÂM Tp Hồ Chí Minh, tháng 06 năm 2016 CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên: Mai Quốc Thái MSSV: 13119137 Ngành: Cơng Nghệ Kỹ Thuật Máy Tính Tên đề tài: Thiết Kế Thi Công Hệ Thống Tưới Nước Theo Thời Gian Thực Qua Tin Nhắn Họ tên Giáo viên hướng dẫn: NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng 06 năm 2016 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: Mai Quốc Thái MSSV: 13119137 Ngành: Cơng Nghệ Kỹ Thuật Máy Tính Tên đề tài: Thiết Kế Thi Công Hệ Thống Tưới Nước Theo Thời Gian Thực Qua Tin Nhắn Họ tên Giáo viên phản biện: NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: .) Tp Hồ Chí Minh, ngày tháng 06 năm 2016 Giáo viên phản biện (Ký & ghi rõ họ tên) MỤC LỤC NỘI DUNG TRAN PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN I PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN .II MỤC LỤC III DANH SÁCH CÁC HÌNH ẢNH, BIỂU ĐỒ .V DANH MỤC CÁC BẢNG BIỂU VI DANH MỤC CÁC BẢNG BIỂU VI DANH MỤC CÁC TỪ VIẾT TẮT VI LỜI MỞ ĐẦU VII LỜI CẢM ƠN VIII CHƯƠNG 1: DẪN NHẬP 1.1 Đặt vấn đê 1.2 Lý chọn đê tài .1 1.3 Đối tượng nghiên cứu .1 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu vê vi điêu khiển 2.2 Vi điêu khiển PIC16F887 2.3 Giao tiếp với hệ thống GSM .6 2.3.1 Giới thiệu GSM GPRS SIM900A 2.3.2 Chuẩn giao tiếp UART .7 2.4 Hiển thị thời gian thực 2.4.1 Giới thiệu IC DS1307 2.4.2 Chuẩn giao tiếp I2C 12 2.4.2.1 Giới thiệu 12 2.4.2.2 Đặc điểm giao tiếp i2c 13 2.5 Khối thiết bị chấp hành 14 2.5.1 Hiển Thị .14 2.5.2 Động 16 2.5.3 Rơ-le 5V .16 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ 17 3.1 Sơ đồ khối hệ thống 17 3.1.1 Yêu cầu hệ thống .17 3.1.2 Sơ đồ khối 17 3.2 Nguyên lý hoạt động của hệ thống 17 3.3 Tính toán lựa chọn linh kiện 18 3.3.1 Khối nguồn 18 3.3.2 Khối hiển thị chấp hành 19 3.3.2.1 LCD hiển thị .19 3.3.2.2 Rơ-le 5V 20 3.3.3 Khối Sim 21 3.3.4 Khối thời gian thực 22 3.3.5 Khối vi xử lý trung tâm 22 Hình 3.8: Sơ đồ nguyên lý khối xử lý trung tâm .22 3.3.6 Sơ đồ nguyên lý chi tiết 23 3.4 Lập trình cho vi điêu khiển 25 3.4.1 Lưu đồ giải thuật hệ thống 25 3.4.2 Viết chương trình 26 3.4.2.1 Code chương trình main: 26 3.4.2.2 Code chương trình con: .27 CHƯƠNG 4: KẾT QUẢ NGHIÊN CỨU 38 4.1 Kết nghiên cứu 38 4.2 Thực nghiệm 39 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40 5.1 Kết luận 40 5.2 Hướng phát triển 40 TÀI LIỆU THAM KHẢO 41 PHỤ LỤC 42 DANH SÁCH CÁC HÌNH ẢNH, BIỂU ĐỒ Hình 2.1: Vi điều khiển PIC16F887 Hình 2.2: Sơ đồ chân PIC16F887 Hình 2.3: Modun Sim 900A mini Hình 2.4: Cấu trúc truyền liệu Uart Hình 2.5: Hai gói cấu tạo chip DS1307 Hình 2.6: Tổ chức nhớ DS1307 Hình 2.7: Tổ chức ghi thời gian Hình 2.8: Số BCD Hình 2.9: Bus I2C ngoại vi Hình 2.10: Kết nối thiết bị vào bus I2C chế độ chuẩn (Standard mode) chế độ nhanh (Fast mode) Hình 2.11: Mơ hình truyền nhận i2c Hình 2.12: Nút nhấn hình ảnh thực tế Hình 2.13: Hình dáng LCD Hình 2.14: Sơ đồ chân LCD Hình 2.15: Động Hình 2.16: Hình relay 5V thực tế Hình 3.1: Sơ đồ khối hệ thống Hình 3.2: Sơ đồ khối nguồn Hình 3.3: Sơ đồ nguyên lý khối nguồn Hình 3.4: Sơ đồ nguyên lý LCD Hình 3.5: Sơ đồ nguyên lý Rơ-le Hình 3.6: Sơ đồ nguyên lý khối sim Hình 3.7: Sơ đồ nguyên lý khối thời gian thực Hình 3.8: Sơ đồ nguyên lý khối xử lý trung tâm Hình 3.9: Sơ đồ nguyên lý Hình 3.10: Mạch in Hình 3.11: Lưu đồ giải thuật hệ thống Hình 4.1: Ảnh thực tế mạch DANH MỤC CÁC BẢNG BIỂU Bảng 2.1: Sơ đồ File ghi Bảng 2.2: Chức chân LCD Bảng 4.1: Khảo sát tuần hoạt động hệ thống DANH MỤC CÁC TỪ VIẾT TẮT LCD: Liquid Crystal Display PIC: Programmable Interface Controller GSM: Global System for Mobile Communications GPRS: General Packet Radio Service UART: Universal Asynchronous Receiver – Transmitter I2C: Inter - Intergrated Circuit SDA: Serial Data SCL: Serial Clock LỜI MỞ ĐẦU Hiện nay, việc phát triển giới điện tử số phát triển cách nhanh chóng mạnh mẽ nên việc đo lường dùng điện tử số sẽ đáp ứng độ xác cao điện tử số cụ thể vi xử lí ngày trở nên đa dạng ứng dụng cũng gần gũi với Từ vi xử lý Intel 4004 sản xuất công ty Intel vào năm 1971 đến ngành công nghiệp vi xử lí đã có bước tiến vượt bậc đa dạng với nhiều loại như: 8051, PIC, AVR, ARM… Cùng với phát triển đa dạng ngành công nghiệp vi xử lí nên tài nguyên vi xử lý cũng nâng cao để đáp ứng ứng dụng khác thực tế Ứng dụng vi điều khiển ứng dụng nhiều lĩnh vực Không thể phủ nhận sống xung quanh tồn vi điều khiển Nước ta có ngành nơng nghiệp phát triển, nhiên ứng dụng công nghệ cao vào nông nghiệp nước ta mới, cần áp dụng điều khiển tự động nghành nông nghiệp nước ta tăng chất lượng cũng lợi ích kinh tế Trong nơng nghiệp việc tưới tiêu quan trọng nên hầu hết người nông dân phải tốn nhiều công sức thời gian cho việc tưới tiêu, vấn đề đặt để cắt giảm thời gian tạo tiện nghi khâu tưới tiêu cho người nơng dân quan tâm Vì vậy, sinh viên chọn đề tài xây dựng hệ thống tưới nước điều khiển thông qua thời gian thực tinh nhắn để hiểu biết thêm vi xử lí đồng thời tăng tính tăng tính tiện nghi chất lượng nghành nông nghiệp thông qua việc tưới tiêu Mặc dù sinh viên thực đề tài đã cố gắng hoàn thành nhiệm vụ đề tài đặt thời hạn chắn sẽ không tránh khỏi thiếu sót, mong Thầy/ Cơ bạn sinh viên thông cảm Sinh viên thực đề tài mong nhận ý kiến Thầy/ Cô bạn sinh viên TP HCM, Ngày 21 Tháng 06 Năm 2016 Sinh viên thực hiện đê tài Mai Quốc Thái LỜI CẢM ƠN Lời đầu tiên, sinh viên thực đề tài xin phép chân thành gửi lời cảm ơn đến thầy giáo Nguyễn Ngô Lâm, giáo viên hướng dẫn đề tài đã định hướng trao đổi kinh nghiệm quý báu để sinh viên thực nội dung đề tài cách hoàn chỉnh Sinh viên thực đề tài cũng xin trân trọng cảm ơn Thầy (Cô) trường Đại Học Sư Phạm Kỹ Thuật TPHCM nói chung Thầy (Cơ) khoa Điện – Điện Tử nói riêng đã tận tình truyền đạt kiến thức tảng để sinh viên thực hoàn thành tốt đề tài TP HCM, Ngày 21 Tháng 06 Năm 2016 Sinh viên thực hiện đê tài Mai Quốc Thái Đồ án CHƯƠNG 1: DẪN NHẬP 1.1 Đặt vấn đê Hiện nay, vấn đề áp dụng công nghệ cao vào nông nghiệp quan tâm, yêu cầu đặt chế tạo sản phẩm có tính tự động tiện ích, mà quan trọng cần hướng đến hệ thống cung cấp nước thơng minh, cần chế tạo hệ thống để đảm nhiệm cơng việc cung cấp cách tiện lợi xác, tiết kiệm thời gian công sức cho người nơng dân Hệ thống cần thiết cho q trình thúc đẩy áp dụng công nghệ cao nông nghiệp, hệ thống tưới nước tự động thông qua thời gian thực, cũng bật tắt hệ thống qua tin nhắn, mang lại tiện ích dù đâu 1.2 Lý chọn đê tài Tên đề tài sinh viên thực là: “Thiết kế – Thi công mạch tưới nước theo thời gian thực và điêu khiển qua tin nhắn”, lý chọn đề tài: Thứ nhất, giúp sinh viên hiểu rõ cấu trúc cũng ngơn ngữ lập trình cho dịng PIC hang Micro Controller sản xuất cụ thể để tài PIC16F887 Thứ hai, nắm rõ giao thức truyền liệu I2C Uart, hiểu nguyên lý hoạt động modul sim900 mini, IC thời gian thực DS1307 Thứ ba, nhu cầu cầu áp dụng công nghệ vào nông nghiệp ngày tăng, nên phải có đề tài hướng đến nhằm đáp ứng nhu cầu phát triển giới Thứ tư, kỹ cũng kiến thức tảng để thực đồ án môn học 1.3 Đối tượng nghiên cứu Đề tài nghiên cứu tập trung điều khiển hệ thống cung cấp nước cho trồng thông qua thời gian thực nhằm tối đa hóa xác tưới tiêu đời sống, điều khiển qua tin nhắn dùng modul sim900 nhằm đảm bảo tính tiện nghi cho người sử dụng điều khiển hệ thống dù đâu miễn có song điện thoại Trang Đồ án 4.2 Thực nghiệm Hình 4.1: Ảnh thực tế mạch Đường dẫn video chạy thử nghiệm: https://youtu.be/7jj6u0lXDCA Trang 62 Đồ án CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Qua thời gian 15 tuần nghiên cứu hoàn thiện sinh viên đã hoàn thành tiến độ dự kiến đề tài, với hướng dẫn trợ giúp tận tình từ thầy trường Đại Học Sư Phạm Kỹ Thuật nói chung thầy khoa điện nói riêng, đặc biệt thầy Nguyễn Ngô Lâm trực tiếp hướng dẫn đề tài Đã áp dụng kiến thức học vi điều khiển vào đồ án, nắm rõ phương thức truyền liệu uart giao tiếp mô dun sim, chuẩn i2c áp dụng vào giao tiếp với chip DS1307 Hệ thống sẵn sàn áp dụng vào mơ hình nơng nghiệp vừa nhỏ tiết kiệm thời gian nâng cao tiện ích cho người trồng Ưu điểm: Hệ thống sẽ tưới theo thời gian cố định đã đặt trước không cần cài đặt lại Các thông số thiết lập từ trước sẽ không có nguồn Có tích hợp quang trở bật tắt đèn LCD giúp tiết kiệm điện Cách ly tốt nguồn máy bơm với nguồn khối xử lý Khuyết điểm: Hệ thống chỉ hẹn trước khung định ngày Chưa xử lý nhận tín tin nhắn trả điện thoại cho người dùng 5.2 Hướng phát triển Sẽ thiết kế nâng cấp để hệ thống hiệu chỉnh tưới nhiều khoảng thời gian ngày, kết hợp với cảm biến thu thập liệu nhiệt độ, độ ẩm tiến hành tưới tự động Nếu yêu cầu bảo vệ khu vườn cao lắp đặt cảm biến cảnh báo đột nhập sau tiến hành thông báo qua tin nhắn cảnh báo chỗ thông qua loa báo nhằm nâng cao khoa học kỹ thuật nông nghiệp áp dụng công nghệ cao Trang 63 Đồ án TÀI LIỆU THAM KHẢO Tiếng Việt [1] [2] Nguyễn Đình Phú (8/2015), “Giáo trình vi xử lý”, Nhà xuất ĐH Sư Phạm Kỹ Thuật, Tp HCM, Việt Nam Nguyễn Đình Phú (2015), “Giáo trình vi xử lý nâng cao”, Nhà xuất ĐH Sư Phạm Kỹ Thuật, Tp HCM, Việt Nam Tiếng Anh [3] MICROCHIP-PIC 16F88X DATASHEET, 1997 [4] GMS_MANUAL_SIM900_Hardware Design_V2.0.pdf Trang 64 Đồ án PHỤ LỤC #INCLUDE #INCLUDE #INCLUDE #INCLUDE Khai báo thư viện #DEFINE UP PIN_B1 #DEFINE DW PIN_B0 #DEFINE MODE PIN_B2 #DEFINE MOTOR PIN_B3 Khai báo chân vi điều khiển #USE RS232 (Baud = 9600, XMIT = PIN_C6,RCV = PIN_C7) char c=0x00,c1=0X00; UNSIGNED INT8 CH_S,DV_S,CLEAR,DV_M,CH_M,DV_H,CH_H; UNSIGNED INT8 TT,PHUTHEN,GIOHEN,Y,I; BYTE GIAY,PHUT,GIO,TIME; unsigned INT8 TTMO=0; #INT_RDA void NHAN_TIN() { c=getc(); if(c=='O'){c1=c;} if(c1=='O'&& c=='n'){TTMO=1;} if(c1=='O'&& c=='f'){TTMO=0;} } VOID PHIM_MODE() { IF(INPUT(MODE)==0) { DELAY_MS(10); IF(INPUT(MODE)==0) { TT++; IF(TT==7) TT=0; } } WHILE(INPUT(MODE)==0); } Thiết lập hàm xử lý uart Khai báo biến dùng chương trình Hàm ngắt nhận liệu từ mô đun sim900 Nếu liệu “On” cho biến TTSIM=1 ngược lại Hàm quét trạng thái nút nhấn MODE Mode tăng dần từ 0-6 quay Trang 65 Đồ án VOID MOTOR_SIM() { IF(TTMO==1) { output_HIGH(MOTOR); } IF(TTMO==0) { output_LOW(MOTOR); } } VOID GM_LCD(INT8 GIAY,INT8 PHUT,INT8 GIO) { DV_S = GIAY%10 + 0X30; CH_S = GIAY/10 + 0X30; DV_M = PHUT%10 + 0X30; CH_M = PHUT/10 + 0X30; DV_H = GIO%10 + 0X30; CH_H = GIO/10 + 0X30; } VOID MO_TRUC_TIEP() { IF(INPUT(UP)==0) { DELAY_MS(2000); IF(INPUT(UP)==0) { TTMO++; IF(TTMO==2)TTMO=0; IF(TTMO==1) { output_HIGH(MOTOR); } Hàm kiểm tra trạng thái biến TTSIM để bật tắt hệ thống tưới Nếu TTSIM=1 hệ thống tưới ngược lại không tưới Hàm giải mã biến để hiển thị lên LCD Hàm nhấn phím up giây sẽ tăng biến TTMO lên 1, biến TTMO có trạng thái IF(TTMO==0) { output_LOW(MOTOR); } } WHILE(INPUT(UP)==0); } } Trang 66 Đồ án VOID GIOI_THIEU() { LCD_COMMAND(CLEAR_DISPLAY); LCD_COMMAND(0X80); LCD_DATA("SV:MAI QUOC THAI"); LCD_COMMAND(0XC0); LCD_DATA(" MSSV: 13119137 "); DELAY_MS(3000); LCD_COMMAND(CLEAR_DISPLAY); } VOID HIEN_THI() { ds1307_get_time(GIO,PHUT,GIAY); SWITCH (TT){ CASE 0: { GM_LCD(GIAY,PHUT,GIO); //HIEN THI HANG LCD_COMMAND(0X80); LCD_DATA("IN TIME "); LCD_COMMAND(0X88); LCD_DATA(CH_H);//9 LCD_DATA(DV_H);//10 LCD_DATA(":");//11 LCD_DATA(CH_M);//12 LCD_DATA(DV_M);//13 LCD_DATA(":");//14 LCD_DATA(CH_S);//15 LCD_DATA(DV_S);//16 LCD_COMMAND(0XC0); IF(TTMO==1) { LCD_COMMAND(0XC0); LCD_DATA("WATERING PLANTS!"); } ELSE { IF(Y==0) LCD_DATA("SMART WATER PUMP"); ELSE { Hàm xuất thông tin MSSV Hàm hiển thị theo biến TT (có giải thích rõ phần thiết kế phần mềm) Trang 67 Đồ án LCD_DATA("THE TIMER IS SET"); LCD_DATA(0XEF); } CLEAR=1; } } BREAK; CASE 1: { GM_LCD(GIAY,PHUT,GIO); IF(CLEAR==1) {LCD_COMMAND(CLEAR_DISPLAY); CLEAR=0;} LCD_COMMAND(0X80); LCD_DATA("SETTING "); LCD_COMMAND(0X88); LCD_DATA(CH_H);//9 LCD_DATA(DV_H);//10 LCD_DATA(":");//11 LCD_DATA(CH_M);//12 LCD_DATA(DV_M);//13 DELAY_MS(100); LCD_COMMAND(0X8B); LCD_DATA(" ");//12 LCD_DATA(" ");//13 DELAY_MS(100); LCD_DATA(":");//14 LCD_DATA(CH_S);//15 LCD_DATA(DV_S);//16 } BREAK; CASE 2: { GM_LCD(GIAY,PHUT,GIO); LCD_COMMAND(0X80); LCD_DATA("SETTING "); LCD_COMMAND(0X88); LCD_DATA(CH_H);//9 LCD_DATA(DV_H);//10 DELAY_MS(100); LCD_COMMAND(0X88); LCD_DATA(" ");//12 Trang 68 Đồ án LCD_DATA(" ");//13 DELAY_MS(100); LCD_DATA(":");//11 LCD_DATA(CH_M);//12 LCD_DATA(DV_M);//13 LCD_DATA(":");//14 LCD_DATA(CH_S);//15 LCD_DATA(DV_S);//16 CLEAR=1; } BREAK; CASE 3: { GM_LCD(0,PHUTHEN,GIOHEN); IF(CLEAR==1) {LCD_COMMAND(CLEAR_DISPLAY);} CLEAR=0; LCD_COMMAND(0X80); LCD_DATA("TIMER "); LCD_COMMAND(0X88); LCD_DATA(CH_H);//9 LCD_DATA(DV_H);//10 LCD_DATA(":");//11 LCD_DATA(CH_M);//12 LCD_DATA(DV_M);//13 DELAY_MS(100); LCD_COMMAND(0X8B); LCD_DATA(" ");//12 LCD_DATA(" ");//13 DELAY_MS(100); LCD_DATA(":");//14 LCD_DATA(CH_S);//15 LCD_DATA(DV_S);//16 } BREAK; CASE 4: { GM_LCD(0,PHUTHEN,GIOHEN); LCD_COMMAND(0X80); LCD_DATA("TIMER "); LCD_COMMAND(0X88); Trang 69 Đồ án LCD_DATA(CH_H);//9 LCD_DATA(DV_H);//10 DELAY_MS(100); LCD_COMMAND(0X88); LCD_DATA(" ");//12 LCD_DATA(" ");//13 DELAY_MS(100); LCD_DATA(":");//11 LCD_DATA(CH_M);//12 LCD_DATA(DV_M);//13 LCD_DATA(":");//14 LCD_DATA(CH_S);//15 LCD_DATA(DV_S);//16 LCD_COMMAND(0X80); CLEAR=1; } BREAK; CASE 5: { IF(CLEAR==1) {LCD_COMMAND(CLEAR_DISPLAY);} CLEAR=0; LCD_COMMAND(0X80); LCD_DATA("TG TUOI BAO LAU?"); LCD_COMMAND(0XC0); LCD_DATA(" "); LCD_DATA(TIME/10+0X30); LCD_DATA(TIME%10+0X30); DELAY_MS(100); LCD_COMMAND(0XC5); LCD_DATA(" "); LCD_DATA(" "); DELAY_MS(100); LCD_DATA(" PHUT "); } BREAK; CASE 6: { LCD_COMMAND(0X80); LCD_DATA("XAC NHAN HEN GIO"); LCD_COMMAND(0XC0); LCD_DATA("UP-CO OR MODE-KO"); Trang 70 Đồ án IF(INPUT(UP)==0) { Y=1; write_eeprom (0X03,Y); TT=0; } ELSE Y=0; write_eeprom (0X03,Y); DELAY_MS(50); } BREAK; } } VOID PHIM_UP() { IF(INPUT(UP)==0){ SWITCH (TT){ CASE 0: { MO_TRUC_TIEP(); } BREAK; CASE 1: { ds1307_get_time(GIO,PHUT,GIAY); PHUT++; IF(PHUT==60)PHUT=0; ds1307_set_date_time(17,1,1,1,GIO,PHUT,GIAY); DELAY_MS(50); } BREAK; CASE 2: { ds1307_get_time(GIO,PHUT,GIAY); GIO++; IF(GIO==24)GIO=0; Hàm quét nút nhấn phím up, có nhấn up sẽ so với điều kiện TT mà tăng biến tương ứng ds1307_set_date_time(17,1,1,1,GIO,PHUT,GIAY); DELAY_MS(50); o Khi biến TT=0 có nghĩa } hình hiển thị mặc BREAK; Trang 71 Đồ án CASE 3: { PHUTHEN++; IF(PHUTHEN==59) PHUTHEN=0; write_eeprom (0X01,PHUTHEN); DELAY_MS(50); } BREAK; CASE 4: { GIOHEN++; IF(GIOHEN==24) GIOHEN=0; write_eeprom (0X02,GIOHEN); DELAY_MS(50); } BREAK; CASE 5: { TIME++; IF(TIME==60) TIME=1; write_eeprom (0X04,TIME); } BREAK; } } } VOID PHIM_DW() { IF(INPUT(DW)==0){ SWITCH (TT){ CASE 0: { GIOI_THIEU(); } BREAK; CASE 1: { ds1307_get_time(GIO,PHUT,GIAY); IF(PHUT==0) PHUT=59; ELSE PHUT ; định, nhấn phím Up giữ 2s hệ thống bơm nước sẽ hoạt, hệ thống mở hệ thống bơm nước sẽ ngưng hoạt động Nếu nhấn phím Down hình sẽ hiển thị thơng tin gồm tên mã số sinh viên giây trở hình mặc định o Khi biến TT=1 nhấn phím Up hệ thống sẽ tăng biến PHUT lên đơn vị biến PHUT=59 tiếp tục nhấn phím Up hệ thống sẽ quay Nếu nhấn phím Down hệ thống sẽ giảm biến PHUT đơn vị biến PHUT=0 tiếp tục nhấn phím Up biến PHUT=59 o Khi biến TT=2 nhấn phím Up hệ thống sẽ tăng biến GIO lên đơn vị biến GIO=23 tiếp tục nhấn phím Up hệ thống sẽ quay Nếu nhấn phím Down hệ thống sẽ giảm biến GIO đơn vị biến GIO=0 tiếp tục nhấn phím Up ds1307_set_date_time(17,1,1,1,GIO,PHUT,GIAY); biến GIO=23 DELAY_MS(50); Trang 72 Đồ án } BREAK; CASE 2: { ds1307_get_time(GIO,PHUT,GIAY); IF (GIO==0) GIO=23; ELSE GIO ; o Khi biến TT=3 nhấn phím Up hệ thống sẽ tăng biến PHUTHEN lên đơn vị biến PHUTHEN=59 tiếp tục nhấn phím Up hệ thống sẽ quay ds1307_set_date_time(17,1,1,1,GIO,PHUT,GIAY); Nếu nhấn phím Down hệ DELAY_MS(50); thống sẽ giảm biến } PHUTHEN đơn vị BREAK; CASE 3: biến PHUTHEN=0 { tiếp tục nhấn phím Up IF(PHUTHEN==0) PHUTHEN=59; biến PHUTHEN=59 ELSE PHUTHEN ; write_eeprom (0X01,PHUTHEN); DELAY_MS(50); o Khi biến TT=4 nhấn } phím Up hệ thống sẽ tăng BREAK; biến GIOHEN lên đơn CASE 4: vị biến GIOHEN=23 { tiếp tục nhấn phím IF(GIOHEN==0) GIOHEN=23; Up hệ thống sẽ quay ELSE GIOHEN ; write_eeprom (0X02,GIOHEN);//GIOHEN Nếu nhấn phím Down hệ DELAY_MS(50); thống sẽ giảm biến GIOHEN } đơn vị biến CASE 5: GIOHEN=0 tiếp tục { nhấn phím Up biến TIME ; GIOHEN=23 IF(TIME==0) TIME=59; write_eeprom (0X04,TIME); } o Khi biến TT=5 nhấn BREAK; phím Up hệ thống sẽ tăng } biến TIME lên đơn vị } } biến TIME=59 VOID HEN_GIO() tiếp tục nhấn phím Up { hệ thống sẽ quay Nếu IF((GIO==GIOHEN)&& nhấn phím Down hệ thống (PHUT==PHUTHEN)&&(Y==1)) sẽ giảm biến TIME đơn { vị biến TIME=0 LCD_COMMAND(0X80); Trang 73 Đồ án LCD_DATA("DANG TUOI "); LCD_DATA(TIME/10 + 0X30); LCD_DATA(TIME%10 + 0X30); LCD_DATA("PHUT"); OUTPUT_HIGH(MOTOR); LCD_COMMAND(0XC0); LCD_DATA("UP OR DW TO SKIP"); FOR(I=0;I