SỬ DỤNG PIC 16f887 HIỂN THỊ THỜI GIAN THỰC RA LED 7 đoạn có CODE

15 141 1
SỬ DỤNG PIC 16f887 HIỂN THỊ THỜI GIAN THỰC RA LED 7 đoạn  có CODE

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM ĐẠI HỌC QUỐC GIA TP.HCM - - BÀI TẬP LỚN ĐỀ TÀI: THIẾT KẾ MẠCH ĐỒNG HỒ ĐIỆN TỬ HIỆN THỊ RA LED ĐOẠN GIẢNG VIÊN HƯỚNG DẪN : PHÙNG TRÍ CƠNG STT Mã số SV Họ Tên 2033203 Nguyễn Doãn Ngọc Quốc 2033208 Đào Quang Duy 2033267 Vũ Văn Khải 2033239 Trần Thanh Duy TP HỒ CHÍ MINH, NĂM 2021 GVHD: PHÙNG TRÍ CƠNG Mục lục Chương I GIỚI THIỆU VỀ ĐỀ TÀI 1 Chức mạch điện 1.2 Mô tả mạch điện Chương II TỔNG QUAN VỀ CÁC THIẾT BỊ SỬ DỤNG TRONG ĐỀ TÀI 2.1 Giới thiệu PIC 16F877 2.2 Cơ chế hoạt động chức DS1307 2.3 LED đoạn nguyên tắc hoạt động 2.4 Khối điều chỉnh thời gian Chương III SỬ DỤNG PHẦN MỀM TRÊN MÁY TÍNH ĐỂ VIẾT CHƯƠNG TRÌNH VÀ THỰC HIỆN MÔ PHỎNG 3.1 Giới thiệu phần mềm sử dụng 3.2 Kết nối linh kiện mô với Proteus 3.3 Ý tưởng chương trình (Thuật tốn) 3.4 Viết biên dịch chương trình CCS (PIC C Compiler) KẾT QUẢ TÀI LIỆU THAM KHẢO Page GVHD: PHÙNG TRÍ CƠNG Chương I GIỚI THIỆU VỀ ĐỀ TÀI 1.1 Chức mạch điện - Hiển thị: giờ, phút, giây LED đoạn - Giao tiếp với phím : CHẾ ĐỘ - TĂNG - GIẢM Phím CHẾ ĐỘ dùng để điều chỉnh phút - Nguyên tắc hoạt động: Mạch sử dụng IC thời gian thực DS 1307 giao tiếp I2C với PIC, sau hiển thị thông tin giờ, phút, giây, có điều chỉnh thời gian từ phím chức thay đổi lưu lại vào DS1307 cho lần hoạt động sau 1.2 Mô tả mạch điện - Dùng led loại led/1 - Vi điều khiển dùng PIC 16F877 - Dùng thạch anh 20MHz để tạo dao động cho PIC Page GVHD: PHÙNG TRÍ CƠNG Chương II TỔNG QUAN VỀ CÁC THIẾT BỊ SỬ DỤNG TRONG ĐỀ TÀI 2.1 Giới thiệu VI ĐIỀU KHIỂN PIC 16F877 Ta có sơ đồ chân PIC 16F877 sau: PIC 16F877 mạch loại có 40 chân, với cổng vào Port A(RA0÷RA5), Port B(RB0÷RB7), Port C(RC0÷RC7),Port D(RD0÷RD7), Port E(RE0÷RE2) Có định thời timer0, timer1, timer2 8K nhớ chương trình flash Tổ chức nhớ: Có khối nhớ PIC16F877: nhớ chương trình, nhớ liệu khối nhớ EEPROM Bộ nhớ chương trình nhớ liệu có đường bus riêng truy cập vào nhớ cách riêng rẽ Port A: có bit (tương ứng với chân RA0÷RA5) chân cổng A có tích hợp số chức ngoại vi, thiết bị ngoại vi enable cổng khơng hoạt động cổng vào Bình thường Port A cổng vào chiều Thanh ghi xác đinh chiều tương ứng chân Port A ghi TrisA Các bit ghi TrisA xác định chân Port A đầu vào ngược lại đầu Port B: rộng bit(tương ứng với chân RB0÷RB7), cổng vào chiều Thanh ghi qui định chiều cổng B ghi Tris B Thiết lập bit ghi TrisB làm cho cổng B cổng vào ngược lại cổng Page GVHD: PHÙNG TRÍ CƠNG Port C: rộng bit (tương ứng với chân RC0÷RC7), bình thường cổng vào chiều, ghi qui định chiều cổng ghi TrisC Các chân RC3,RC4 dùng để kết nối truyền nhân thông tin với thiết bị ngoại vi Port D: rộng bit (RD0÷RD7), cổng vào cổng Port D cấu cổng vi xử lý rộng bit (cổng slave song song) cách thiết lập bit điều khiển PSPSTATUS (TrisE.4) Ở chế độ đầu vào tín hiệu TTL Port E: rộng bit(RE0÷RE2), cấu hình đầu đầu vào Port E đầu vào điều khiển I/O bit PSPSTATUS (TrisE.4) thiết lập Từ hình vẽ ta thấy, PIC16F877 có chân Vcc chân GND, để PIC hoạt động ta phải cấp nguồn cho tất chân Ngoài cấp nguồn cung cấp ta phải cấp nguồn xung dao động vi điều khiển hoạt động, ta dùng thạch anh 20MHz để cấp xung dao động Nguồn dao động cấp thông qua chân 13 14 PIC Mạch reset cho vi điều khiển công tắc để hở thông qua chân MCLR vi điều khiển mạch thực reset chân từ mức logic xuống logic cơng tắc để hở chân mang mức logic nối với nguồn thơng qua điện trở hạn dịng R1, điện trở phải có giá trị nhỏ 40k để đảm bảo điện áp cung cấp cho vi điều khiển 2.2 Cơ chế hoạt động chức DS1307 Page GVHD: PHÙNG TRÍ CƠNG Vbat: đầu vào pin SDA: chuỗi data SCL: dãy xung clock SOUT: đầu driver DS1307 IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thời gian ngày tháng với 56 bytes SRAM Địa liệu truyền nối tiếp qua đường bus chiều Nó cung cấp thơng tin giờ, phút, giây, thứ, ngày, tháng, năm Ngày cuối tháng tự động điều chỉnh với tháng nhỏ 31 ngày,bao gồm việc tự động nhảy năm Đồng hồ hoạt động dạng 24h 12h với thị AM/PM DS1307 có mạch cảm biến điện áp dùng để dò điện áp lỗi tự động đóng ngắt với nguồn pin cung cấp DS 1307 hoạt động với vai trò slave đường bus nối tiếp Việc truy cập thi hành với thị START mã thiết bị định cung cấp địa ghi Tiếp theo ghi truy cập liên tục đến thị STOP thực thi Sơ đồ địa RAM RTC: Thông tin thời gian ngày tháng lấy cách đọc byte ghi thích hợp Thời gian ngày tháng thiết lập thông qua byte ghi cách viết vào giá trị thích hợp Nội dung ghi dạng mã BCD (binary coded decreaseimal) Bit ghi seconds bit clock halt(CH),khi bit thiết lập dao động disable, xố dao động enable Chú ý phải enable dao động suốt trình cấu hình thiết lập (CH=0) DS1307 chạy chế độ 24h 12h Bit thứ ghi hours bit chọn chế độ 24h 12h Khi bit mức cao chế độ 12h chọn Ở chế độ 12h bit bit AM/PM với mức cao PM Ở chế độ 24h bit bit 20h(từ 20h đến 23h) Trong trình truy cập liệu, thị START thực thi dịng thời gian truyền tới ghi thứ 2, thông tin thời gian đọc từ ghi thứ cấp này, đồng hồ tiếp tục chạy Page GVHD: PHÙNG TRÍ CƠNG 2.3 LED đoạn ngun tắc hoạt động Khối hiển thị dùng LED đoạn: led dùng để hiển thị giờ, led dùng để hiển thị phút, led dùng để hiển thị giây & LED đơn nhấp nháy giây Tất led chung đường tín hiệu a,…,g cịn chân điều khiển mắc với khố điện tử (8 Tranzito A1015) cổng logic not để điều khiển việc đóng ngắt led - Việc cấp nguồn cho led dựa thuật toán quét led, tức thời điểm có Led đoạn cấp nguồn sáng, thời gian giãn cách sáng Led 3) tt_mod=0; while(!input(mod)) // cho nha phim { hienthi(); } } } } void phim_up() { if(!input(up)) { hienthi(); Page 11 output_low(pin_b0); // output_low(pin_b1); output_low(pin_b2); // output_low(pin_b3); output_low(pin_b4); // output_low(pin_b5); GVHD: PHÙNG TRÍ CƠNG hienthi(); hienthi(); hienthi(); if (!input(up)) { exit = 0; if(tt_mod==1) { gio_ds13++; if(gio_ds13>23) gio_ds13=0; BIN_BCD(gio_ds13); // chuyen so bin (thap phan) sang bcd NAP_THOI_GIAN_HTAI_VAO_DS13B07(); // nap lai thoi gian cho ds13 } else if(tt_mod==2) { phut_ds13++; if(phut_ds13>59) phut_ds13=0; BIN_BCD(phut_ds13); NAP_THOI_GIAN_HTAI_VAO_DS13B07(); } else if(tt_mod==3) { giay_ds13++; if(giay_ds13>59) giay_ds13=0; BIN_BCD(giay_ds13); NAP_THOI_GIAN_HTAI_VAO_DS13B07(); } while(input(up)==0) { hienthi(); } } } } void phim_dw() { if (!input(dw)) { hienthi(); hienthi(); hienthi(); hienthi(); if (!input(dw)) { exit = 0; if(tt_mod==1) { gio_ds13 ; Page 12 GVHD: PHÙNG TRÍ CƠNG if(gio_ds13

Ngày đăng: 07/11/2021, 12:35

Từ khóa liên quan

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

Tài liệu liên quan