1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế mạch đồng hồ số dùng VDK 16f887

81 11 0

Đ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

i MỤC LỤC DANH MỤC CÁC HÌNH ẢNH iii DANH MỤC CÁC BẢNG BIỂU v DANH MỤC CÁC TỪ VIẾT TẮT vi Chương 1 TỔNG QUAN 1 1 1 Đặt vấn đề 1 1 2 Mục tiêu đề tài 1 1 3 Đối tượng và phạm vi nghiên cứu 1 1 4 Bố cục đề.

MỤC LỤC DANH MỤC CÁC HÌNH ẢNH iii DANH MỤC CÁC BẢNG BIỂU v DANH MỤC CÁC TỪ VIẾT TẮT vi Chương 1: TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu đề tài 1.3 Đối tượng phạm vi nghiên cứu 1.4 Bố cục đề tài Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu vi điều khiển PIC16F887 2.2 Giới thiệu IC thời gian thực DS1307 2.2.1 Giới thiệu chuẩn truyền thông I2C 2.2.2 Giới thiệu IC thời gian thực DS1307 2.3 Giới thiệu LCD 20x4 2.4 Giới thiệu cảm biến nhiệt độ, độ ẩm DHT11 10 2.4.1 Giới thiệu chuẩn giao tiếp 1-wire 10 2.4.2 Giới thiệu IC nhiệt độ, độ ẩm DHT11 13 Chương 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 15 3.1 Yêu cầu hệ thống 15 3.2 Phương án thiết kế 15 3.3 Sơ đồ khối 16 3.4 Thiết kế phần cứng 17 3.4.1 Khối cảm biến nhiệt độ, độ ẩm 17 3.4.2 Khối thời gian thực 18 3.4.3 Khối hiển thị 19 3.4.4 Khối báo hiệu 20 3.4.5 Khối lựa chọn chức 23 i 3.4.6 Khối xử lý trung tâm 23 3.4.7 Khối nguồn 24 3.4.7 Sơ đồ nguyên lý toàn hệ thống 27 3.5 Lưu đồ giải thuật 27 3.5.1 Giải thuật chương trình 27 3.5.2 Chương trình nut_menu() 30 3.5.3 Chương trình nut_up() nut_dw() 33 3.5.4 Chương trình nut_right() 36 3.5.5 Chương trình nut_left() 40 3.5.6 Chương trình ss_bthuc() 42 3.5.7 Chương trình bao_thuc() 44 Chương 4: KẾT QUẢ THỰC HIỆN 46 4.1 Mơ hình phần cứng 46 4.2 Giao diện 48 4.3 Giao diện chọn chức 49 4.4 Giao diện chỉnh thứ ngày tháng năm phút giây 49 4.5 Giao diện báo thức 52 4.6 Báo thức 55 Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57 5.1 Kết luận 57 5.2 Hướng phát triển 57 TÀI LIỆU THAM KHẢO 58 ii DANH MỤC CÁC HÌNH ẢNH Hình 1: Vi điều khiển PIC 16F887 Hình 2: sơ đồ chân PIC16F887 Hình 3: mơ hình giao tiếp i2c Hình 4: Khung truyền liệu I2C Hình 5: DS1307 sơ đồ chân Hình 6: tổ chức nhớ DS1307 Hình 7: LCD 2004 Hình 8: Mơ hình chuẩn giao tiếp 1-wire 11 Hình 9: trạng thái 1-wire 12 Hình 10: cảm biến nhiệt độ, độ ẩm DHT11 14 Hình 1: sơ đồ khối mạch đồng hồ số 16 Hình 2: sơ đồ nguyên lý giao tiếp DHT11 với PIC16F887 18 Hình 3: sơ đồ nguyên lý giao tiếp DS1307 với PIC16F887 18 Hình 4: sơ đồ nguyên lý LCD với PIC16F887 19 Hình 5: sơ đồi nguyên lý khối báo hiệu 21 Hình 6: sơ đồ ngyên lý khối báo hiệu hoàn chỉnh 22 Hình 7: sơ đồ nguyên lý khối lựa chọn chức 23 Hình 8: sơ đồ nguyên lý khối xử lý trung tâm 24 Hình 9: sơ đồ khối mạch nguồn ổn áp 25 Hình 10: sơ đồ nguyên lý mạch nguồn ổn áp 26 Hình 11: sơ đồ nguyên lý hoàn chỉnh mạch nguồn ổn áp 26 Hình 12: sơ đồ nguyên lý mạch đồng hồ số 27 Hình 13: lưu đồ chương trình 28 Hình 14: lưu đồ chương trình nut_menu() 31 Hình 15: lưu đồ chương trình nut_up() nut_dw() 33 Hình 16: lưu đồ chương trình chinh_tang() 34 Hình 17: lưu đồ chương trình chinh_giam() 35 Hình 18: lưu đồ chương trình nut_right() 36 Hình 19: lưu đồ chương trình hienthi_right() 38 Hình 20: lưu đồ chương trình nut_left() 40 Hình 21: lưu đồ chương trình hienthi_left() 41 Hình 22: lưu đồ giải thuật chương trình ss_bthuc() 42 Hình 23: chương trình bao_thuc() 44 - iii Hình 1: mạch in vẽ phần mềm proteus 46 Hình 2: mạch in sau thi công 47 Hình 3: giao diện menu 48 Hình 4: giao diện menu chọn chức 49 Hình 5: giao diện menu chỉnh thứ ngày tháng năm 50 Hình 6: chọn chức chỉnh ngày 51 Hình 7: chỉnh tăng 51 Hình 8: chỉnh giảm 51 Hình 9: thay đổi sang chỉnh tháng 52 Hình 10: menu danh sách báo thức 52 Hình 11: menu chọn chức báo thức 53 Hình 12: tắt báo thức 20:12 53 Hình 13: báo thức 20:12 bị bỏ qua 54 Hình 14: menu chỉnh báo thức 54 Hình 15: cập nhật thời gian sau chỉnh 55 Hình 16: đến báo thức buzzer kêu đèn led nhấp nháy 55 Hình 17: led nhấp nháy tắt 56 Hình 18: bấm dừng nút menu 56 iv DANH MỤC CÁC BẢNG BIỂU Bảng 1: chân LCD 2004 10 Bảng 2: giá trị thời gian quy ước 1-wire 13 Bảng 1: dòng tiêu thụ linh kiện 25 Bảng 2: giao diện sử dụng mạch đồng hồ số 30 v STT DANH MỤC CÁC TỪ VIẾT TẮT VIẾT TẮT VIẾT ĐẦY ĐỦ IC Integrated Circuit LCD Liquid Crystal Display ROM Read Only Memory RAM Random Access Memory RAM Random Access Memory CGRAM Character Generator RAM I2C Inter – Integrated Circuit CGRAM Character Generator RAM RISC Reduced Instructions Set Computer 10 EEPROM Electrically Erasable Programmable Read-Only Memory 11 SRAM Static random-access memory 12 ADC Analog-to-Digital Converter 13 SCL Serial Clock Line 14 SDA Serial Data Line 15 ACK/NACK Acknowledged/Not Acknowedged 16 IoT Internet Of Things vi Chương 1: TỔNG QUAN 1.1 Đặt vấn đề Ngày với phát triển khoa học kỹ thuật, hệ thống điều khiển dần tự động hóa Khi kỹ thuật vi xử lý, vi mạch số ứng dụng hệ thống khí cũ dần thay Với ưu điểm tiện lợi, giá thành rẻ có khả lập trình cao với nhiều tính mới, hệ thống ưa chuộng sử dụng rộng rãi Từ mong muốn tạo sản phẩm tự động hóa gần gũi với sống người, người thực chọn đề tài “Mạch đồng hồ số” 1.2 Mục tiêu đề tài Áp dụng kiến thức học từ môn vi xử lý, lập trình C, điện tử để thiết kế sản phẩm có tính ứng dụng thực tế, cụ thể thiết kế mạch đồng hồ số sử dụng vi điều khiển 16F887 1.3 Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu loại vi điều khiển, module LCD, module cảm biến nhiệt độ, độ ẩm, IC thời gian thực chuẩn giao tiếp truyền thông 1-wire, I2C Phạm vi nghiên cứu thiết kế mạch đồng hồ số hiển thị ngày tháng năm, phút giây nhiệt độ, độ ẩm hình LCD, cài đặt thời gian ngày tháng Đồng hồ báo thức nhiều lần ngày thời gian báo thức cố định nhiều ngày nên người dùng không cần cài đặt lại ngày Đồng hồ hiển thị giao diện LCD, sử dụng Menu tùy chọn chức giúp giao tiếp với người dùng cách trực quan 1.4 Bố cục đề tài Đề tài trình bày chương: - Chương 1: Tổng quan Trong chương trình bày lý chọn đề tài, mục tiêu phạm vi nghiên cứu đề tài - Chương 2: Cơ sở lý thuyết Giới thiệu vi điều khiển 16F887, IC DS1307, cảm biến DHT11, LCD chuẩn truyền thông I2C - Chương 3: Thiết kế hệ thống Trình bày yêu cầu đặt hệ thống, xây dựng sơ đồ đặc tả, sơ đồ khối thiết kế sơ đồ nguyên lý lưu đồ giải thuật hệ thống - Chương 4: Kết thực Trình bày kết hình ảnh thực tế hệ thống - Chương 5: Kết luận hướng phát triển Đưa kết luận hướng phát triển đề tài Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu vi điều khiển PIC16F887 Vi điều khiển PIC16F887 thuộc họ PIC sản xuất hãng Microchip, vi điều khiển bit dựa kiến trúc RISC với nhớ chương trình lên đến 8KB Flash hỗ trợ việc ghi xóa lên đến 100 nghìn lần Ngồi PIC16F887 cịn có nhớ EEPROM 256B nhớ RAM lên đến 368B SRAM Các lệnh thực với thời gian chu kỳ máy, riêng cấu trúc rẽ nhánh chu kỳ máy Có thể sử dụng dao động ngoại dao động nội, ngõ vào dao động ngoại đến 20MHz Ở chế độ ngủ tiết kiệm cơng suất, dịng tiêu tán 50nA sử dụng nguồn 2V Dãy điện áp hoạt động rộng từ 2V đến 5,5V có mạch reset có điện Ngồi vi điều khiển có định thời Watchdog dùng dao động chip dùng reset sau khoảng thời gian Hình ảnh vi điều khiển PIC16f887 thực tế hình 2.1 Hình 1: Vi điều khiển PIC 16F887 PIC16F887 có cấu trúc 40 chân mơ tả hình 2.2 bên Hình 2: sơ đồ chân PIC16F887 Với 33 chân IO chia làm Port A, B, C, D, E, Port có chân (từ đến 7) nhiên Port E có chân từ RE0 đến RE3 Mỗi chân vi điều khiển có nhiều tên, sử dụng cho nhiều chức khác để giao tiếp với ngoại vi tùy theo nhu cầu người sử dụng Một số chức ngoại vi kể đến như: - PIC16F887 có 14 kênh ADC với độ phân giải kênh 10bit sử dụng chân analog làm ngõ vào (từ AN0 đến AN13) - Timer0 sử dụng 8bit hoạt động định thời đếm xung ngoại lấy từ chân T0CKI có chia trước lập trình - Timer1 sử dụng 16bit để định thời đếm xung ngoại từ chân T1CKI, có ngõ vào cổng timer1 để điều khiển timer1 đếm tín hiệu bên ngồi Có thể sử dụng dao động cơng suất thấp có tần số 32KHz từ chân T1OSO T1OSI - Timer2 có bit hoạt động định thời với ghi chu kỳ, sử dụng chia trước chia sau - Có module capture, compare điều chế xung PWM DO_am_n = 0; Display=&menu_1; lcd_command (0x40); FOR (i = 0; i < 64; i++) { lcd_data (lcd_ma_8doan[i]); } menu_0(); WHILE (true) { doc_time_tu_ds(); doc_bthuc_ds (); doc_du_lieu_dht11 () ; nut_mode(); if (ht==0) menu_0(); else if (ht==1){ nut_up(); nut_dw(); nut_left(); nut_right(); } if (tt_chinh==1) menu_ngay_thang_nam(0); else if (tt_chinh==2) menu_gio_phut_giay(0); ss_bthuc_min(); bao_thuc(); capnhat_bthuc_ds (); } } Mã nguồn chương trình xuly_btn: void (*Display) (unsigned int8 ); void hienthi_right(){ if (tt_mode==2) switch (sel) { case : Display=&menu_ngay_thang_nam; tt_chinh=1; break; case : Display=&menu_gio_phut_giay; tt_chinh=2; break; case : Display=&menu_bao_thuc; break; default : break; } else if (tt_mode==3) {Display=&menu_chon_bthuc; } else if (tt_mode==4) switch (sel) { case : Display=&menu_bao_thuc; //! tt_bt[tt_bthuc]=1; tt_chinh=4; tt_mode=2; break; case : Display=&menu_bao_thuc; //! tt_bt[tt_bthuc]=0; tt_chinh=5; tt_mode=2; break; case : Display=&menu_chinh_bthuc; tt_chinh=3; break; default : break; } } void hienthi_left(){ if (tt_mode==3) Display=&menu_chon_bthuc; else if (tt_mode==2) Display=&menu_bao_thuc; else if (tt_mode==1) Display=&menu_1; } unsigned int8 hieu_chinh_so_bcd_tang(UNSIGNED int8 x ) { UNSIGNED int8 y; y = x; x = x&0x0f; IF (x == 0x0a) y = y + 6; RETURN (y) ; } unsigned int8 hieu_chinh_so_bcd_giam(UNSIGNED int8 x ) { UNSIGNED int8 y; y = x; x = x&0x0f; IF (x == 0x0f) y = y - 6; RETURN (y) ; } void chinh_tang (){ SWITCH (giatri_mod) { case 1: IF (ds_giay == 0x59) ds_giay = 0; ELSE { ds_giay++; ds_giay = hieu_chinh_so_bcd_tang (ds_giay) ; } cap_nhat_time(); BREAK; case 2: IF (ds_phut == 0x59) ds_phut = 0; ELSE { ds_phut++; ds_phut = hieu_chinh_so_bcd_tang (ds_phut) ; } cap_nhat_time(); BREAK; case 3: IF (ds_gio == 0x23) ds_gio = 0; ELSE { ds_gio++; ds_gio = hieu_chinh_so_bcd_tang (ds_gio) ; } cap_nhat_time(); BREAK; case 4: IF (ds_ngay == 0x31) ds_ngay = 1; ELSE { ds_ngay++; ds_ngay = hieu_chinh_so_bcd_tang (ds_ngay) ; } cap_nhat_time(); BREAK; case 5: IF (ds_thang == 0x12) ds_thang = 1; ELSE { ds_thang++; ds_thang = hieu_chinh_so_bcd_tang (ds_thang) ; } cap_nhat_time(); BREAK; case 6: IF (ds_nam == 0x99) ds_nam = 0; ELSE { ds_nam++; ds_nam = hieu_chinh_so_bcd_tang (ds_nam) ; } cap_nhat_time(); BREAK; case 7: IF (ds_thu == 0x07) ds_thu = 0x01; ELSE { ds_thu++; ds_thu = hieu_chinh_so_bcd_tang (ds_thu) ; } cap_nhat_time(); BREAK; case 9: IF (bthuc_p[tt_bthuc] == 0x59) bthuc_p[tt_bthuc] = 0; //! //! ELSE { bthuc_p[tt_bthuc]++; bthuc_p[tt_bthuc] = hieu_chinh_so_bcd_tang (bthuc_p[tt_bthuc]) ; } capnhat_bthuc_ds (); BREAK; case 10: IF (bthuc_g[tt_bthuc] == 0x23) bthuc_g[tt_bthuc] = 0; ELSE { bthuc_g[tt_bthuc]++; bthuc_g[tt_bthuc] = hieu_chinh_so_bcd_tang (bthuc_g[tt_bthuc]) ; } capnhat_bthuc_ds (); BREAK; DEFAULT: break; } } void chinh_giam (){ SWITCH (giatri_mod) { case 1: IF (ds_giay == 0) ds_giay = 0x59; ELSE { ds_giay ; ds_giay = hieu_chinh_so_bcd_giam (ds_giay) ; } cap_nhat_time() ; BREAK; case 2: IF (ds_phut == 0) ds_phut = 0x59; ELSE { ds_phut ; ds_phut = hieu_chinh_so_bcd_giam (ds_phut) ; } cap_nhat_time() ; BREAK; case 3: IF (ds_gio == 0) ds_gio = 0x23; ELSE { ds_gio ; ds_gio = hieu_chinh_so_bcd_giam (ds_gio) ; } cap_nhat_time() ; BREAK; case 4: IF (ds_ngay == 0) ds_ngay = 0x31; ELSE { ds_ngay ; ds_ngay = hieu_chinh_so_bcd_giam (ds_ngay) ; } cap_nhat_time() ; BREAK; case 5: IF (ds_thang == 1) ds_thang = 0x12; ELSE { ds_thang ; ds_thang = hieu_chinh_so_bcd_giam (ds_thang) ; } cap_nhat_time() ; BREAK; case 6: IF (ds_nam == 0) ds_nam = 0x99; ELSE { ds_nam ; ds_nam = hieu_chinh_so_bcd_giam (ds_nam) ; } cap_nhat_time() ; BREAK; case 7: IF (ds_thu == 1) ds_thu = 0x07; ELSE { ds_thu ; ds_thu = hieu_chinh_so_bcd_giam (ds_thu) ; } cap_nhat_time() ; BREAK; case 9: IF (bthuc_p[tt_bthuc] == 0) bthuc_p[tt_bthuc] = 0x59; ELSE { bthuc_p[tt_bthuc] ; bthuc_p[tt_bthuc] = hieu_chinh_so_bcd_giam (bthuc_p[tt_bthuc]) ; } capnhat_bthuc_ds (); BREAK; case 10: IF (bthuc_g[tt_bthuc] == 0) bthuc_g[tt_bthuc] = 0x23; //! ELSE { bthuc_g[tt_bthuc] ; bthuc_g[tt_bthuc] = hieu_chinh_so_bcd_giam (bthuc_g[tt_bthuc]) ; } capnhat_bthuc_ds (); BREAK; DEFAULT: break; //! } } void nut_mode(){ if (!input(menu)){ delay_us(20); if (!input(menu)){ lcd_clr(); sel=1; vt=1; tt_chinh=0; tt_bthuc=0; giatri_mod=0; ht=~ht; tt_mode=1; if (ht==1){ menu_1(sel); Display=&menu_1; } } while (!input(menu)); } } void nut_up(){ if (!input(up)){ delay_us(20); if (!input(up)){ sel ; if (sel==0) {sel=3; vt ;} if (vt==0) vt=2; chinh_tang(); (*Display)(sel); } while (!input(up)); } } void nut_dw(){ if (!input(dw)){ delay_us(20); if (!input(dw)){ sel++; if (sel==4) {sel=1; vt++;} if (vt==3) vt=1; chinh_giam(); (*Display)(sel); } while (!input(dw)); } } void nut_right(){ if (!input(right)){ delay_us(20); if (!input(right)){ lcd_clr(); if (tt_chinh==1){ giatri_mod++; if (giatri_mod8) giatri_mod=8; } else if (tt_chinh==2){ giatri_mod++; if (giatri_mod>4) giatri_mod=4; } else { if (tt_chinh==3) { giatri_mod++; if (giatri_mod10) giatri_mod=10; } else { tt_mode++; if (tt_mode>4) tt_mode=4; hienthi_right(); } if (tt_chinh==4) tt_bt[tt_bthuc]=1; else if (tt_chinh==5) tt_bt[tt_bthuc]=0; } { sel=1; vt=1; } (*Display)(sel); } while (!input(right)); } } void nut_left(){ if (!input(left)){ delay_us(20); if (!input(left)){ lcd_clr(); if (tt_chinh==1){ giatri_mod ; if (giatri_mod 1) lcd_data(0x3c); lcd_goto_xy(3,3); if (giatri_mod==1) lcd_data("Chinh Giay"); else if (giatri_mod==2) lcd_data("Chinh Phut"); else if (giatri_mod==3) lcd_data("Chinh Gio"); else if (giatri_mod==4) lcd_data("Press OK

Ngày đăng: 04/10/2022, 16:08

Xem thêm:

HÌNH ẢNH LIÊN QUAN

Hình 2. 2: sơ đồ chân PIC16F887 - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 2. 2: sơ đồ chân PIC16F887 (Trang 10)
Hình 2. 3: mơ hình giao tiếp i2c - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 2. 3: mơ hình giao tiếp i2c (Trang 11)
Hình 2. 5: DS1307 và sơ đồ chân - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 2. 5: DS1307 và sơ đồ chân (Trang 13)
Hình 2. 7: LCD2004 - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 2. 7: LCD2004 (Trang 15)
Bảng 2. 1: các chân LCD2004 - Thiết kế mạch đồng hồ số dùng VDK 16f887
Bảng 2. 1: các chân LCD2004 (Trang 16)
Hình 2. 9: 4 trạng thái của 1-wire - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 2. 9: 4 trạng thái của 1-wire (Trang 18)
Hình 3. 2: sơ đồ nguyên lý giao tiếp DHT11 với PIC16F887 - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 2: sơ đồ nguyên lý giao tiếp DHT11 với PIC16F887 (Trang 24)
Hình 3. 4: sơ đồ nguyên lý LCD với PIC16F887 - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 4: sơ đồ nguyên lý LCD với PIC16F887 (Trang 25)
Hình 3. 7: sơ đồ nguyên lý khối lựa chọn chức năng - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 7: sơ đồ nguyên lý khối lựa chọn chức năng (Trang 29)
Hình 3. 12: sơ đồ nguyên lý mạch đồng hồ số - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 12: sơ đồ nguyên lý mạch đồng hồ số (Trang 33)
Hình 3. 13: lưu đồ chương trình chính - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 13: lưu đồ chương trình chính (Trang 34)
Bảng 3. 2: các giao diện sử dụng trong mạch đồng hồ số - Thiết kế mạch đồng hồ số dùng VDK 16f887
Bảng 3. 2: các giao diện sử dụng trong mạch đồng hồ số (Trang 36)
Hình 3. 15: lưu đồ chương trình nut_up() và nut_dw() - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 15: lưu đồ chương trình nut_up() và nut_dw() (Trang 39)
Hình 3. 17: lưu đồ chương trình chinh_giam() - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 17: lưu đồ chương trình chinh_giam() (Trang 41)
Hình 3. 19: lưu đồ chương trình hienthi_right() - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 19: lưu đồ chương trình hienthi_right() (Trang 44)
Hình 3. 21: lưu đồ chương trình hienthi_left() - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 21: lưu đồ chương trình hienthi_left() (Trang 47)
Hình 3. 22: lưu đồ giải thuật chương trình con ss_bthuc() - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 3. 22: lưu đồ giải thuật chương trình con ss_bthuc() (Trang 48)
Hình 4. 1: mạch in được vẽ bằng phần mềm proteus - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 1: mạch in được vẽ bằng phần mềm proteus (Trang 52)
Hình 4. 3: giao diện menu chính - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 3: giao diện menu chính (Trang 54)
Hình 4. 5: giao diện menu chỉnh thứ ngày tháng năm - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 5: giao diện menu chỉnh thứ ngày tháng năm (Trang 56)
Hình 4. 7: chỉnh tăng - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 7: chỉnh tăng (Trang 57)
Hình 4. 6: chọn chức năng chỉnh ngày - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 6: chọn chức năng chỉnh ngày (Trang 57)
Hình 4. 10: menu danh sách báo thức - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 10: menu danh sách báo thức (Trang 58)
Hình 4. 12: tắt báo thức tại 20:12 - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 12: tắt báo thức tại 20:12 (Trang 59)
Hình 4. 11: menu chọn chức năng báo thức - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 11: menu chọn chức năng báo thức (Trang 59)
Hình 4. 14: menu chỉnh báo thức - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 14: menu chỉnh báo thức (Trang 60)
Hình 4. 16: khi đến giờ báo thức buzzer kêu và đèn led nhấp nháy - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 16: khi đến giờ báo thức buzzer kêu và đèn led nhấp nháy (Trang 61)
Hình 4. 15: cập nhật thời gian sau khi chỉnh - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 15: cập nhật thời gian sau khi chỉnh (Trang 61)
Hình 4. 18: bấm dừng bằng nút menu - Thiết kế mạch đồng hồ số dùng VDK 16f887
Hình 4. 18: bấm dừng bằng nút menu (Trang 62)
w