Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
2,35 MB
Nội dung
LỜI CẢM ƠN Trong thời gian học tập làm đồ án tốt nghiệp, em nhận nhiều hướng dẫn giúp đỡ quý báu thầy, cô giáo khoa Điện – ĐiệnTử Nhất thầy, cô giáo ngành Điệntử viễn thông, nhà giáo tận tình giảng dạy cho em suốt thời gian học tập trường Đặc biệt em xin gửi lời biết ơn sâu sắc đến người thân bố mẹ người theo sát em học tập chỗ tựa để em hoàn thành thời gian học tập trường, em gửi lời chúc tới thầy,Thạc sĩ.Nguyễn Phương Lâm, người thầy kính mến hướng dẫn, động viên, tạo điều kiện thuận lợi cho em suốt trình học tập hướng dẫn trực tiếp em hoàn thành đồ án tốt nghiệp Em xin bày tỏ lòng biết ơn sâu sắc đến Thầy Em xin bày tỏ lòng cảm ơn tới Ban giám hiệu Trường Đại học Hàng hải Việt Nam, bạn bè nhiệt tình giúp đỡ, tạo điều kiện thuận lợi để em hoàn thành tiến độ đồ án tốt nghiệp i LỜI CAM ĐOAN Tôi xin cam đoan đề tài nghiên cứu thực Các số liệu kết luận nghiên cứu trình bày đồ án chưa công bố nghiên cứu khác Tơi xin hồn tồn chịu trách nhiệm lời cam đoan Hải Phòng, tháng 12 năm 2015 Sinh viên Hoàng Văn Tự ii MỤC LỤC LỜI CẢM ƠN .i LỜI CAM ĐOAN ii MỤC LỤC iii MỘT SỐ TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN v DANH MỤC CÁC BẢNG vi DANH MỤC CÁC HÌNH VẼ .vi MỞ ĐẦU .1 CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG ĐIỀUKHIỂNTỪXABẰNGĐIỆNTHOẠI 1.1 SƠ ĐỒ KHỐI CỦA THIẾT BỊ ĐIỀUKHIỂNTỪXABẰNGĐIỆNTHOẠI .2 1.2 TELEPHONE LINE 1.3 PHỐI GHÉP 1.3.1 IC chuyên dụng MT8870 .5 1.3.2 Sơ đồ khối IC MT8870 1.3.3 Phương thức giải mã DTMF 1.4 KHỐI MCU 1.4.1 MCU 1.4.2 Vi điềukhiển ATmega16 10 1.4.3 Cấu trúc bên ATmega16 11 1.5 KHỐI RELAY VÀ LCD 22 1.5.1 Relay 22 1.5.2 LCD hiển thị 23 CHƯƠNG 2: MƠ HÌNH MẠCHĐIỀUKHIỂNTỪXABẰNGĐIỆNTHOẠI 24 2.1 Sơ đồ khối sơ đồ nguyên lý tổng thể mơ hình mạch 24 2.2 Ngun lý khối mạch .25 2.2.1 Mạch nguồn 25 2.2.2 Mạch phối ghép 26 2.2.3 Mạch vi điềukhiển MCU 28 iii 2.2.4 Khối hiển thị 30 2.2.5 Mạch relay 31 2.3 Hoạt động thực tế mạch 32 CHƯƠNG 3: XÂY DỰNG THUẬT TỐN VÀ LẬP TRÌNH CHO THIẾT BỊ ĐIỀUKHIỂNTỪXABẰNGĐIỆNTHOẠI 36 3.1 YÊU CẦU ĐẶT RA 36 3.2 NGÔN NGỮ LẬP TRÌNH C VÀ PHẦN MỀM CODEVISION 36 3.2.1 Cơ ngôn ngữ C .36 3.2.2 Phần mềm Codevision .41 3.3 SƠ ĐỒ THUẬT TOÁN XỬ LÝ 46 KẾT LUẬN 47 DANH MỤC TÀI LIỆU THAM KHẢO .48 NHẬN XÉT TÓM TẮT CỦA GIẢNG VIÊN HƯỚNG DẪN .49 ĐÁNH GIÁ CỦA NGƯỜI PHẢN BIỆN 50 iv MỘT SỐ TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN DTMF MCU LCD Dual Tone Multi Frequency: Âm kép đa tần số Micro-controller Unit: Bộ vi điềukhiển LED DC Light Emitting Diode: Đi ốt phát quang Direct current: Dòng điện chiều AC Alternating current: Dòng điện xoay chiều Vpp Voltage peak to peak: Điện áp đỉnh đỉnh Vrms Voltage root mean square: Điện áp trung bình bình phương CMOS Complementary Metal-Oxide-Semiconductor: cơng nghệ dùng để chế AVR tạo mạch tích hợp Họ vi điềukhiển hãng Atmel sản xuất I/O In/Out: Vào ASCII American Standard Code for Information Interchange: Bộ ký tự dựa Liquid Crystal Display: Màn hình tinh thể lỏng bảng chữ latin xây dựng nên v DANH MỤC CÁC BẢNG Số bảng Tên bảng Trang 1.1 Phân loại tần số tín hiệu Tone 1.2 Mã hóa bàn phím điệnthoại 3.1 Bảng 3.1: Các kiểu liệu thường dùng lập trình C cho vi 41 điềukhiển vi DANH MỤC CÁC HÌNH VẼ Số hình Tên hình Trang 1.1 Sơ đồ khối hệ thống điềukhiểntừxađiệnthoại 1.2 Kiểu dáng sơ đồ chân IC MT8870 1.3 Sơ đồ khối IC MT8870 1.4 Kiểu dáng sơ đồ chân ATmega16 11 1.5 Sơ đồ khối cấu trúc AVR ATmega16 12 1.6 Các ghi hỗ trợ làm việc AVR CPU 14 1.7 Sơ đồ nhớ process 17 1.8 Sơ đồ nhớ liệu 18 1.9 Những chu kỳ truy xuất SRAM 19 1.10 Relay 5V – 220V / 10A sơ đồ đấu nối 22 1.11 Hình dạng thực tế LCD16X2 23 2.1 Sơ đồ khối mạchđiềukhiểntừxađiệnthoại 24 2.2 Sơ đồ nguyên lý tổng thể mạchđiềukhiểntừxa 25 2.3 Sơ đồ mạch nguồn 25 2.4 Sơ đồ mạch phối ghép 26 2.5 Sơ đồ mạch vi điềukhiển 28 2.6 Mạch hiển thị 29 2.7 Thuật toán hiển thị liệu LCD 31 2.8 Mạch relay 32 2.9 Mạch chưa hoạt động 33 2.10 Mạch khởi động reset 34 2.11 Thực điềukhiển relay 35 3.1 Cửa sổ project 42 3.2 Cửa sổ tap ports 42 3.3 Cửa sổ tap External IRQ 43 vi 3.4 Cửa sổ định dạng chuẩn giao tiếp I2C 44 3.5 Lưu project 45 3.6 Lưu đồ thuật tốn chương trình 46 vii MỞ ĐẦU Ngày với với phát triển nhanh chóng khoa học kỹ thuật, nhiều công nghệ đời với mục đích làm cho việc trở nên đơn giản, tiện lợi nhằm đáp ứng nhu cầu ngày cao người lĩnh vực Do công nghệ hướng đến khả khơng dây làm cho người giải phóng, tựthoải mái hơn.Và thiết bị điêukhiểntừxa cơng nghệ đóng góp phần vào đại nhân loại “Chúng ta sống xãhội phát triển mặt: kinh tế, đời sống, văn hóa, xã hội… vậy, muốn thích nghi phải khơng ngừng học tập nghiên cứu Sinh viên chúng em phải học tập hồn thiện Khi kinh tế phát triển nhu cầu sống tăng theo Nhận thấy điều đó, nên ngành điệntử khơng ngừng phát triển để phục vụ người tốt hơn, phát triển ngành điềukhiểntự động Chạy theo nhu cầu sống ngày đại, nên em tham khảo nhiều tài liệu cuối em chọn đề tài: “Thiết kếmạchđiềukhiểntừxađiệnthoạingõcóphảnhồiâm thanh” Nhằm giúp ích cho, người việc điềukhiểnthiết bị nhà nói riêng, thiết bị cơng nghiệp nói chung mà người làm việc trực tiếp Mục đích mạchđiềukhiểntừxađiềukhiểnngõ cách độc lập với mà không cần đến tận nơi để bật cơng tắc Mạchđiềukhiểntừxa tất loại điệnthoại tiện lợi cho người điềukhiểncó kết nối thơng tin liên lạc Một cách xác, hiệu mà khơng cần thời gian sức lực Yêu cầu mạchđiềukhiển chạy xác, ổn định, nhỏ gọn, dễ lắp đắt sửa chữa, dễ sử dụng cho tất người.”( http://doc.edu.vn/tailieu/de-tai-he-thong-bao-trom-bao-chay-qua-duong-day-dien-thoai-2859/) CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG ĐIỀUKHIỂNTỪXABẰNGĐIỆNTHOẠI Hiện thị trường có nhiều thiết bị điềukhiểntừxa khác nhau, đặc biệt thiết bị điềukhiểntừxađiệnthoạiĐiệnthoại chức nghe, gọi, nhắn tin… Mà có khả thiết bị điềukhiểntừxa tiện dụng mà ai ln mang theo bên Khi xa nhà, trang trại, cơng sở… Vơ tình qn tắt bật muốn tắt bật thiết bị khơng thiết bị điềukhiểntừxađiệnthoại thay làm cơng việc Từ đây, thấy điều, thiết bị điềukhiểntừxađiệnthoại giúp tiện lợi nhiều sống hàng ngày Để tìm hiểu cơng nghệ em xin trình bày q trình mơ hình hóa thiết bị điềukhiểntừxađiệnthoại làm rõ hoạt động sau 1.1 SƠ ĐỒ KHỐI CỦA THIẾT BỊ ĐIỀUKHIỂNTỪXABẰNGĐIỆNTHOẠI Sơ đồ khối thiết bị điềukhiểntừxađiện thoại: Hình 1.1: Sơ đồ khối hệ thống điềukhiểntừxađiệnthoại Mô tả chức khối: a Telephone line: Đường truyền tín hiệu điện thoại, truyền tín hiệu điệnthoại - tổng đài điệnthoại Trong tín hiệu điệnthoại ấn nút bàn phím âm đa tần DTMF phát Âm đưa vào mạchđiềukhiển thông qua dắc cắm tai nghe vào khối phối ghép mạch Chapter CHƯƠNG 3: XÂY DỰNG THUẬT TOÁN VÀ LẬP TRÌNH CHO THIẾT BỊ ĐIỀUKHIỂNTỪXABẰNGĐIỆNTHOẠI 3.1 YÊU CẦU ĐẶT RA Một số yêu cầu đặt việc xây dựng thuật toán phần mềm viết cho chương trình sau: + Vi điềukhiển sử lý tín hiệu từ MT8870 đưa xử lý đưa lên khối hiển thị LCD điềukhiển relay + Người sử dụng sử dụng dễ dàng thiết bị 3.2 NGÔN NGỮ LẬP TRÌNH C VÀ PHẦN MỀM CODEVISION Ngơn ngữ để viết chương trình cho AVR thường đa dạng Từ ngôn ngữ cấp thấp ASM tới ngôn ngữ cao basic, pascal, C & C+ +, ngôn ngữ đồ họa Khi sử dụng ngôn ngữ cấp thấp để viết chương trình giúp ta hiểu rõ cấu trúc vi điềukhiển nhiên lại thời gian ta xây dựng ứng dụng lớn.Với ngôn ngữ bậc cao có ưu điểm giúp ta chương trình cách nhanh chóng, rút ngắn thời gian xây dựng ứng dụng Trong ngôn ngữ bậc cao ngơn ngữ C sử dụng rộng rãi lập trình cho dòng vi điềukhiển nói chung dòng AVR nói riêng Trình biên dịch giúp ta dịch file viết thành ngôn ngữ máy để nạp vào vi điềukhiển Hiện nay, có nhiều trình biên dịch cho vi điềukhiển AVR, trình dịch sử dụng nhiều ngôn ngữ để viết : AvrStudio(ASM,C); Codevision, ICCAVR,MikroC(C) ; Bacom, AvrFast(basic), Flowcode( ngôn ngữ đồ họa) 3.2.1 Cơ ngơn ngữ C “Ngơn ngữ lập trình C ngôn ngữ mạnh nhiều người sử dụng Lập trình ngơn ngữ cấp cao C giúp xây dựng ứng dụng 36 nhanh chóng dễ dàng Sau giới thiệu cách cách viết chương trình cho AVR sử dụng ngơn ngữ C Một chương trình C cho AVR thường bao gồm thànhphần như: Chú thích (coments), biểu thức (expressions), câu lệnh (statements), khối (blocks), toán tử, cấu trúc điềukhiển (flow controls), hàm (function)… Chú thích (comments): Có hai cách để tạo thích C thích dòng dấu “//” dòng đầu đoạn Ví dụ : “//tho cua xuan quynh duoc moi nguoi yeu quy”, thích block cách kẹp block cần thích vào /*….*/ ví dụ: /* ban co the type bat ki chu thich nao block Ngay ca ban xuong dong Phan chu thich thuong co mau chu la green*/ Tiền xử lý (Preprocessor): tiện ích ngơn ngữ C , Các preprocessor trình biên dịch xử lý trước tất phần khác Các preprocessor bắt đầu dấu “#” , ngơn ngữ C có hai preprossor sử dụng phổ biến #include #define dùng để định nghĩa chuỗi thay macro Biểu thức (expressions): phần câu lệnh, biểu thức bao gồm biến, tốn tử, gọi hàm…Biểu thức trả giá trị đơn Biểu thức khơng phải câu lệnh hồn chỉnh Câu lệnh (statements): dòng lệnh hồn chỉnh bao gồm từ khóa (key words), biểu thức có câu lệnh khác kết thúc dấu “;” Khối (Blocks): kết hợp nhiều câu lệnh để thực nhiệm vụ khối kẹp hai dấu mở khối “{” đóng khối “}” Toán tử (operators): ký hiệu báo cho trình biên dịch biết nhiệm vụ cần thực (toán tử đại số, toán tử logic quan hệ…) Cấu trúc điềukhiển (flo controls): Các cấu trúc điềukhiển cho phép chương trình thực theo ý tưởng người viết chương trình Các cấu trúc điềukhiển thường dùng lập trình C 37 “If (điều kiện) câu lệnh;” Nếu điều kiện thực câu lệnh sau, câu lệnh viết dòng hay dóng sau từ khóa If Điều kiện biểu thức kết hợp nhiều điều kiện thông qua toán tử quan hệ AND( &&), OR(//),…Điều kiện cho khác Trong trường hợp cần thực nhiều câu lệnh điều kiện thỏa mãn ta đặt câu lệnh khối: If (điều kiện) { Câu lệnh 1; Câu lệnh 2; …… } If (điều kiện) câu lệnh 1; else câu lệnh 2; ”: Nếu điều kiện thực câu lệnh 1, khơng thực câu lệnh Việc đặt else câu lệnh dòng hay khác dòng không làm thay đổi ý nghĩa cấu trúc Nếu cần thực hiền nhiều câu lệnh câu lệnh cần đặt khối: If (điều kiện) { Câu lệnh 1; Câu lệnh 2; …… } Else { Câu lệnh 1; Câu lệnh 2; …… } 38 Trong trường hợp có nhiều khả xảy cho biểu thức ( hay biến) với khả lại cẩn thực cơng việc đó,ta sử dụng cấu trúc Swich: Swich (biểu thức) Case _số_1; Các câu lệnh 1; Break; Case _số_2; Các câu lệnh 2; Break; Dedaul: Các câu lệnh khác; } Cấu trúc swich hoạt động theo cách thức sau: chương trình tính giá trị biểu thức sau đem so sánh với giá trị số đặt phía sau từ khóa case Biểu thức có giá trị số thực câu lệnh case đến tìm thấy từ khóa break Có thể đặt case tùy ý Nếu giá trị biểu thức không tương ứng với số chương trình thực câu lệnh phần default (nếu cóphần này) Cấu trúc lặp while: “While (điều kiện) câu lệnh 1”.Ý nghĩa cấu trúc lặp while thực câu lệnh (hoặc khối câu lệnh đặt dấu “{}”) điều kiện Cấu trúc lặp For: cấu trúc lặp khác, cấu trúc for, biểu_thức_1 thường hiểu khởi tạo, biểu_thức_2 điều kiện biểu_thức_3 biểu thức thực sau Cấu trúc for tương đương với cấu trúc while sau: biểu_thức_1; while (biểu_thức_2){ statement; 39 biểu_thức_3; } Các biểu thức cấu trúc for vắng mặt cấu trúc nhung dấu “;” khơng bỏ Nếu bạn viết for( ; ; ) tương đương với vòng lặp vô tận while (1) Cấu trúc for thường dùng để thực hay cơng việc số lần đó, ví dụ bên thực xuất giá trị từ đến 200 PORTB, sau lần xuất gọi lệnh delay 65000 chu kỳ máy For(Unit8_ti=0;i