Đo và hiển thị nhiệt độ sử dụng vi xử lí AVR

52 30 0
Đo và hiển thị nhiệt độ sử dụng vi xử lí AVR

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƢỜNG ĐẠI HỌC LÂM NGHIỆP VIỆT NAM KHOA CƠ ĐIỆN VÀ CƠNG TRÌNH BỘ MƠN TỰ ĐỘNG HĨA - - KHÓA LUẬN TỐT NGHIỆP Đề tài : ĐO VÀ HIỂN THỊ NHIỆT ĐỘ SỬ DỤNG VI XỬ LÍ AVR Giáo viên hƣớng dẫn : TS Hồng Sơn Sinh viên thực : Nguyễn Văn Thùy Lớp : K58 – Cơ điện tử Mã sinh viên : 1351082101 Khóa : 2013 - 2017 Hà Nội – năm 2017 MỞ ĐẦU Khái niệm đo nhiệt độ có từ lâu, tất đại lƣợng vật lý nhiệt độ đƣợc quan tâm đến nhiều Nhiệt độ yếu tố ảnh hƣởng trực tiếp đến tính chất vật chất mơi trƣờng sống Trong công nghiệp sản xuất lĩnh vực đo lƣờng điều khiển, trình đo nhiệt độ xử lý kết giữ vai trò quan trọng Ngày cơng, nơng nghiệppháttriển mạnh, việc kiểm sốt nhiệt độ, độ ẩm bảo quản, lƣu trữ sản phẩm công, nông nghiệp kho chứa quan trọng em quết định chọn đề tài (Đo hiển thị nhiệt độ sử dụng vi xử lý AVR) Cảm ơn giúp đỡ thầy (cô) giáo, Nhất giúp đỡ thầy Hoàng Sơn hƣớng đẫn em thực đồ án Rất mong nhận đƣợc đóng góp ý kiến thầy cơ, nhƣ bạn khóa luận em đƣợc hoàn thiện Sinh viên thực Nguyễn Văn Thùy MỤC LỤC MỞ ĐẦU Chƣơng 1: TỔNG QUAN VỀ HỆ THỐNG ĐO NHIỆT ĐỘ 1.1 Khái niệm chung 1.2 Các phƣơng pháp đo nhiệt độ 1.3 Quá trình đo nhiệt độ 1.3.1 Khâu chuyển đổi .3 1.3.2 Khâu xử lý .4 1.3.3 Khâu thị CHƢƠNG 2: NGHIÊN CỨU MẠCH NGUYÊN LÝ CỦA BỘ ĐO VÀ HIỂN THỊ .5 2.1 Vi xử lý 2.2 Khối trung tâm 2.2.1 Sơ đồ khối ATMEGA16 2.2.2 Mô tả chân linh kiện: 11 2.3 Khối cảm biến nhiệt độ 14 2.3.1Đặc điểm thông số DS18B20 .15 2.3.2 Tổng quan: 16 2.3.3 Phƣơng thức giao tiếp: 18 2.3.4 Cách đọc nhiệt độ: 20 2.4 Khối hiển thị LCD 21 2.4.1 Hình dáng kích thƣớc: 21 2.4.2 Chức chân 23 2.4.3 Sơ đồ khối HD44780: 23 2.4.4 Tập lệnh LCD 26 2.4.5 Giao tiếp LCD MPU 27 2.4.4 Khởi tạo LCD: .27 Chƣơng 3: THIẾT KẾ CHƢƠNG TRÌNH PHẦN MỀM .29 3.1 Thuật toán điều khiển 29 3.1.1 Các thị trƣớc sử lý 29 3.1.2 Các toán tử 29 3.1.3 Các kiểu liệu 31 3.1.4 Cấu trúc chƣơng trình C 31 3.2 Lập trình C CodeVisionAVR cho ATMega16 để đo nhiệt độ .32 3.3 Mô phần mềm proteus 38 KẾT LUẬN VÀ KIẾN NGHỊ .42 DANH MỤC BẢNG Bảng 2.1: Các chức PORT B 11 Bảng 2.2: Chức Port C 12 Bảng 2.3: Các chức PORT D .12 Bảng 2.4: Các ghi ADC .13 Bảng 2.5: Dữ liệu ghi DS18B20 17 Bảng 2.6: Chức chân LCD 23 Bảng 2.7 Chức chân RS R/W theo mục đích sử dụng .25 Bảng 2.8: Công suất tối đa 27 Bảng 3.1: Bảng liệu 31 DANH MỤC HÌNH Hình 1.1:Cặp nhiệt điện Hình 1.2: Nhiệt điện trở Hình 1.3: IC cảm biến nhiệt độ .2 Hình 1.4: Cảm biến thạch anh Hình 2.1: Vi điều khiên AVR Hình 2.2: Các dịng AVR, tiny, AVR AT mega Hình 2.3: Vi điều khiển ATMEGA 16 Hình 2.4: Sơ đồ chân ATMEGA16 Hình 2.5: Sơ đồ khối ATMEGA16 10 Hình 2.6: Cảm biến DS18B20 .14 Hình 2.7: Sơ đồ chân DS18B20 15 Hình 2.8: Sơ đồ khối DS18B20 .16 Hình 2.9: Bộ nhớ DS18B20 17 Hình 2.10: Kết nối vi điều khiển đấu mạch cảm biến .20 Hình2.11: Hình dáng loại LCD thông dụng 22 Hình 2.12: Sơ đồ chân LCD 22 Hình 2.13 Sơ đồ khối HD44780 .24 Hình 3.2: Cửa sổ lập trình C cho AVR 39 Hình3.3: Kết sau biên dịch .40 Hình 3.4: Nạp trương trình cho vi điều khiển 40 Hình 3.5: Mơ đo nhiệt độ Proteus 41 Hình 3.6: Nhiệt độ đo ngời thực tế .41 Chƣơng 1: TỔNG QUAN VỀ HỆ THỐNG ĐO NHIỆT ĐỘ 1.1 Khái niệm chung Trong nghiên cứu khoa học, sản xuất nhƣ sinh hoạt ngày, nhiệt độ đối tƣợng vật lý cần đƣợc theo dõi, việc đo nhiệt độ trở vấn đề vơ cần thiết Nhiệt độ cần đo thấp (một vài độ), cao (vài ngàn,vài chục ngàn độ) Độ xác nhiệt độ có cần tới vài phần ngàn độ, nhƣng có vài chục độ chục độ chấp nhận đƣợc Việc đo nhiệt độ đƣợc tiến hành nhờ dụng cụ hỗ trợ chuyên biệt nhƣ Cặp nhiệt điện: Hình 1.1:Cặp nhiệt điện Nhiệt điển trở: Hình 1.2: Nhiệt điện trở IC cảm biến nhiệt độ: Hình 1.3: IC cảm biến nhiệt độ Cảm biến thạch anh: Hình 1.4: Cảm biến thạch anh  Tùy theo khoảng nhiệt độ cần đo sai số cho phép mà ngƣời ta lựa chọn cảm biến phƣơng pháp đo phù hợp 1.2 Các phƣơng pháp đo nhiệt độ Tùy theo nhiệt độ đo dùng phƣơng phá khác nhau, thông thƣờng nhiệt độ đo đƣợc chia thành ba dải Nhiệt độ thấp, nhiệt độ trung bình nhiệt độ cao Ở nhiệt độ trung bình thấp phƣơng pháp đo phƣơng pháp không tiếp xúc, đặt dụng cụ ngồi mơi trƣờng, cịn dải nhiệt độ cao (trên 1000oC) thƣờng dùng phƣơng pháp đo khơng tiếp xúc 1.3 Q trình đo nhiệt độ Ta chia q trình đo nhiệt độ khâu Chƣơng 3: THIẾT KẾ CHƢƠNG TRÌNH PHẦN MỀM 3.1 Thuật tốn điều khiển C ngơn ngữ mạnh nhiều ngƣịi dùng Nếu nói số lệnh C khơng nhiều Nhƣng lập trình cho vi xử lý ngƣời lập trình cần biết số lƣợng lệnh không nhiều Đầu tiên bạn phải làm quen với: - Các kiểu toán tử C - Các kiểu liệu - Cẩu trúc chƣơng trình - Các cấu trúc điều khiển (chính tập lệnh) + Cấu trúc điều kiện if else + Các cấu trúc lặp Vòng lặp while Vòng lặp while Vòng lặp for - Cấu trúc lựa chọn: switch case break - Biết sử dụng hàm chƣơng trình 3.1.1 Các thị trước sử lý - Chú thích đƣợc đặt sau dấu “ // ” “/* */ ” - Gọi thƣ viện #include Ví dụ #include - Lệnh gán #define biến_thay_thế biến Ví dụ: #define start PINA.0 3.1.2 Các toán tử - Toán tử gán (=) Ví dụ: b = 5; a = + b; a = + (b = 5); a = b = c = 5; - Các toán tử số học ( +, -, *, /, % ) (cộng), - (trừ) , * (nhân) , / (chia) - Các toán tử gán phức hợp (+=, -=, *=, /=, >>=, = Lớn < = Nhỏ - Các toán tử logic ( !, &&, || ) ! NOT , && AND, || OR - Các toán tử thao tác bit (&, |, ^, ~, ) & AND Logical AND, | OR Logical OR ^ XOR Logical exclusive OR ~ NOT Đảo ngƣợc bit > SHR Dịch bit sang phải 3.1.3 Các kiểu liệu Bảng 3.1: Bảng liệu Type Bits Bytes Range char -128 to +127 unsigned char to 255 enum 16 -32,768 to +32,767 short 16 -32,768 to +32,767 unsigned short 16 to 65,535 int 16 -32,768 to +32,767 unsigned char 16 to 65,535 long 32 -2,147,483,648 to +2,147,483,647 unsigned long 32 -Cách khai bao biến Kiểu_biến tên_biến; Ví dụ: char so; to 4,294,697,295 3.1.4 Cấu trúc chương trình C #include //Gọi thƣ viện có sẵn cách viết khác "*.h"// #define led1 PORTA.0 // Dùng định nghĩa biến// char bien1,bien2; //Cac biến cần dùng// int a,b; void chuongtrinhcon(unsigned int b) //chƣơng trình con// { … } int ham(void) //chƣơng trình hàm // { … Return(a); } void main(void) //chƣơng trình chính// { int a; //Khai báo biến số nguyên// chuongtrinhcon(); a = ham(); } 3.2 Lập trình C CodeVisionAVR cho ATMega16 để đo nhiệt độ Đoạn codevision AVR: ***************************************************** This program was created by the CodeWizardAVR V3.12 Advanced Automatic Program Generator © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l http://www.hpinfotech.com Project : Version : Date : 2/27/2017 Author : Company : Comments: Chip type : ATmega16L Program type : Application AVR Core Clock frequency: 16.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *******************************************************/ #include // Wire Bus interface functions #include // DS1820 Temperature Sensor functions #include // Alphanumeric LCD functions #include #include #include // Declare your global variables here unsigned char *T=0; char LCD_Buffer[25]; float Temp; void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0

Ngày đăng: 22/06/2021, 09:36

Tài liệu cùng người dùng

Tài liệu liên quan