Báo cáo:Mạch hiển thị thời gian, ngày, tháng, năm, giờ phút giây bằng LCD, sử dụng vi điều khiển họ 8051 và IC thời gian thực DS1307. Có chỉnh thời gian, ngày tháng

63 9 0
  • Loading ...
1/63 trang

Thông tin tài liệu

Ngày đăng: 04/04/2019, 13:21

Bài tập lớn môn Thực hành sở MỤC LỤC Bài tập lớn môn Thực hành sở DANH MỤC HÌNH ẢNH Hình 1.1 Đồng hồ điện tử Hình 1.2 Đồng hồ điện tử lò vi sóng Hình 2.1 Sơ đồ khối hệ thống 10 Hình 2.2 Sơ đồ Call graph mạch 11 Hình 2.3 Sơ đồ đặc tả mạch 11 Hình 2.4 Sơ đồ thuật tốn khối điều khiển 12 Hình 2.5 Sơ đồ thuật toán cài đặt hiển thị LCD 13 Hình 2.6 Sơ đồ khối nguồn 14 Hình 2.7 Khối điều khiển trung tâm 14 Hình 2.8 Khối tạo thời gian thực 15 Hình 2.9 Khối hiển thị 16 Hình 2.10 Các nút điều khiển mạch 16 Hình 2.11 Hình ảnh AT89C51 17 Hình 2.12 Sơ đồ khối AT89C51 18 Hình 2.13 Sơ đồ chân AT89C51 19 Hình 2.14 Mạch reset tác động tay tự động reset khởi động máy 20 Hình 2.15 Mạch tạo xung clock 22 Hình 2.16 IC thời gian thực DS1307 25 Hình 2.17 Khối mạch thời gian thực 26 Hình 2.18 Sơ đồ khối DS1307 27 Hình 2.19 Sơ đồ địa RAM 28 Hình 2.20 Sơ đồ địc RTC 28 Hình 2.21 Hình ảnh LCD 16x2 32 Hình 2.22 IC ổn áp 5V – 7805 36 Bài tập lớn mơn Thực hành sở Hình 2.23 Hình dạng điện trở thiết bị điện tử 37 Hình 2.24 Nút bấm 37 Hình 2.25 Biến trở 38 Hình 2.26 Pin CMOS 38 Hình 3.1 Sơ đồ nguyên lý mạch vẽ proteus 39 Hình 3.1 Sơ đồ mạch in lớp 39 Bài tập lớn mơn Thực hành sở LỜI NĨI ĐẦU Sự đời vi xử lí nói chung, vi điều khiển nói riêng tạo bước ngoặt lớn việc thiết kế hệ thống xử lí thơng tin, đo lường điều khiển truyền thông Kết tạo sản phẩm máy ảnh số, máy chơi nhạc MP3, đầu đĩa DVD, biến tần,PLC…ngày rẻ hơn, nhỏ gọn hơn, thông minh tiện dụng Hơn nữa, kỹ thuật vi điều khiển phát triển, ứng dụng vào nhiều lĩnh vực sản xuất cơng nghiệp, tự động hóa, đời sống nhiều lĩnh vực khác So với kỹ thuật số kỹ thuật vi điểu khiển nhỏ gọn nhiều tích hợp lại khả lập trình để điều khiển Nên tiện dụng động Với tính ưu việt vi điều khiển phạm vi đồ án nhỏ này, chúng em chọn đề tài " Mạch hiển thị thời gian, ngày, tháng, năm, phút giây LCD, sử dụng vi điều khiển họ 8051 IC thời gian thực DS1307 chỉnh thời gian, ngày tháng" Mục đích đề tài hướng đến: tạo bước đầu cho sinh viên thử nghiệm ứng dụng vi điều khiển thực tiễn để từ tìm tòi, phát triển nhiều ứng dụng khác đời sống ngày cần đến Việc thực xong đồ án môn học kiến thức học, số sách tham khảo số nguồn tài liệu khác nên khơng tránh khỏi thiếu sót nhóm mong góp ý thầy bạn Hà Nội, ngày 22 tháng 12 năm 2012 Nhóm sinh viên Bài tập lớn mơn Thực hành sở CHƯƠNG PHÂN TÍCH YÊU CẦU 1.1 Khảo sát phân tích tốn Đồng hồ công cụ để đo đạc mốc thời gian nhỏ ngày; đối lập với lịch, công cụ để đo thời gian dài ngày Những loại đồng hồ dùng kĩ thuật thường độ xác cao cấu tạo phức tạp Trong đó, người ta tạo loại đồng hồ nhỏ để dễ dàng mang theo bên (gọi đồng hồ đeo tay) Những loại đồng hồ đại thường thể ba thông tin: giờ, phút, giây 1.1.1 Cách hiển thị thời gian • Đồng hồ cơ: Đồng hồ thể thời gian sử dụng góc Mặt đồng hồ số từ đến 12 sử dụng kim để phút Từ số đến số kế cận phút (đối với kim phút), (đối với kim giờ) hay giây (đối với kim giây) Một loại đồng hồ khác sử dụng đồng hồ mặt trời Nó hoạt động nhờ theo dọi thường xuyên ánh sáng Mặt Trời, người ta theo dõi cách nhìn bóng chúng • Đồng hồ điện tử: Đồng hồ điện tử sử dụng hệ thống số để thể thời gian Thơng thường cách thể hiện: - 24 để đếm từ 00-23h - 12 với kí hiệu AM / PM (chủ yếu Mĩ) Những đồng hồ điện tử sử dụng hình LCD hay LED, ống catode để thể hình ảnh số Khi đồng hồ điện tử thay pin, chúng thường "qn" liệu thời gian trước • Đồng hồ âm thanh: Để tiện lợi hơn, số đồng hồ sử dụng âm để bào hiệu Âm sử dụng ngơn ngữ tự nhiên ("Bây mười sáu ba mươi phút) hay mã (số tiếng chuông báo hiệu số giờ) Bài tập lớn môn Thực hành sở • Đồng hồ chữ: Loại đồng hồ thời gian dạng chữ Nếu đồng hồ điện tử đọc số 12:35 đồng hồ chữ, đọc "Mười hai ba mươi lăm phút" Một số loại đồng hồ khác sử dụng chế gần khiến người sử dụng cảm thấy dễ chịu sử dụng đồng hồ (ví dụ "Khoảng mười hai rưỡi") 1.1.2 Mục đích Đồng hồ treo tường dùng nhà văn phòng, đồng hồ đeo tay mang tay, loại đồng hồ lớn đặt nơi công cộng (nhà thờ hay bến xe) Hầu hết máy tính điện thoại di động góc hình hiển thị Tuy nhiên, đồng hồ lúc sử dụng để hiển thị thời giansử dụng để điều khiển vật theo thời gian dụ đồng hồ chng dùng làm chng báo tiết học Nó gọi xác hệ thống đếm Máy tính sử dụng tín hiệu đồng hồ để đồng q trình xử lý (mặc dầu số nghiên cứu xử lí khơng đồng bộ) Máy tính lưu trữ thời gian để báo hiệu để hiển thị thời gian Bên máy tính đồng hồ ni pin Máy tính hoạt động đồng hồ máy bị chết khởi động máy lại, đồng hồ máy tính khởi động lại Thời gian khái niệm mơn vật lý Do đó, chế tạo dụng cụ đo thời gian xác ý nghĩa quan trọng thí nghiệm Bài tập lớn mơn Thực hành sở Hình 1.1 Đồng hồ điện tử Hình 1.2 Đồng hồ điện tử lò vi sóng 1.1.3 Các công nghệ ứng dụng thiết kế thời gian thực IC thời gian thực, vi điều khiển, cách thức hiển thị thời gian thựcIC thời gian thực: Hiện thị trường loại IC thời gian thực phồ biến DS1307 DS12887 Các IC chức chạy thời gian thực lưu điện, với DS1307 cần thêm nguồn ni pin cmos 3V, với DS12887 sẵn pin tích hợp bên Các IC thực giao tiếp với vi điều khiển để thị thời gian cài đặt giờ… Trên sở sử dụng loại IC này, đề tài nhóm em giao dùng DS1307 • Vi điều khiển: nhiều loại vi điều khiển khác sử dụng mạch đồng hồ vi điều khiển pic, avr, 8051… Các loại vi điều khiển pic hay avr nhiều ưu điểm so Bài tập lớn môn Thực hành sở với 8051 hỗ trợ kết nối ngoại vi tốt hơn, tốc độ xử lý nhanh hơn, lập trình đơn giản Nhưng giá thành lại cao nhiều so với 8051 mà mạch chúng em sử dụng AT89C51 • Hiển thị: Chúng ta cách hiển thị là: sử dụng LED đoạn sử dụng LCD LED đoạn: - Ưu điểm: hiển thị rõ ràng thu hút ý nhìn xa - Nhược điểm: mạch điện phức tạp cần thêm IC chốt LCD 16x2: - Ưu điểm: hiển thị dễ dàng, linh động việc hiển thị thời gian, kết nối đơn giản mạch điện không phức tạp… - Nhược điểm: không thu hút ý LED đoạn, giá thành cao… 1.1.4 Giải pháp thiết kế Đồng hồ thời gian thực với trung tâm điều khiển AT89C51 linh kiện khác: LCD hiển thị, IC ổn áp7805, IC thời gian thực DS1307 AT89C51 ưu điểm: tính tốc độ đáp ứng yêu cầu kĩ thuật ứng dụng khơng đòi hỏi cao; giá thành thấp họ vi điều khiển khác; hỗ trợ lập trình điều khiển hợp ngữ C IC DS1307 IC chuyên dụng, cho khả xác thời gian LCD hiển thị cách rõ ràng, linh động IC ổn áp 7805 sử dụng rộng rãi nguồn 1.1.5 Các tham số cho hệ thống • Sử dụng nguồn điện 5V • Làm việc liên tục • Kích thước phù hợp với người sử dụng • Hệ thống nhỏ gọn • Hệ thống lưu thời gian nguồn cấp (có nguồn dự trữ) • Nguồn ni (pin CMOS) cho IC thời gian thực đảm bảo • Làm việc điều kiện mơi trường bình thường Bài tập lớn mơn Thực hành sở Bài tập lớn môn Thực hành sở CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 2.1 Sơ đồ tổng quát Sơ đồ tổng quát khối mạch: Khối nguồn Khối thời gian thực Khối hiển thị Khối Xử lý Khối giao tiếp phím bấm Hình 2.1 Sơ đồ khối hệ thống • Khối Nguồn: cung cấp nguồn cho hệ thống • Khối Thời gian thực: lưu trữ thời gian thực, thời gian cài đặt • Khối Xử lý: Dùng vi điều khiển AT89C51 để lấy liệu từ khối thời gian thực, lưu trữ đưa khối hiển thị nhận tín hiệu từ khối giao tiếp • Khối Hiển thị: lấy tín hiệu từ vi điều khiển, thực giao tiếp với vi điều khiển để hiển thị ngày • Khối giao tiếp: khối bàn phím, thực cài đặt để vi điều khiển lưu liệu vào khối thời gian thực 10 Bài tập lớn môn Thực hành sở return Data; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~// void ghivaoDS1307(void) { unsigned char t; for(t=0;t dec =42 } unsigned char dec_bcd(unsigned char dec)// chuyen tu decima sang bcd { return((dec/10)*16+(dec%10)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// void caidat_rtc() { unsigned char giay,phut,gio,thu,ngay,thang,nam; giay = bcd_dec(docdulieu(0)&0x7f); => ko bi treo) // de bit (bit clock halt) cua ghi giay = phut = bcd_dec(docdulieu(1)); gio = bcd_dec(docdulieu(2)& 0x3f); //che 24 h thu = bcd_dec(docdulieu(3)); = bcd_dec(docdulieu(4)); thang = bcd_dec(docdulieu(5)); nam = bcd_dec(docdulieu(6)); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // CAI DAT GIO ghilenhLCD(1); ghi_chuoi("CHINH"); ghi_chuoi(" GIO :"); 51 // Bài tập lớn môn Thực hành sở ghilenhLCD(0x0e); ghilenhLCD(0xc4); ghiso(gio); ghi_kytu(':'); ghiso(phut); ghi_kytu(':'); ghiso(giay); ///////////////////////////////////////// ghilenhLCD(0xC5); while(menu==0); caidatgio:while(tang!=0 && giam!=0 && menu!=0); if(tang==0) { gio++; if(gio==24) gio=0; ghilenhLCD(0xC4); ghiso(gio); ghilenhLCD(0xC5); delay(300); goto caidatgio; } if(giam==0) { gio ; if(gio==0xff) gio=23; ghilenhLCD(0xC4); ghiso(gio); ghilenhLCD(0xC5); delay(300); goto caidatgio;} 52 Bài tập lớn môn Thực hành sở //////////////////////////////////////////// while(menu==0); ghilenhLCD(0xC8); caidatphut: while(tang!=0 && giam!=0 && menu!=0); if(tang==0) { phut++; if(phut==60) phut=0; ghilenhLCD(0xC7); ghiso(phut); ghilenhLCD(0x10); delay(300); goto caidatphut;} if(giam==0) { phut ; if(phut==0xff) phut=59; ghilenhLCD(0xC7); ghiso(phut); ghilenhLCD(0x10); delay(300); goto caidatphut; } ////////////////////////////////////////////// while(menu==0); ghilenhLCD(0xCB); caidatgiay: while(tang!=0 && giam!=0 && menu!=0); 53 Bài tập lớn môn Thực hành sở if(tang==0) { giay++; if(giay==60) giay=0; ghilenhLCD(0xCA); ghiso(giay); ghilenhLCD(0xCB); delay(100); goto caidatgiay; } if(giam==0) { giay ; if(giay==0xff) giay=59; ghilenhLCD(0xCA); ghiso(giay); ghilenhLCD(0xCB); delay(100); goto caidatgiay; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // CAI DAT NGAY - THANG - NAM while(menu==0); ghilenhLCD(1); ghi_chuoi("CHINH NGAY :"); ghilenhLCD(0xc4); ghiso(ngay); 54 Bài tập lớn môn Thực hành sở ghi_kytu('-'); ghiso(thang); ghi_chuoi("-20"); ghiso(nam); /////////////////////////////////////////////////// ghilenhLCD(0xc5); caidatngay:while (tang!=0 && giam!=0 && menu!=0); if(tang==0) { ngay++; if(ngay==32) ngay=1; ghilenhLCD(0xC4); ghiso(ngay); ghilenhLCD(0x10); delay(300); goto caidatngay; } if(giam==0) { ; if(ngay==0) ngay=31; ghilenhLCD(0xC4); ghiso(ngay); ghilenhLCD(0x10); delay(300); goto caidatngay; } 55 Bài tập lớn môn Thực hành sở //////////////////////////////////////////////////// while(menu==0); ghilenhLCD(0xC8); caidatthang:while(tang!=0 && giam!=0 && menu!=0); if(tang==0) { thang++; if(thang==13) thang=1; ghilenhLCD(0xC7); ghiso(thang); ghilenhLCD(0x10); delay(300); goto caidatthang; } if(giam==0) { thang ; if(thang==0) thang=12; ghilenhLCD(0xC7); ghiso(thang); ghilenhLCD(0x10); delay(300); goto caidatthang; } //////////////////////////////////////////////////////// while(menu==0); ghilenhLCD(0xCD); caidatnam:while(tang!=0 && giam!=0 && menu!=0); 56 Bài tập lớn môn Thực hành sở if(tang==0) { nam++; if(nam==100) nam=0; ghilenhLCD(0xCC); ghiso(nam); ghilenhLCD(0xCD); delay(300); goto caidatnam; } if(giam==0) { nam ; if(nam==0xff) nam=99; ghilenhLCD(0xCC); ghiso(nam); ghilenhLCD(0xCD); delay(300); goto caidatnam; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // CAI DAT THU while(menu==0); ghilenhLCD(1); ghi_chuoi("CHINH THU :"); ghilenhLCD(0xc4); 57 Bài tập lớn môn Thực hành sở ghi_chuoi(day[thu-1]); caidatthu:while(tang!=0 && giam!=0 && menu!=0); if(tang==0) { thu++; if(thu==8) thu=1; ghilenhLCD(0xC4); ghi_chuoi(day[thu-1]); delay(300); goto caidatthu; } if(giam==0) { thu ; if(thu==0) thu=7; ghilenhLCD(0xC4); ghi_chuoi(day[thu-1]); delay(300); goto caidatthu; } while(menu==0); ghilenhLCD(1); // ket thuc cai dat //thi thuc hien xoa man hinh ghilenhLCD(0x0C); //bat hien thi tat tro //CAP NHAT THOI GIAN VAO RTC giatrikhoitao_rtc[0] = dec_bcd(giay); giatrikhoitao_rtc[1] = dec_bcd(phut); giatrikhoitao_rtc[2] = dec_bcd(gio); giatrikhoitao_rtc[3] = dec_bcd(thu); giatrikhoitao_rtc[4] = dec_bcd(ngay); 58 Bài tập lớn môn Thực hành sở giatrikhoitao_rtc[5] = dec_bcd(thang); giatrikhoitao_rtc[6] = dec_bcd(nam); giatrikhoitao_rtc[7] = 0x00; giatrikhoitao_rtc[8] = 'c'; //ghi vao vi tri dau tien cua ram co (flag) ghivaoDS1307(); ghilenhLCD(1); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // CHUONG TRINH CON KIEM TRA DU LIEU TU DS1307 KHI KHOI DONG // void kiemtra_rtc(void) { unsigned char temp; start_rtc(); gui_rtc(0xd0); gui_rtc(0x08);//doc du lieu tu ghi co dia chi 0x08 (vi tri ram dau tien) start_rtc(); gui_rtc(0xd1); temp=nhan_rtc();//con tro dang tro toi dia chi 0x08 chua du lieu flag (co?`) xem da cai dat hay chua stop_rtc(); if(temp!='c') { theo y minh // neu gia tri thu nhan duoc khac voi co 'c' cap nhat cai dat gio // thi tuc la lan dau duoc khoi tao, ta se chon gia tri ghi vao ban dau giatrikhoitao_rtc[0]=0x50; giatrikhoitao_rtc[1]=0x59; giatrikhoitao_rtc[2]=0x09; giatrikhoitao_rtc[3]=0x04; giatrikhoitao_rtc[4]=0x04; giatrikhoitao_rtc[5]=0x05; 59 Bài tập lớn môn Thực hành sở giatrikhoitao_rtc[6]=0x11; giatrikhoitao_rtc[7]=0x00; giatrikhoitao_rtc[8]='c'; ghivaoDS1307(); } } /////////////////////////////////////////////////////////////////////////////// void doccacdulieu(void){ int i; for(i=0;i cho phep ngat ngoai ta co 1(0)00 0001 = 81 doccacdulieu(); while(1) { doccacdulieu(); hienthi_rtc(); 60 Bài tập lớn môn Thực hành sở if(co==1) //co =1 ngat xay => cai dat gio { caidat_rtc(); co=0; } } } 3.3.Kết mô 61 Bài tập lớn môn Thực hành sở KẾT LUẬN Sau thời gian tìm hiểu, hướng dẫn nhiệt tình thầy … nhóm chúng em hoàn thành đề tài " Mạch hiển thị thời gian, ngày, tháng, năm, phút giây LCD, sử dụng vi điều khiển họ 8051 IC thời gian thực DS1307 chỉnh thời gian, ngày tháng" Đồng hồ hiển thị thứ, ngày, tháng, năm, giờ, phút, giây, cài đặt thời gian thơng qua giao tiếp phím ấn Qua chúng em củng cố kiến thức học, kết hợp với thực tiễn, phục vụ cho công việc tương lai nhiều Chúng em cố gắng để thực đề tài cách hồn thiện nhanh thể, trình độ hạn chế nên nhiều thiếu sót, đề tài dừng lại việc làm đồng hồ hiển thị thời gian đơn giản Cũng với đề tài này, tương lai chúng em phát triển mức cao hơn, kết hợp chúng với thiết bị khác để sử dụng thực tiễn sống đồng hồ kèm đo nhiệt độ, hẹn giờ, chuông báo, lịch làm việc cá nhân hay tập thể,… 62 Bài tập lớn môn Thực hành sở DANH MỤC TÀI LIỆU THAM KHẢO [1] Bài giảng vi xử lý–vi điều khiển – Đại học Kỹ Thuật Công Nghiệp [2] Bài giảng Hệ thống Nhúng – Đại học Kỹ Thuật Công Nghiệp [3] Giáo trình họ vi điều khiển 8051 – Tống Văn Ơn [4] Hướng dẫn sử dụng kit 8051 – BKIT HARDWARE CLUB [5] Programing Embedded Systems II – Michael J.Pont – Unisversity of Leicester Các trang web tham khảo: [1] http://www.keil.com/forum/ [2] http://vagam.dieukhien.net/ [3] http://vidieukhien.net/ [4] http://www.8051projects.net/ [5] http://www.hocavr.com/index.php/app/textlcd [6] http://www.hocavr.com/index.php/app/ds1307 63 ... gian, ngày, tháng, năm, phút giây LCD, sử dụng vi điều khiển họ 8051 IC thời gian thực DS1307 Có chỉnh thời gian, ngày tháng" Mục đích đề tài hướng đến: tạo bước đầu cho sinh vi n thử nghiệm ứng dụng. .. ứng dụng thiết kế thời gian thực IC thời gian thực, vi điều khiển, cách thức hiển thị thời gian thực • IC thời gian thực: Hiện thị trường có loại IC thời gian thực phồ biến DS1307 DS12887 Các IC. .. Khối điều khiển trung tâm Khối điều khiển trung tâm sử dụng vi điều khiển AT89C51, qua chương trình lập trình nạp cho chip, vi điều khiển điều khiển vi c đọc, ghi thời gian thực, hiển thị thời gian
- Xem thêm -

Xem thêm: Báo cáo:Mạch hiển thị thời gian, ngày, tháng, năm, giờ phút giây bằng LCD, sử dụng vi điều khiển họ 8051 và IC thời gian thực DS1307. Có chỉnh thời gian, ngày tháng, Báo cáo:Mạch hiển thị thời gian, ngày, tháng, năm, giờ phút giây bằng LCD, sử dụng vi điều khiển họ 8051 và IC thời gian thực DS1307. Có chỉnh thời gian, ngày tháng, Đồng hồ âm thanh:, CHƯƠNG 2: THIẾT KẾ HỆ THỐNG, GND (20): Chân nối đất (0V)., Giới thiệu chung về DS1307:, Sự truyền nhận dữ liệu trên chuỗi bus 2 dây:, CHƯƠNG 3. XÂY DỰNG HỆ THỐNG

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay