có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật, mạch in và code đầy đủ cho mạch thiết kế mạch đồng hồ điện tử dùng VĐK hiện thị LCD có tùy chỉnh ...............................................................................................................................................................
1 ĐỒ ÁN MẠCH ĐỒNG HỒ ĐIỆN TỬ CHƯƠNG 1: TỔNG QUAN VỀ MẠCH ĐỒNG HỒ ĐIỆN TỬ 1.1 GIỚI THIỆU VỀ ĐỀ TÀI………………………………… 1.2 Sơ đồ khối………………………………… Chương Lựa chọn linh kiện thiết kế mạch…………………3 2.1 Lựa chọn linh kiện………………………………… 2.1.1 Vi điều khiển pic 16f877a………………………………… 2.1.2 Màn hình LCD 16*2………………………………… 2.1.3 IC thời gian thực………………………………… 2.1.4 Các linh kiện khác………………………………… 12 2.2 Thiết kế khối mạch………………………………… 12 2.2.1 Khối nguồn 5v………………………………… 12 2.2.2 Khối vi điều khiển 16f 877a………………………………… 14 2.2.3 Khối nút nhấn………………………………… 15 2.2.4 Khối thời gian thực DS 1307………………………………… 16 2.2.5 Khối thị LCD………………………………… 17 2.2.6 Khối còi báo………………………………… 18 Chương 3: Thiết kế nguyên lý thi công mạch………………… 19 3.1 Thiết kế mạch nguyên lý………………………………… 19 ĐỒ ÁN 3.2 Thiết kế mạch in thi công mạch………………………… 19 Chương Lưu đồ giải thuật kết luận…….22 4.1 Lưu đồ giải thuật………………………………… 22 4.2 Kết luận………………………………… 23 4.3 Ứng đụng phát triển………………………………… 23 Chương 5: Chương Trình………………………………… 24 ĐỒ ÁN CHƯƠNG 1: TỔNG QUAN VỀ MẠCH ĐỒNG HỒ ĐIỆN TỬ 1.1 GIỚI THIỆU VỀ ĐỀ TÀI Mạch đồng hồ điện tử sử dụng IC thời gian thực DS1307 hiển thị lên LCD ngày giờ thực Ưu điểm của mạch là có thể chạy đúng ngày giờ dù đã ngắt nguồn, thêm vào đó là mạch có phần báo thức giúp chúng ta có thể kiểm soát và sử dụng thời gian cách hợp lý và hiệu quả nhất Mạch sử dụng vi điều khiển PIC16F877A là khối xử lý trung tâm Hiển thị lên LCD thời gian thực với thời gian thực DS1307 Đồng thời có còi báo đến thời gian cài đặt, với nút nhấn để thay đổi thời gian 1.2 SƠ ĐỒ KHỐI KHÔÍ IC DS1307 KHÔÍ BAO ́ THƯC ́ KHÔÍ VI XỬ LÝ KHÔÍ HIÊN ̉ THỊ LCD KHÔÍ NUT ́ NHÂN ́ ĐỒ ÁN Hình 1: Sơ đồ khối mạch Mô tả các khối: + Khối nút nhấn gồm nút nhấn để đặt, hiệu chỉnh hẹn thời gian + Khối hiển thị LCD + Khối vi sử lý khối dùng vi điều khiển PIC16F877A điều khiển toàn hoạt động mạch : nhận tín hiệu điều khiển khối điều chỉnh nút nhấn tìn hiệu từ thời gian thực xuất khối hiển thị chuông báo + Khối còi báo chuông còi điện để báo hẹn + Khối RTC thời gian thực DS1307 ĐỒ ÁN CHƯƠNG : LỰA CHỌN LINH KIỆN VÀ THIẾT KẾ MẠCH 2.1 LỰA CHỌN LINH KIỆN 2.1.1 VI ĐIỀU KHIỂN PIC16F877A PIC vi điều khiển hãng General Intrusment đặt tên viết tắt “Programable Intellegent Computer”, tạm dịch “ Máy tính thông minh khả trình” Đây vi điều khiển thuộc họ PIC16Fxxx có độ dài 14 bit với tập lệnh gồm 35 lệnh Mỗi lệnh thực thi chu kì xung clock Tốc độ hoạt động tối đa cho phép 20MHz với chu kì lệnh 200ns Bộ nhớ chương trình 8Kx14bit, nhớ liệu 368×8 byte RAM nhớ liệu EEPROM với dung lượng 256×8 byte Số PORT I/O với 33 pin I/O ĐỒ ÁN Hình 2: Vi điều khiển PIC16F877A Các đặc tính ngoại vi bao gồm khối chức sau: – Timer0: Bộ đếm bit với chia tần số bit – Timer1: Bộ đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại vi vi điều khiển hoạt động chế độ sleep – Timer2: Bộ đếm bit với chia tần số, postcaler Sơ đồ chân vi điều khiển PIC16F877A: ĐỒ ÁN Hình 3: Sơ đồ chân của PIC16F877A Chức chân vi điều khiển PIC16F877A: - Chân OSC1/CLK1(13): Ngõ vào kết nối với dao động thạch anh ngõ vào nhận xung clock từ bên - Chân OSC2/CLK0(14): Ngõ dao động thạch anh ngõ cấp xung clock - Chân MCLR /Vpp(1) Có chức năng: MCLR : Ngõ vào reset tích cực mức thấp Vpp: Ngõ vào nhận điện áp lập trình lập trình cho pic - Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2 có chức năng: RA0, 1, 2: Ngõ vào xuất/nhập số AN0, 1, 2: Ngõ vào tương tự kênh 0, 1, - Chân RA2/AN2/VREF-/VREF+(4): xuất nhập số/ ngõ vào tương tự kênh thứ 2/ ngõ vào điện áp chuẩn thấp AD/ ngõ vào điện áp chuẩn cao AD - Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào kênh tương tự 3/ ngõ vào điện áp chuẩn(cao) AD - Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên ĐỒ ÁN cho TIMER0/ ngõ so sánh - Chân RA5/AN4/ SS /C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào lựa chọn SPI phụ/ ngõ so sánh - Chân RB0/INT(33): xuất nhập số/ ngõ vào tín hiệu ngắt - Chân RB1(34), RB2(35): xuất nhập số - Chân RB3/PGM(36): xuất nhập số/ cho phép lập trính điện áp thấp ICSP - Chân RB4(37), RB5(38): xuất nhập số - Chân RB6/PGC(39): xuất nhập số/ mạch gỡ rối xung clock lập trình ICSP - Chân RB7/PGD(40): xuất nhập số/ mạch gỡ rối liệu lập trình ICSP - Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào dao động Timer1/ ngõ vào xung clock bên Timer1 - Chân RC1/T1OSI/CCP2(16): xuất nhập số/ ngõ vào dao động Timer1/ ngõ vào capture2, ngõ compare2, ngõ PWM2 - Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1, ngõ Compare1, ngõ PWN1 - Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ chế độ SPI/ ngõ vào xung clock đồng bộ, ngõ chế độ I2C - Chân RC4/SDI/SDA(23): xuất nhập số/ liệu vào SPI/ xuất nhập I2C - Chân RC5/SDO(24): xuất nhập số/ liệu SPI - Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng USART/ xung đồng USART - Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng USART - Chân RD0¸ 7/PSP0¸ 7(19¸ 30): xuất nhập số/ liệu port song song - Chân RE0/ RD /AN5(8): xuất nhập số/ điều khiển port song song/ ngõ vào tương tự kênh - Chân RE1/ WR /AN6(9): xuất nhập số/ điều khiển ghi port song song/ ngõ vào tương tự kênh - Chân RE2/ CS /AN7(10): xuất nhập số/ chân chọn lựa điều khiển port ĐỒ ÁN song song/ ngõ vào tương tự kênh - Chân VDD(11, 32) VSS(12, 31): chân nguồn Pic - 40 chân chia thành PORT, chân cấp nguồn, chân GND, chân thạch anh chân dùng để RESET vi điều khiển - port PIC16F877A bao gồm : + PORTB : chân + PORTD : chân + PORTC : chân + PORTA : chân + PORT E : chân Sơ đồ khối vi điều khiển PIC16F877A: ĐỒ ÁN 10 Hình 4: Sơ đồ khối PIC16F877A 2.1.2 Màn hình LCD16x2 ĐỒ ÁN 43 { if(i=10) i = 0; // tang bien i sau moi lan quet (gioi han 0-9) if(input(k2)==0) // nut tang duoc nhan { while(input(k2)==0); // cho nut tang duoc nha i=0; // cho i = de tiep tuc hien thi gia tri duoc chon switch(mode) // lua chon tang gia tri thuoc vao bien mode { case 1: // mode = // tang gio gio t = c_h*10+dv_h; // ghep so thap phan rieng le vao mot bien tam if(t0) t ; else t = 99; c_n = t/10; dv_n = t%10;//chuc nam + dvi nam nho hon thi nhay ve 99 break; } } if(input(k1)==0) // nhan nut set { while(input(k1)==0); // cho nha nut set i=5; mode++; // tang bien chon gia tri chinh if(mode>6) break; // nhan chinh het gia tri thi thoat khoi ham chinh thoi gian ĐỒ ÁN 50 } if(input(k4)==0) // nhan nut chinh bao thuc thi thoat khoi ham chinh thoi gian { while(input(k4)==0); // cho nha nut chinh bao thuc break; // thoat khoi ham chinh thoi gian } } //======================================== mang_tg_rtc[0] = (c_g