Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
1,93 MB
Nội dung
LỜI MỞ ĐẦU Ngày nay, với phát triển xã hội, ngành điện tử, quy mô trường học, lớp học mở rộng quy mô lẫn số lượng việc sử dụng công cụ thô sơ không phù hợp, thay vào thiết bị điện tử đại, có độ tự động, hiệu cao sử dụng rộng dãi Sự phát triển ngành điện tử mạnh mẽ việc sử dụng vi điều khiển để thiết kế chế tạo thiết bị hỗ trợ báo không khó Các thiết bị báo giờ, cần tác động, thay đổi chút ta sử dụng chúng nhiều nơi khác mà đạt kết mong muốn Là sinh viên kỹ thuật nói chung ngành kỹ thuật điện tử nói riêng, việc nắm bắt công nghệ ứng dụng chúng vào đời sống vô quan trọng để theo kịp công nghệ Sau thời gian tìm tòi nắm bắt kiến thức vi điều khiển, trình làm mạch thực tế, nhóm sinh viên định làm đề tài kết thúc môn Thực tập sở “Thiết kế mạch chuông báo lớp học tự động sử dụng vi điều khiển AT89C52” Do thời gian có hạn, kiến thức thành viên, đặc biệt trang thiết bị phục vụ thực hành, linh kiện để làm mạch hạn chế nên đề tài nhiều thiếu sót, mong nhận giúp đỡ, đóng góp ý kiến thầy, cô đồng chí để báo cáo hoàn thiện hợn Xin chân thành cảm ơn! MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN .6 1.1 Đặt vấn đề 1.2 Phân tích 1.3 Xây dựng phương án 1.4 Phạm vi đề tài phương hướng mở rộng CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu IC AT89C52 2.1.1 Sơ đồ chân AT89C52 2.1.2 Chức chân AT89C52 .10 2.1.3 Các chế độ đặc biệt 12 2.1.4 Các bít khoá nhớ chương trình 13 2.2 Tìm hiểu IC thời gian thực DS1307 14 2.2.1 Giới thiệu chung DS1307 14 2.2.2 Cơ chế hoạt động chức DS1307 15 2.2.3 Sơ đồ địa RAM RTC 16 2.3 Giới thiệu LCD 18 2.3.1 Chức chân LCD 16x2 18 2.3.2 Các ghi .20 CHƯƠNG THIẾT KẾ MẠCH 21 3.1 Sơ đồ khối 21 3.1.1 Sơ đồ khối tổng quát 21 3.1.2 Chức khối 21 3.2 Sơ đồ thuật toán .22 3.3 Sơ đồ nguyên lý khối 23 3.3.1 Khối nguồn 23 3.3.2 Khối hiển thị LCD .23 3.3.3 Khối xử lý AT89C52 23 3.3.4 Khối thời gian thực DS1307 24 3.3.5 Khối điều chỉnh 24 3.3.6 Khối âm 25 3.4 Sơ đồ nguyên lý mạch .26 3.4.1 Sơ đồ mạch .26 3.4.2 Nguyên lý hoạt động 26 CHƯƠNG THI CÔNG MẠCH 41 4.1 Danh sách vật liệu linh kiện 41 4.1.1 Danh sách vật liệu làm mạch 41 4.1.2 Danh sách linh liện sử dụng mạch 41 4.2 Quy trình thi công mạch 42 4.2.1 Thiết kế mạch nguyên lý vẽ mạch in phầm mềm Altium 42 4.2.2 Các bước thi công mạch thực tế .45 4.3 Sản phẩm mạch thực tế 45 KẾT LUẬN 46 TÀI LIỆU THAM KHẢO 47 DANH MỤC HÌNH VẼ LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN .6 1.1 Đặt vấn đề 1.2 Phân tích 1.3 Xây dựng phương án 1.4 Phạm vi đề tài phương hướng mở rộng CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu IC AT89C52 Hình 2.1: Sơ đồ khối AT89C52 2.1.1 Sơ đồ chân AT89C52 Hình 2.2: Sơ đồ chân AT89C52 10 2.1.2 Chức chân AT89C52 .10 Hình 2.3 - Sơ đồ chân RST .11 Hình 2.4 Ngõ vào dao động .12 2.1.3 Các chế độ đặc biệt 12 2.1.4 Các bít khoá nhớ chương trình 13 2.2 Tìm hiểu IC thời gian thực DS1307 14 2.2.1 Giới thiệu chung DS1307 14 Hình 2.5: IC DS1307 .14 2.2.2 Cơ chế hoạt động chức DS1307 15 2.2.3 Sơ đồ địa RAM RTC 16 2.3 Giới thiệu LCD 18 Hình 2.7: Màn hình hiển thị LCD 18 2.3.1 Chức chân LCD 16x2 18 2.3.2 Các ghi .20 CHƯƠNG THIẾT KẾ MẠCH 21 3.1 Sơ đồ khối 21 3.1.1 Sơ đồ khối tổng quát 21 Hình 3.1: Sơ đồ khối tổng quát .21 3.1.2 Chức khối 21 3.2 Sơ đồ thuật toán .22 Hình 3.2: Sơ đồ thuật toán .22 3.3 Sơ đồ nguyên lý khối 23 3.3.1 Khối nguồn 23 3.3.2 Khối hiển thị LCD .23 3.3.3 Khối xử lý AT89C52 23 Hình 3.4: Sơ đồ khối xử lý AT89C52 .24 3.3.4 Khối thời gian thực DS1307 24 Hình 3.5: IC thời gian thực DS1307 .24 3.3.5 Khối điều chỉnh 24 Hình 3.6: Sơ đồ khối điều chỉnh 25 3.3.6 Khối âm 25 Hình 3.7: Sơ đồ khối âm 25 3.4 Sơ đồ nguyên lý mạch .26 3.4.1 Sơ đồ mạch .26 Hình 3.8: Sơ đồ mạch nguyên lý .26 3.4.2 Nguyên lý hoạt động 26 CHƯƠNG THI CÔNG MẠCH 41 4.1 Danh sách vật liệu linh kiện 41 4.1.1 Danh sách vật liệu làm mạch 41 4.1.2 Danh sách linh liện sử dụng mạch 41 4.2 Quy trình thi công mạch 42 4.2.1 Thiết kế mạch nguyên lý vẽ mạch in phầm mềm Altium 42 Hình 4.1: Sơ đồ mạch nguyên lý SCH 42 Hình 4.2: Mạch in sau phủ đồng 43 Hình 4.3: Mạch in chế độ 3D .44 4.2.2 Các bước thi công mạch thực tế .45 4.3 Sản phẩm mạch thực tế 45 Hình 4.6: Sản phẩm mạch thực tế 46 KẾT LUẬN 46 TÀI LIỆU THAM KHẢO 47 DANH MỤC BẢNG BIỂU Bảng 1.1 Thời gian tiết học ngày………………………… .6 Bảng 2.1 Chức chuyển đổi chân P3.0 ÷ P3.7………………….10 Bảng 2.2 Trạng thái chân thời gian chế độ nghỉ nguồn giảm… 12 Bảng 2.3 Các bit khoá nhớ chương trình AT89C52………………….12 Bảng 2.4 Chức chân Module LCD…………………………….17 Bảng 4.1 Danh sách vật liệu làm mạch………………………………….40 Bảng 4.2 Danh sách linh kiện sử dụng mạch……………….40 CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề Hiện với phát triển vi điều khiển Các hệ thống cần thiết hoạt động cách tự động Đơn giản hệ thống chuông hẹn giờ, hệ thống báo động, báo trường học, báo công sở Vấn đề báo tiết học vấn đề cần thiết trường học nào, giúp thầy cô điều chỉnh thời gian dạy học Sẽ thời gian ta phải canh thời gian cho tiết học, thị trường có loại chuông báo cố định thời gian mà tự thay đổi theo học trường, vùng, mùa khác Để đáp ứng yêu cầu nêu lựa chọn đề tài thiết kế thi công mạch chuông báo tiết hoc tự động 1.2 Phân tích Mục đích: - Hệ thống báo chuông thời điểm vào, tiết học trường - Hệ thống có khả chỉnh lại thời gian Yêu cầu: - Hệ thống làm việc ổn định, xác - Có khả đưa vào ứng dụng thực tế 1.3 Xây dựng phương án Sau nghiên cứu thực tế thời điểm vào tiết học trường Đại học Kỹ Thuật Hậu Cần-CAND, có nhận xét sau: Mỗi ngày có buổi học buổi kéo dài tiết Thời gian tiết 45 phút Thời gian nghỉ giải lao phút Sau tiết thứ buổi nghỉ giải lao 10 phút từ ta xây dựng thời khóa biểu bảng 1.1: Bảng 1.1: Thời gian tiết học ngày Tiết Vào Ra Tiết Vào Ra 7h30 8h15 13h 13h45 8h20 9h05 13h50 14h35 9h10 9h55 14h40 15h25 10h05 10h50 15h35 16h20 10h55 11h40 10 16h25 17h10 Thời gian báo: - Thời gian báo chuông giây - Cách báo: sử dụng chuông báo - Phạm vi báo: Tất khu vực giảng đường, lớp học cách xây dựng hệ thống chuông đến khu nhà học, giảng đường 1.4 Phạm vi đề tài phương hướng mở rộng Phạm vi đề tài: - Hệ thống chuông báo dùng cho thời khóa biểu mùa đông mùa hè cách thay đổi thời gian tiết học Nhưng đề tài môn học nên xây dựng thiết kế hệ thống phạm vi thời khóa biểu trường mà học Phương hướng mở rộng: - Thêm thời kháo biểu buổi tối cho trường học theo hệ thống tín Nếu trường không học vào chủ nhật có chế độ không báo chuông vào chủ nhật Có thêm chế độ điều chỉnh thời gian báo chuông cho phù hợp với yêu cầu nhiều trường phạm vi nước - Thiết kế Module điều chỉnh quét phím ma trận giao tiếp bàn phím máy tính lập trình thời khóa biểu theo ý muốn giấc trường nơi làm việc khác - Xây dựng hệ thống chuông báo không dây sử dụng thu-phát song song CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu IC AT89C52 AT89C52 vi xử lý bit, loại CMOS, có tốc độ cao công suất thấp với nhớ Flash lập trình Nó sản xuất với công nghệ nhớ không bay mật độ cao hãng Atmel, tương thích với họ MCS52TM chân tập lệnh AT89C52 có đặc trưng sau: K byte Flash, 128 byte RAM, 32 đường xuất nhập, hai định thời/đếm 16-bit, cấu trúc ngắt hai mức ưu tiên nguyên nhân ngắt, port nối tiếp song công, mạch dao động tạo xung clock chip AT89C52 thiết kế với logic tĩnh cho hoạt động có tần số giảm xuống hỗ trợ hai chế độ tiết kiệm lượng lựa chọn phần mềm Chế độ nghỉ dừng CPU cho phép RAM, định thời/đếm, port nối tiếp hệ thống ngắt tiếp tục hoạt động Chế độ nguồn giảm trì nội dung RAM không cho mạch dao động cung cấp xung clock nhằm vô hiệu hoá hoạt động khác chip có reset cứng Hình 2.1: Sơ đồ khối AT89C52 2.1.1 Sơ đồ chân AT89C52 Mặc dù thành viên họ 89C52 (ví dụ 8751, 89S52, 80C51, DS5000) có kiểu đóng vỏ khác nhau, CFP (Quad Flat Pakage) dạng chip chân đỡ LCC (Leadless Chip Carrier) chúng có 40 chân cho chức khác vào I/O, đọc RD giới hạn hai hàng chân DIP (DualIn - LinePakage), dạng vỏ dẹt vuông QPF, ghi WR, địa chỉ, liệu ngắt Cần phải lưu ý số hãng cung cấp phiên 89C52 có 20 chân với số cổng vào cho ứng dụng yêu cầu thấp Tuy nhiên hầu hết nhà phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta tập trung mô tả phiên Hình 2.2: Sơ đồ chân AT89C52 2.1.2 Chức chân AT89C52 - Port 0: từ chân 32 đến chân 39 (P0.0 ÷ P0.7) Port có chức năng: thiết kế cỡ nhỏ không dùng nhớ mở rộng có chức đường IO, thiết kế lớn có nhớ mở rộng kết hợp bus địa bus liệu - Port 1: từ chân đến chân (P1.0 ÷ P1.7) Port port IO dùng cho giao tiếp với thiết bị bên cần - Port 2: từ chân 21 đến chân 28 (P2.0 ÷ P2.7) Port port có tác dụng kép dùng đường xuất/nhập byte cao bus địa thiết bị dùng nhớ mở rộng - Port 3: từ chân 10 đến chân 17 (P3.0 ÷ P3.7) Port port có tác dụng kép Các chân port có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến đặc tính đặc biệt AT89C52 bảng 2.1 Bảng 2.1 Chức chuyển đổi chân P3.0 ÷ P3.7 Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 Tên RXD TXD INT0 INT1 T0 T1 WR Chức chuyển đổi Ngõ vào liệu nối tiếp Ngõ xuất liệu nối tiếp Ngõ vào ngắt cứng thứ Ngõ vào ngắt cứng thứ Ngõ vào TIMER/ COUNTER thứ Ngõ vào TIMER/ COUNTER thứ Tín hiệu ghi liệu lên nhớ 10 ghilenhLCD(0x80+ 68); // ep tro den vi tri thu dong thu hien_thi(time[2]); //hien thi gio ghi_kytu(':'); ghilenhLCD(0x80); //ep tro den dau dong thu ghi_chuoi(day[time[3]-1]); //hien thi thu ghi_kytu(','); ghilenhLCD(0x80+ 6); //ep tro den vi tri thu dong thu hien_thi(time[4]);//hien thi ghi_kytu('-'); hien_thi(time[5]);//hien thi thang ghi_chuoi("-20"); hien_thi(time[6]); //nam } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // TAO THOI GIAN TRE DUNG TIMER // void delay(long time)//tre time ms { while(time ) { TMOD=0x01;// che 16 bit khong tu nap lai TH0=0xFC;TL0=0x67; // 6*( 65536 - FC67+1)*(1/12000)=1000us =1ms TR0=1; while(TF0!=1){}; TF0=0; TR0=0;} } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // CHUONG TRINH CON THUC HIEN VIEC CAI DAT GIO, PHUT, GIAY, THU, NGAY, THANG, NAM THANG, NAM // unsigned char up(unsigned char bcd,unsigned char min,unsigned char max)// tang so bcd lên don vi { // chinh tang so bcd len gioi han min,max if(bcd>=max) bcd = min; 33 else if ((bcd& 0xf)==9) bcd = bcd + 0x10 - 0x9; // neu hang don vi = thi tang hang chuc len else bcd++; return bcd; } unsigned char down(unsigned char bcd,unsigned char min,unsigned char max)// giam so bcd xuong don vi { // giam so bcd di if(bcd0x7) ghiso(gio1); else ghi_chuoi(day[gio1-1]); ghilenhLCD(lenh2); delay(100); } else if(menu==0 ) 34 { delay(100);// chong rung phim if(menu==0 ) { while(menu==0); // doi den nha phim goto exit1; } } else if(back==0 ){ delay(200);// chong rung phim if(back==0 ) { nut_back=1; goto exit1; } } goto back1; } exit1: return gio1; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// void caidat_rtc() { ghilenhLCD(0x0e);// bat tro so1: time[2]=set(time[2],0,0x23,0xC4,0xC5);//gio so2: time[1]=set(time[1],0,0x59,0xC7,0xC8);//phut if(nut_back) goto so1; so3: time[0]=set(time[0],0 ,0x59,0xCA,0xCB);//giay if(nut_back) goto so2; so4: time[3]=set(time[3],0x1 ,0x7 ,0x80,0x80 + 2);//thu 35 if(nut_back) goto so3; so5: time[4]=set(time[4],1,0x31,0x80+6 ,0x80+ 7);//ngay if(nut_back) goto so4; so6: time[5]=set(time[5],1,0x12,0x80+9 ,0x80+10);//thang if(nut_back) goto so5; time[6]=set(time[6],0x10,0x30,0x80+14,0x80+15);//nam if(nut_back) goto so6; ghilenhLCD(0x0C); //bat hien thi tat tro write_ds(); } //=============================================== void luu_tiet_hoc(void) { unsigned char t; start(); write(0xd0); write(0x20);// luu tu dia chi 0x20 for(t=0;t4)*10 +(bcd & 0xf)); } //========================================================= void bao_tiet_hoc(void) { unsigned int e,f; char i,k; 38 if(time[3]==1) k = 0; // neu la chu nhat thi khong bao chuong else k=10; // thuong bao 10 tiet if(vao_hoc == 1) { f=time[1] + time[2][...]... xử lý AT89C52 Sử dụng IC số là một bất lợi cho quá trình thiết kế từ việc thiết kế, kết nối cho tới chọn linh kiện và khắc phục nhiễu Một lựa chọn để khắc phục nhược điễm của IC số là dùng bộ vi điều khiển AT89C52 với dòng điện tiêu thụ thấp và có thể lập trình được Vi điều khiển sử dụng thạnh anh dao động là 12Mhz Nút ấn kết hợp với tụ C để thực hiện reset 23 Hình 3.4: Sơ đồ khối xử lý AT89C52 3.3.4... tiết học hay không? Nếu có thì nhảy tới chương trình báo chuông và đổ chuông báo, thời gian chuông dài hay ngắn có thể thay đổi trên code, ở đây thời gian báo chuông là 5 giây Việc thiết lập đồng hồ thời gian hay mốc thời gian mỗi tiết học theo ý muốn của người sử dụng Khi thỏa mãn điều kiện thời gian hiện tại bằng với thời gian hẹn trước sẽ có chuông reo 26 3.5 Chương trình Code cho vi điều khiển... hành, ở đây chúng ta sử dụng Transistor C1815 để điều khiển relay 12V/10A Điện trở R=1k để phân cực và hạn dòng cho Transistor - Diode 1N4007 dùng để bảo vệ Transistor khi trong mạch xuất hiện áp ngược từ cuộn dây sinh ra Relay dùng để điều khiển chuông điện Hình 3.7: Sơ đồ khối âm thanh 25 3.4 Sơ đồ nguyên lý mạch 3.4.1 Sơ đồ mạch Từ thiết kế từng khối như trên ta có sơ đồ nguyên lý mạch cụ thể như sau:... đã được thiết lập ban đầu Trong sơ đồ này nó sẽ đảm nhiệm chức năng cấp time chính xác cho vi điều khiển xử lý các công việc mà người sử dụng yêu cầu - Khối điều chỉnh: Chức năng của khối này là sử dụng ngắt của 89C52 để yêu cầu việc điều chỉnh time theo ý của người sử dụng, cài đặt time ban đầu cho đồng hồ thời gian thực RTC Tác động bởi các phím bấm (BUTTON) - Khối âm thanh: Khối này gồm có transistor... (Display Data RAM) 20 CHƯƠNG 3 THIẾT KẾ MẠCH 3.1 Sơ đồ khối 3.1.1 Sơ đồ khối tổng quát Hình 3.1: Sơ đồ khối tổng quát 3.1.2 Chức năng các khối - Khối nguồn: Cung cấp nguồn nuôi tất cả linh kiện trong mạch - Khối thời gian thực DS1307: Khối này thực chất là một chíp thời gian thực (Real Time Clock), được sử dụng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng Nó có pin cấp riêng, như vậy nếu... phút bắt đầu cho mỗi tiết học theo ý muốn của người sử dụng Cài đặt xong thì LCD sẽ trở về màn hình lúc trước và hiển thị thời gian theo thời gian đã cài đặt và hoạt động Trong quá trình thời gian hiện tại được hiển thị trên LCD thì vi điều khiển luôn thực hiển kiểm tra (lặp lại việc kiểm tra) thời gian hiện tại xem xem có trùng với mốc thời gian vào tiết học hay kết thúc tiết học hay không? Nếu có thì... DS1307 Ta chọn IC DS1307 vì đây là IC chạy thời gian thực có độ chính xác rất cao, và đặt biệt là dữ liệu thời gian củng không bị mất khi chúng ta bi mất nguồn hoặc cúp điện Nên đồng hồ ta chạy vẫn chính xác ngay cả khi mất điện Được nuôi bằng nguồn nuôi pin 3V Hình 3.5: IC thời gian thực DS1307 3.3.5 Khối điều chỉnh Sử dụng nút nhấn để tạo tín hiệu vào để điều chỉnh thời gian Nút nhấn được kết nối với... ngoài 13 2.2 Tìm hiểu IC thời gian thực DS1307 2.2.1 Giới thiệu chung về DS1307 Hình 2.5: IC DS1307 IC thời gian thực là họ vi điều khiển của hãng dalat DS1307 có một số đặc trưng cơ bản sau: - DS1307 là IC thời gian thực với nguồn cung cấp nhỏ dùng để cập nhật thời gian và ngày tháng - SRAM: 56bytes - Địa chỉ và dữ liệu được truyền nối tiệp qua 2 đường bus 2 chiều - DS1307 có môt mạch cảm biến điện áp... tác dụng cho phép đọc bộ nhớ chương trình mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte mã lệnh PSEN ở mức thấp trong thời gian AT89C52 lấy lệnh Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong AT89C52 để giải mã lệnh Khi AT89C52 thi hành chương trình trong ROM nội, PSEN ở mức cao - ALE (Address Latch Enable): Khi AT89C52... C=10 µF được mô tả trong hình 2.4 Hình 2.3 - Sơ đồ chân RST - Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên trong 89C52 Khi sử dụng 89C52, người ta chỉ cần nối thêm thạch anh và các tụ Tần số thạch anh tùy thuộc vào mục đích của người sử dụng, giá trị tụ thường được chọn là 33p 11 Hình 2.4 Ngõ vào bộ dao động 2.1.3 Các chế độ đặc biệt - Chế độ nghỉ: Trong chế độ nghỉ, CPU tự đi vào