đồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ án đồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ ánđồ án
ĐỒ ÁN MÔN HỌC Mục lục ĐỒ ÁN MÔN HỌC CHƯƠNG 1: TỔNG QUAN 1.1 Đặt vấn đề Ngày nghành Điện Tử có vai trò quan trong sống người Các hệ thống điện tử ngày đa dạng thay công việc ngày người từ công việc đơn giản đến phức tạp điều khiển tín hiệu giao thơng, tưới nước tự động,…Các thiết kế có hệ thống tương tự, hệ thống số hay dùng vi điều khiển Tuy nhiên lĩnh vực điện tử thông minh người thường dùng hệ thống vi điều khiển hệ thông tương tự số số ưu điểm vượt trội mà hệ thống vi điều khiển mang lại: độ tin cậy cao, giá thành thấp, dể thiết kế lấp đặt vận hành,… Để làm điều phải có kiến thức vi điều khiển hiểu cấu trúc tính chất Sau năm học tập Trường Đại học Trà Vinh với giảng dạy nhiệt tình giáo viên mơn Điện Tử - Viễn Thông em định chọn đề tài “thiết kế mạch đồng hồ số” để làm đồ án môn học với mong muốn áp dụng kiến thức học vào thực tiển để phục vụ người 1.2 Giới hạn đề tài Đề tài đồng hồ số đa dạng phong phú có nhiều loại hình khác dựa vào cơng dụng độ phức tạp Do tài liệu tiếng Việt nhiều hạn chế đề tài giới hạn bởi: • • • • Kiến thức sử dụng linh kiện thành thạo Kiến thức sử dụng vi điều khiển giáo viên hướng dẫn Lập trình vi điều khiển giáo viên hướng dẫn Thiết kế mạch lớp ĐỒ ÁN MÔN HỌC 1.3 Phương pháp nghiên cứu • Nghiên cứu độc lập: chủ động tìm kiếm khái niệm mạch đồng hồ số mạng, giáo trình, Tự thiết kế mạch in, tìm hiểu nguyên lý hoạt động vi điều khiển linh kiện • Phương pháp làm việc nhóm: bạn bè tìm hiểu giải đáp thắc mắc nguyên lý hoạt động mạch động hồ số • Tự hồn thiện sản phẩm: để có mạch đồng hồ số hoạt động ổn định phải trải qua nhiều giai đoạn, làm lại nhều lần hổ trợ giái đáp khó khăn giáo viên hướng dẩn 1.4 Ý nghĩa khoa học thực tiễn: • Ý nghĩa khoa học: Đề xuất phương pháp thiết kế mạch mạch đồng hồ số tối ưu Đề xuất phương pháp nghiên cứu thiết kế mạch đồng hồ số IC khác • Ý nghĩa thực tiễn: Từ kết thực đánh giá độ ổn định yếu tố xảy thực Kết thực dùng để định hướng thiết kế phát triển cho sinh viên khác thực đề tài CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI ĐỒ ÁN MÔN HỌC 2.1 AT89S52 2.1.1 Đặc tính: • 8K byte nhớ lập trình nhanh, có khả đến 1000 chu • • • • • • • trình ghi xóa mức độ khóa nhớ lập trình mạch dao động xung clock dao động ON-CHIP Điện áp vận hành: 4.0-.5V Tần số hoạt động: 0-33MHz Bộ nhớ 128 RAM nội Cổng: 32 I/O Bộ đếm: 16 bit 2.1.2 Mô tả AT89S52 họ IC vi điều khiển hãng Amel sản xuất Các sản phẩm amel thích hợp cho ứng dụng điều khiển Việc xử lý byte toán số học cấu trúc liệu nhỏ thực nhiều chế độ truy xuất liệu nhanh Ram nội Tập lệnh cung cấp bảng tiện dụng lệnh số học bit gồm lệnh nhân chia, cung cấp hổ trợ mở rộng chip dùng cho biến bit kiểu liệu riêng biệt cho phép quản lý kiểm tra bit trực tiếp hệ thống điều khiển 2.1.3 Sơ đồ chân ĐỒ ÁN MÔN HỌC Hình 2.1.3.a sơ đồ chân AT89S52 - Chân 40 nối VCC, chân 20 nối GND Port (P0) gồm chân từ 32–39 có chức xuất nhập Riêng P0, P2 có chức kết nối nhớ mở rộng Port (P1) gồm chân từ 1-8 có chức xuất nhập Port (P3) : gồm chân từ 10-17 Tích hợp chức đặc biệt Xem bảng: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên Chức RXT Ngõ vào liệu nối tiếp TXD Ngõ xuất liệu nối tiếp INT0 Ngõ vào ngắt cứng thứ INT1 Ngõ vào ngắt cứng thứ T0 Ngõ vào Timer/Counter T1 Ngõ vào Timer/Counter WR Tín hiệu ghi liệu nhớ ngồi RD Tín hiệu đọc nhớ liệu Bảng 2.1.3.b chức chân AT89S52 - Chân Reset (RST): ngõ vào RST chân số dùng để thiết lập trạng thái ban đầu cho VDK ĐỒ ÁN MÔN HỌC - Chân EA có chức chọn nhớ chương trình: + Khi điện áp logic (5V) VDK thực lấy chương trình nhớ nội + Khi điện áp logic mức (0V) VDK thực lấy chương trình nhớ nội - Chân Xtal1 Xtal2 nằm vị trí 18 19 nối với xung clock bên để hoạt động thường gắn với thạch anh hay tụ để xung clock ổn định Về chip nêu giống nhau, có số tính cải tiến thêm Các phiên sau có nhiều khối tính đặc biệt Chúng ta xem bảng so sánh số loại phổ biến Bảng 2.1.3.c sơ đồ so sánh họ 89xx 2.2 IC thời gian thực DS1307 ĐỒ ÁN MÔN HỌC 2.2.1 Giới thiệu IC thời gian thực (RTC) DS1307 đếm giờ, phút, giây, ngày, tháng, năm Giao tiếp với vi điều khiển thơng qua chuẩn I2C, va đóng vai trò slave kết nối bus I2C Có thể đếm thời gian qua định dạng 24 với thị AM/PM Ngồi bên chip có dò phát nguồn tự động chuyển sang chế độ sử dọng nguồn dự phòng 2.2.1.a: Sơ đồ chân Chân Tên X1 X2 Vbat GND SDA SCL SQW/UO T VCC Chức Kết nối thạch anh 32KHz làm nguồn dao động Kết nối cực dương pin dự phòng 3V Nối đất Chân liệu kết nối đến bus I2C Chân nhận xung Clock kết nối bus I2C Xuất ngỏ xung vuông, tần số thay đổi từ 1,4,8,32 KHz Nguồn 5V Bảng 2.2.1.b: chức chân 2.2.2 Lấy thông tin thời gian lịch ĐỒ ÁN MÔN HỌC Bảng 1.xx địa ghi RAM ghi RTC DS1307.Thanh ghi RTC có địa từ 00-07h Các RAM chứa địa từ 08h-3Fh Các thông tin thời gian lịch thu cách đọc byte ghi tương ứng Thời gian lịch thiết lập khởi tạo cách viết byte thích hợp Lưu ý liệu thời gian chứa ghi điều dịch theo dạng BCD, thứ tuần thay đổi lúc nửa đêm dạng số chủ nhật, thứ tương ứng đến thứ Khi lần đầu IC cấp nguồn ghi thời gian lịch reset 01/01/00 01 00:00:00 (MM/DD/YY HH/MM/SS) 00h 01h 02h 03h 04h 05h 06h 07h 08h-3Fh Giây Phút Giờ Thứ Ngày Tháng Năm Thanh ghi điều khiển Vùng RAM lưu trữ 56x8 Bảng 2.2.2.a: Thông tin thời gian lịch 2.2.3 Chi tiết ghi ĐỒ ÁN MÔN HỌC Bảng 2.2.3.a: chi tiết ghi Thanh ghi giây ( địa 00h): bit thấp chứa hàng đơn vị, bit cao chứa hàng chục giây Ngoài BIT có tên CH, bit thiết lập đồng hồ khơng hoạt động Thanh ghi phút ( địa 01h): bit thấp chứa hàng đơn vị, bit cao chứa hàng chục phút Bit thiết lập Thanh ghi ( địa 02h): bit thấp ghi chứa đơn vị giờ, bit thứ quy định chế độ 12h ( bit = 1) 24h ( bit = 0) Nếu chế độ 24h bit 4, bit quy định hàng chục Nếu chế độ 12h bit quy định hàng chục, bit quy định PM buổi chiều AM buổi sáng Thanh ghi thứ ( địa 03h): bit đầu quy định thứ tuần ( Chủ nhật, Thứ 2,…) bit lại ln Thanh ghi ngày ( địa 04h): bit đầu lưu trữ hàngđơn vị ngày, bit quy định hàng chục Bit bit Thanh ghi tháng ( địa 05h): bit đầu lưu trữ hàng đơn vị tháng, bit quy định hàng chục Các bit lại ĐỒ ÁN MÔN HỌC Thanh ghi năm ( địa 06h): bit thấp lưu hàng đơn vị va bit cao lưu hàng chục năm ( từ 00-99) Bit UOT Bit Bit Bit Bit Bit SQWE 0 Bảng 2.2.3.b: ghi control Bit RS1 Bit RS0 Bit UOT ( Uotput Control): ghi điều khiển ngõ Ảnh hưởng đến chân số ( chân SQW/UOT) Khi sóng vng xuất chân bị disable, Bit UOT = chân số mức cao, ngược lại Bit UOT = chân số mức thấp Bit 6: đọc Bit 5: đọc Bit SQWE (Square – Wave Enable): bit thiết lập 1, cho phép xuất xung vuông chân số Tần số xng vuông phụ thuộc vào chân RS0,RS1 Khi tần số xung vuông thiết lập 1Hz, ghi thời gian cập nhật xuống xung vuông Khi lần đầu khởi tạo cập nhật thiết bị, Bit Bit 0: lựa chọn tốc độ (RS[1:0]) Những Bits điều khiển tần số sóng vng, sóng vng phép RS 0 1 X X RS0 Sóng vng ngõ SQW/UOT SQWE UOT 1 X X 1Hz 4.096kHz 8.192kHz 32.678kHz 1 1 0 X X X X 10 ĐỒ ÁN MÔN HỌC TÀI LIỆU THAM KHẢO: http://mcu.banlinhkien.vn/threads/co-ban-tao-ma-led-7-thanh-va-hien-thi-so0-9-tren-led-7-thanh-dung-keil-c.727/ http://www.echipkool.com/2013/03/huong-dan-lam-mach-dong-ho-thoigian.html https://www.slideshare.net/kythuatviengiap/vi-dieu-khien-ung-dung-at89s52 http://www.hocavr.com/index.php/app/ds1307 http://arduino.vn/bai-viet/214-cach-lap-trinh-nhieu-con-led-7-doan-loai-don 25 ĐỒ ÁN MÔN HỌC PHỤ LỤC Code đồng hồ thời gian thực: //DONG HO SU DUNG TIMER //PHAN CUNG: 89c51; THACH ANH: 12MHZ ; //SU DUNG LED DOAN GIO : PHUT : GIAY /************KHAI BAO THU VIEN, DINH NGHIA********************************************* ***********/ #include #define Set_key P3_4 #define Up_key P3_5 #define Dw_key P3_6 #define SDA P1_1 #define SCL P1_0 #define DS1307_ID 0xD0 #define SEC 0x00 #define MIN 0x01 #define HOUR 0x02 //#define DATE 0x04 //#define MONTH 0x05 26 ĐỒ ÁN MÔN HỌC //#define YEAR 0x06 /************KHAI BAO BIEN, MANG ******************************************* ********************/ unsigned char led7_data[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; //Decimal to Led7seg unsigned char t_view,time,index,F_set,B_nhay,get_t ; unsigned char hour,sec,min; /************KHAI BAO HAM, CHUONG TRINH CON*********************************************** ********/ void set_main(void); // Chuong trinh khoi tao main void setup_timer(void); // Chuong trinh cai dat timer va void delay(unsigned int time); // Delay void Fix_time(void); // Kiem tra va hieu chinh gia tri cua gio,phut,giay void Keypad(void); // Kiem tra xu ly phim nhan void T1_ISR(void); //ngat timer phuc vu nhay led void T0_ISR(void); // Dung ngat timer de quet led /************CAC CHUONG TRINH CON*********************************************** ******************/ // FOR I2C /************************************************** *********************/ 27 ĐỒ ÁN MÔN HỌC void I2C_start(void) { SCL = 1; SCL = 0; SDA = 1; SCL = 1; delay(2); SDA = 0; delay(2); SCL = 0; delay(2); } void I2C_stop(void) { SCL = 1; SCL = 0; SDA = 0; delay(2); SCL = 1; delay(2); SDA = 1; } bit I2C_write(unsigned char dat) { unsigned char i; for (i=0;i