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
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
1 MB
Nội dung
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ềukhiển 12 Hình 2.5 Sơ đồ thuật toán cài đặt hiểnthị LCD 13 Hình 2.6 Sơ đồ khối nguồn 14 Hình 2.7 Khối điềukhiển trung tâm 14 Hình 2.8 Khối tạo thờigianthực 15 Hình 2.9 Khối hiểnthị 16 Hình 2.10 Các nút điềukhiể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 ICthờigianthực DS1307 25 Hình 2.17 Khối mạch thờigianthự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ềukhiể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ềukhiể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ềukhiể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ểukhiển nhỏ gọn nhiều tích hợp lại có khả lập trình để điềukhiển Nên tiện dụng động Với tính ưu việt viđiềukhiển phạm vi đồ án nhỏ này, chúng em chọn đề tài " Mạch hiểnthịthờigian,ngày,tháng,năm,phútgiâyLCD,sửdụngviđiềukhiểnhọ8051ICthờigianthực DS1307 Cóchỉnhthờigian,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ụngviđiềukhiểnthự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 Vì nhóm mong góp ý thầy cô 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ờigian nhỏ ngày; đối lập với lịch, công cụ để đo thờigian dài ngày Những loại đồng hồdùng kĩ thuật thường có độ 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ểnthịthờigian • Đồng hồ cơ: Đồng hồ thể thờigiansửdụng góc Mặt đồng hồcó 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ờigian Thơng thường có 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ờigian trước • Đồng hồ âm thanh: Để tiện lợi hơn, có 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ờigian 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 có góc hình hiểnthị Tuy nhiên, đồng hồ lúc sửdụng để hiểnthịthờigian Nó sửdụng để điềukhiển vật theo thờigianVí 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 có số nghiên cứu xử lí khơng đồng bộ) Máy tính lưu trữ thờigian để báo hiệu để hiểnthịthờigian Bên máy tính có đồ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ờigian khái niệm mơn vật lý Do đó, chế tạo dụng cụ đo thờigian xác 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ờigianthựcICthờigian thực, viđiều khiển, cách thứchiểnthịthờigianthực • ICthờigian thực: Hiệnthị trường có loại ICthờigianthực phồ biến DS1307 DS12887 Các ICcó chức chạy thờigianthực lưu điện, với DS1307 cần có thêm nguồn ni pin cmos 3V, với DS12887 có sẵn pin tích hợp bên Các ICthực giao tiếp với viđiềukhiển để thịthờigian 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: Có nhiều loại viđiềukhiển khác sửdụng mạch đồng hồviđiềukhiển pic, avr, 8051… Các loại viđiềukhiển pic hay avr có nhiều ưu điểm so Bài tập lớn môn Thực hành sở với 8051hỗ 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ó cách hiểnthị là: sửdụng LED đoạn sửdụng LCD LED đoạn: - Ưu điểm: hiểnthị 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ểnthị dễ dàng, linh động việc hiểnthịthờigian, 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ờigianthực với trung tâm điềukhiển AT89C51 linh kiện khác: LCD hiển thị, IC ổn áp7805, ICthờigianthực DS1307 AT89C51 có ư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ềukhiển khác; cóhỗ trợ lập trình điềukhiển hợp ngữ C IC DS1307 IC chuyên dụng, cho khả xác thờigian LCD hiểnthị 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ờigian nguồn cấp (có nguồn dự trữ) • Nguồn ni (pin CMOS) cho ICthờigianthự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ờigianthực Khối hiểnthị 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ờigian thực: lưu trữ thờigian thực, thờigian cài đặt • Khối Xử lý: Dùngviđiềukhiển AT89C51 để lấy liệu từ khối thờigian thực, lưu trữ đưa khối hiểnthị 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ềukhiển để hiểnthịngày • Khối giao tiếp: khối bàn phím, thực cài đặt để viđiềukhiển lưu liệu vào khối thờigianthự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 thuchien xoa man hinh ghilenhLCD(0x0C); //bat hienthi tat tro //CAP NHAT THOIGIAN 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ờigian 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ểnthịthờigian,ngày,tháng,năm,phútgiâyLCD,sửdụngviđiềukhiểnhọ8051ICthờigianthực DS1307 Cóchỉnhthờigian,ngày tháng" Đồng hồhiểnthị thứ, ngày,tháng,năm, giờ, phút, giây, cài đặt thờigian 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 có 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ểnthịthờigian đơ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ụngthự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ềukhiể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ềukhiển8051 – 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