Ngày khoa học cơng nghệ kỹ thuật đóng vai trị quan trọng đời sống người Bên cạnh đó, thời gian trở thành tài sản quý mong muốn tận dụng cách tối đa Tuy nhiên, việc quản lý thời gian cách hiệu vấn đề nan giải cần giải cách triệt để đề tài mà nhóm ln muốn tìm cách giải Kết hợp với kiến thức thiết kế lập trình hệ thống nhúng, nhóm định lựa chọn đề tài “Thiết kế đồng hồ số vi xử lý PIC16F877A” Nhiệm vụ đề tài phân công công việc: Phú Nhật + Tìm hiểu sở lí thuyết PIC (cụ thể PIC16F877A), LCD, + Viết giải thuật + code thời gian, lịch dương, lịch âm, thứ, tùy chỉnh cài đặt thời gian, làm báo cáo word + Viết giải thuật + code cài đặt hiển thị báo thức, giao tiếp hiển thị LCD Tổng hợp code tổng, làm báo cáo powerpoint X X + Thực sơ đồ nguyên lí, mơ phỏng, layout X X X mạch X + Thi công mạch + Nạp code cho mạch X X II LÝ THUYẾT Vi điều khiển PIC 1.1 Giới thiệu vi điều khiển PIC - PIC bắt nguồn chữ viết tắt “Programmable Intelligent Computer” (Máy tính khả trình thơng minh) sản phẩm hãng General - PIC họ vi điều khiển RISC sản xuất cơng ty Microchip Technology Dịng PIC PIC1650 phát triển Microelectronics Division thuộc General Instrument - Instrument đặt cho dòng sản phẩm họ PIC1650 Lúc này, PIC1650 dùng để giao tiếp với thiết bị ngoại vi cho máy chủ 16bit CP1600, vậy, người ta gọi PIC với tên “Peripheral Interface Controller” (Bộ điều khiển giao tiếp ngoại vi) CP1600 CPU tốt, lại hoạt động xuất nhập, PIC 8-bit phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600 PIC
TRƯỜNG ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA Khoa Điện - Điện Tử BÁO CÁO ĐỒ ÁN MÔN HỌC GVHD: Th.s Hồ Trung Mỹ SV thực hiện: Trần Đình Nhật 1612398 Bùi Văn Phú 1612597 TPHCM, ngày 23 tháng 12 năm 2019 LỜI CẢM ƠN Lời nhóm em xin cảm ơn chân thành đến thầy Hồ Trung Mỹ giúp đỡ cho nhóm em hồn thành đồ án Trong q trình thực đề tài, khơng tránh khỏi sai xót Kính mong nhận giúp đỡ góp ý q thầy để nhóm hồn thiện sau Tp Hồ Chí Minh,ngày 23 tháng 12 năm 2019 Sinh viên Trần Đình Nhật Bùi văn Phú 2 TÓM TẮT ĐỒ ÁN Thiết kế đồng hồ lịch điện tử dùng PIC có chức năng: Yêu cầu : Đề tài đồ án dựa vào chức timer PIC để tạo nên chuẩn giây Cứ sau giây cập nhập phút, giờ, ngày, tháng năm ( dương lịch ) Hiển thị cho phép điều chỉnh thời gian LCD Phần làm thêm: Cho phép đặt báo thức Tính tốn quy đổi dương lịch thành âm lịch hiển thị LCD ( nhóm thực tính tốn vịng năm từ 2020-2025) Hiển thị thứ tuần MỤC LỤC I GIỚI THIỆU 1.1 Tổng quan 1.2 Nhiệm vụ đề tài phân công công việc II LÝ THUYẾT Vi điều khiển PIC PIC16F877A LCD 20x4 III THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG Sơ đồ khối Sơ đồ nguyên lý IV THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM (Mô tả Pseucode) V KẾT QUẢ THỰC HIỆN VI KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Hướng phát triển VII TÀI LIỆU THAM KHẢO DANH SÁCH HÌNH MINH HỌA Hình Hình ảnh thực tế PIC 16F877A Hình Sơ đồ chân vi điều khiển PIC 16F877A Hình Sơ đồ chức PIC 16F877A Hình Sơ đồ khối vi điều khiển PIC16F877A Hình LCD 20x4 Hình Sơ đồ chân chức LCD Hình Bảng mã kí tự (ROM code A00) Hình Đặc tả hệ thống Hình Sơ đồ ngun lí Hình 10 Khối nguồn Hình 11 Khối vi điều khiển Hình 12 Khối nút nhấn Hình 13 Khối hiển thị Hình 14 Khối âm Hình 15 Mạch layout Hình 16 Mơ hiển thị Hình 17 Mơ báo thức Hình 18 Mạch sau hoàn thành I GIỚI THIỆU ĐỀ TÀI Tổng quan - Ngày khoa học cơng nghệ kỹ thuật đóng vai trị quan trọng đời sống người Bên cạnh đó, thời gian trở thành tài sản quý mong muốn tận dụng cách tối đa Tuy nhiên, việc quản lý thời gian cách hiệu vấn đề nan giải cần giải cách triệt để đề tài mà nhóm ln muốn tìm cách giải Kết hợp với kiến thức thiết kế lập trình hệ thống nhúng, nhóm định lựa chọn đề tài “Thiết kế đồng hồ số vi xử lý PIC16F877A” Nhiệm vụ đề tài phân công công việc: Phú Nhật + Tìm hiểu sở lí thuyết PIC (cụ thể PIC16F877A), LCD, + Viết giải thuật + code thời gian, lịch dương, lịch âm, thứ, tùy chỉnh cài đặt thời gian, làm báo cáo word + Viết giải thuật + code cài đặt hiển thị báo thức, giao tiếp hiển thị LCD Tổng hợp code tổng, làm báo cáo powerpoint X X + Thực sơ đồ nguyên lí, mơ phỏng, layout X X X mạch X + Thi công mạch + Nạp code cho mạch X X II LÝ THUYẾT Vi điều khiển PIC 1.1 Giới thiệu vi điều khiển PIC - PIC bắt nguồn chữ viết tắt “Programmable Intelligent Computer” (Máy tính khả trình thơng minh) sản phẩm hãng General - PIC họ vi điều khiển RISC sản xuất cơng ty Microchip Technology Dịng PIC PIC1650 phát triển Microelectronics Division thuộc General Instrument - Instrument đặt cho dòng sản phẩm họ PIC1650 Lúc này, PIC1650 dùng để giao tiếp với thiết bị ngoại vi cho máy chủ 16bit CP1600, vậy, người ta gọi PIC với tên “Peripheral Interface Controller” (Bộ điều khiển giao tiếp ngoại vi) CP1600 CPU tốt, lại hoạt động xuất nhập, PIC 8-bit phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600 PIC sử dụng microcode đơn giản đặt ROM, mặc dù, cụm từ RISC chưa sử dụng thời bây giờ, PIC thực vi điều khiển với kiến trúc RISC, chạy lệnh chu kỳ máy (4 chu kỳ dao động) 1.2 Các dòng PIC cách chọn vi điều khiển a Các kí hiệu vi điều khiển PIC: PIC12xxxx: độ dài lệnh 12 bit PIC16xxxx: độ dài lệnh 14 bit PIC18xxxx: độ dài lệnh 16 bit C: PIC có nhớ EPROM (chỉ có 16C84 EEPROM) F: PIC có nhớ flash LF: PIC có nhớ flash hoạt động điện áp thấp LV: tương tụ LF, ký hiệu cũ - Bên cạnh số vi điều khiển có kí hiệu xXxxx EEPROM, có thêm chữ A cuối flash (ví dụ PIC16F877 EEPROM, cịn PIC16F877A flash) - Ngồi cịn có thêm dịng vi điều khiển PIC dsPIC Ở Việt Nam phổ biến họ vi điều khiển PIC hãng Microchip sản xuất b Cách lựa chọn vi điều khiển phù hợp - Cần để ý đến số chân vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều khiển PIC với số lượng chân khác nhau, chí có vi điều khiển PIC có chân, ngồi cịn có vi điều khiển 28, 40, 44… chân - Cần chọn vi điều khiển PIC có nhớ flash để nạp xóa chương trình nhiều lần - Cần ý đến khối lượng chức tích hợp sẵn vi điều khiển, chuẩn giao tiếp bên - Cuối cần ý đến nhớ chương trình mà vi điều khiển cho phép 1.3 - Một vài tính PIC Hiện có nhiều dịng PIC có nhiều khác biệt phần cứng, điểm qua vài nét sau: 8/16 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi FLASH ROM tuỳ chọn từ 256 byte đến 256 Kbyte Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5.5V, ứng với logic logic 1) 8/16 Bit Timer Công nghệ Nanowatt Các chuẩn Giao Tiếp Ngoại Vi nối tiếp Đồng bộ/Không đồng USART, AUSART, EUSARTs Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit Bộ so sánh điện áp (Voltage Comparators) Các module Capture/Compare/PWM LCD MSSP Peripheral dùng cho giao tiếp I²C, SPI, I²S Bộ nhớ nội EEPROM – ghi/xoá lên tới triệu lần FLASH (dùng cho nhớ chương trình) ghi/xóa 10.000 lần Module Điều khiển động cơ, đọc encoder Hỗ trợ giao tiếp USB Hỗ trợ điều khiển Ethernet Hỗ trợ giao tiếp CAN Hỗ trợ giao tiếp LIN Hỗ trợ giao tiếp IrDA Một số dịng có tích hợp RF (PIC16F639, rfPIC) KEELOQ Mã hố giải mã DSP tính xử lý tín hiệu số (dsPIC) PIC 16F877A Hình Hình ảnh thực tế PIC 16F877A 2.1 Sơ đồ chân PIC 16F877A Hình Sơ đồ chân vi điều khiển PIC 16F877A 10 3.4 - Các lệnh điều khiển LCD Để điều khiển LCD cần có IC chun dùng tích hợp bên LCD có mã số 447801 đến IC 447809 Trong IC có nhớ RAM dùng để lưu trữ liệu cần hiển thị thực việc điều khiển LCD hiển thị 17 III THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG Sơ đồ khối Real time (timer 0) Button CPU Hiển thị (LCD) PIC 16F877A Âm Khối nguồn *Power : Pin 9VIC7805CPU Hình Đặc tả hệ thống - Gồm khối nguồn sử dụng adaptor pin 9V qua mạch ổn áp 7805 thành 5V - Nút nhấn giao tiếp cho phép chỉnh ngày - Real time sử dụng timer tạo chuẩn 1s - Âm mạch còi báo cuả báo thức - Hiển thị LCD 20*4 thông số ngày lịch thứ 18 Sơ đồ nguyên lí Hình Sơ đồ ngun lí Khối nguồn Hình 10 Khối nguồn 19 - Khối nguồn sử dụng Adaptor 9V-1A làm nguồn vào chính, mạch nguồn có cơng tấc đèn báo để tiện cho bật tắt thiết bị - Tụ C5 giá trị 470u-35V có tác dụng lọc nguồn cấp vào để tăng tính ổn định cho nguồn cho mạch IC 7805 làm nhiệm vụ ổn áp cho nguồn điện ổn định 5V với dòng tối đa 1A cho toàn mạch hoạt động Nguồn 5V lọc lại lần tụ C6 có giá trị 47u-16V Khối xử lí (vi điều khiển) Hình 11 Khối vi điều khiển - Khối xử lí sử dụng IC PIC 16F877A - Sử dụng thạch anh 16MHz với tụ điện 22pF (có tác dụng ổn định xung, tránh xảy sai số xung thạch anh) đưa vào chân số 13 OSC1/CLKIN chân số 14 OSC2/CLKOUT tạo xung clock để tính tốn cho mạch - Tụ C1 10uF chống nhiễu cho mạch reset R1 (10k) điện trở kéo lên, mạch reset Button nhấn giá trị mức logic cấp cho chân số MCLR 20 - Sử dụng chân RB0-RB7 kết nối với nút nhấn Các chân RD4-RD7 kết nối Data LCD chế độ bit Chân RD0 nối với chân E, RD1 nối với chân Rs điều khiển cho LCD Chân RD2 dùng để kích hoạt cịi báo Khối nút nhấn Hình 12 Khối nút nhấn - Sử dụng nút nhấn để có tiếp điểm tạo thay đổi mức logic từ mạch, giúp cho vi điểu khiển biết có tác động từ bên ngoài, nút nối với chân khác số lượng nút tùy vào mục đích người lập trình Khối hiển thị Hình 13 Khối hiển thị 21 - Khối hiển thị cụ thể LCD 20*4, sử dụng giao tiếp bít với vi điều khiển, biến trở 10k cài đặt độ tương phản nội dung hiển thị lên LCD Khối âm Hình 14 Khối âm - Sử dụng còi báo buzzer để phát âm thanh, cấp nguồn điều khiển BJT Q1 C1815 có tác dụng khuếch đại dòng điều khiển đủ cung cấp cho còi báo, điền trở R4 điện trở phân cực cho Q1 Tín hiệu cấp từ VĐK qua R4 vào Q1 cấp dòng cho còi báo - Dịng Q1 C1815 lên đến 50mA Hệ số khuếch đại 120 - Vậy để C1815 dẫn bảo hịa 𝐼𝑏 = - Điện trở R7 tính 𝐼𝑐𝑚𝑎𝑥 𝑏𝑒𝑡𝑎 𝑅7 = = 50 120 𝑉𝑏𝑒 𝐼𝑏 = = 0.41𝑚𝐴 5−0.7 4.1 = 10𝑘 22 Sơ đồ layout mạch Hình 15 Mạch layout IV THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM Yêu cầu phần mềm - Về bản, đồng hồ hiển ghị ngày – tháng – năm – phút – giây bao gồm thông số với tầm hoạt động sau đây: Giây: – 59 Phút: – 59 Giờ: – 23 Số ngày: – 28/29/30/31 với cận tương ứng với tháng năm Tháng: – 12 23 Thứ : Monday – Tuesday – Wednesday– Thursday – Friday – Saturday – Sunday tương ứng với thứ hai, thứ ba, thứ tư, thứ năm, thứ sáu, thứ bảy, chủ nhật tuần - Tùy chỉnh cài đặt thời gian mong muốn - Cho phép cài đặt báo thức ( tối thiểu báo thức) - Cho phép hiển thị lịch âm vài năm định Giải thuật timer Chương trình thực đếm xung 1s để cập nhập phút, giờ, ngày, tháng, năm - Start Khởi tạo LCD Giây tăng lên đơn vị if (giây lớn 59) { giây quay lại , Phút tăng lên đơn vị} if (phút lớn 59) { phút quay lại tăng lên đơn vị} if (giờ lớn 23) { quay lại ngày tăng lên đơn vị} 24 Thứ tăng lên đơn vị If( thứ lớn 8) { thứ } { if( tháng tháng 1, 3, ,7, 8, 10, 12) if ( ngày lớn 31) { ngày quay lại 0} if ( tháng tháng 4, 6, 9,11) if (ngày lớn 31) { ngày quay lại 0} if ( tháng tháng 2) if ( năm chia hết cho không chia hết cho 100 chia hết cho 400 ) if ( ngày lớn 28) { ngày quay lại không} if ( năm không chia hết cho 4) if( ngày lớn 29) { ngày quay lại không} } Tháng tăng lên đơn vị if( tháng lớn 12) { tháng quay lại không} Năm tăng lên đơn vị End 25 Giải thuật chỉnh thời gian - Chương trình thực với mục đích chỉnh thời gian mong muốn cài đặt người dùng - Begin if( nút tùy chỉnh nhấn) { hiển thị giá trị cần chỉnh LCD if( nút tăng nhấn) { tăng tới giá trị mong muốn chỉnh} if( nút giảm nhấn) { giảm tới giá trị mong muốn chỉnh} } if( nút break nhấn) { thoát khỏi hàm tùy chỉnh} End 26 Giải thuật chỉnh báo thức - Chương trình cho phép người dùng cài đặt báo thức mong muốn— Begin if( nút báo thức nhấn) { Hiển thị giá trị cần cài đặt lên LCD if( nút tăng nhấn) { cài đặt thông số báo thức cần tăng} if( nút giảm nhấn) { cài đặt thông số cần giảm} If( nhấn nút chuyển mode) { chuyển tới thông số cần cài đặt tiếp theo} if( nút báo thức nhấn lần nữa) { chuyển báo thức tiếp theo} If( nhấn nút báo thức lần) { thoát khỏi hàm báo thức } } End 27 V KẾT QUẢ THỰC HIỆN Kết mơ proteus Hình 16 Mơ hiển thị Hình 17 Mơ báo thức 28 Sản phẩm sau thi cơng mạch Hình 18 Mạch sau hoàn thành 29 - Mạch làm thực tế hiển thị chạy với mô phỏng, nhiên số lỗi nhiễu hiển thị LCD Kiểm tra mạch - Để tiến hành kiểm tra hoạt động thực tế mạch, ta tiến hành kiểm nghiệm thành phần: Điều chỉnh độ sáng hình Nút nhấn: INC_mode,DEC_mode, Up, Down, Exit, Alrm, On/Off Reset Hoạt động LCD Nguồn 30 Sau kiểm tra chỉnh sửa, ta thu kết cụ thể sau đây: Thành phần Nguồn LCD Nút nhấn Hoạt động đồng hồ Loa VI Kết kì vọng Tốt Tốt Tốt Tốt Tốt Thực tế Tốt Đạt Đạt Đạt Đạt Ghi KẾT LUẦN VÀ HƯỚNG PHÁT TRIỂN Kết luận: - Sau hoàn thành đề tài đồ án, nhóm em có thêm nhiều kinh nghiệm làm việc nhóm, bước vận dụng kiến thức học học hỏi nhiều kinh nghiệm làm mạch tiếp thu nhiều kiến thức - Qua thực đồ án giúp sinh viên làm quen với đồ án tốt ngiệp hay luận văn trường Hướng phát triển - Có thể phát triển thêm nhiều tính khác tích hợp đồng hồ đo độ ẩm, nhiệt độ nhà,… - Có thể cài đặt hẹn lịch nhắc nhở kiện quan trọng VII TÀI LIỆU THAM KHẢO [1] Giáo trình Vi xử lý – Th.S Hồ Trung Mỹ, NXB Đai học Quốc gia Tp.HCM [2] Tài liệu vi điều khiển – Nguyễn Đình Phú 2014 [3] Diễn đàn điện tử Việt Nam, http://www.dientuvietnam.net/ [4] Tài liệu thiết kế hệ thống nhúng – Th.s Bùi Quốc Bảo [5] https://www.academia.edu/32406613/Tong_hop_code_ccs_cho_pic16f877a_picvietnam 31 ... ĐỒ ÁN Thiết kế đồng hồ lịch điện tử dùng PIC có chức năng: Yêu cầu : Đề tài đồ án dựa vào chức timer PIC để tạo nên chuẩn giây Cứ sau giây cập nhập phút, giờ, ngày, tháng năm ( dương lịch )... điều khiển PIC PIC1 6F877A LCD 20x4 III THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG Sơ đồ khối Sơ đồ nguyên lý IV THIẾT KẾ VÀ THỰC... để đề tài mà nhóm ln muốn tìm cách giải Kết hợp với kiến thức thiết kế lập trình hệ thống nhúng, nhóm định lựa chọn đề tài ? ?Thiết kế đồng hồ số vi xử lý PIC1 6F877A” Nhiệm vụ đề tài phân cơng cơng