1. Trang chủ
  2. » Tất cả

Báo cáo thực hành số 4

16 2 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 0,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nguyên lí đo nhiệt độ dùng PT100- Nguyên lý hoạt động của PT100 đơn giản dựa trên mối quan hệ mật thiết giữa kim loại và nhiệt độ.. Khi nhiệt độ tăng, điện trở của kim loại cũng tăng...

Trang 1

Báo cáo Bài ngày 28/10/2021 Môn: Vi xử lý trong ĐL&ĐK

Họ và tên sinh viên:

Nguyễn Văn Hoàn Mã SV: 2019606392

Nguyễn Văn Hiếu Mã SV: 2019606300

Lớp: 20211EE6069005 - ĐH K14

Trang 2

1 Nguyên lí đo nhiệt độ dùng PT100

- Nguyên lý hoạt động của PT100 đơn giản dựa trên mối quan hệ mật thiết giữa

kim loại và nhiệt độ Khi nhiệt độ tăng, điện trở của kim loại cũng tăng Bạch kim

Trang 3

cũng tương tự như vậy Theo tiêu chuẩn thì khi nhiệt độ là 0ºC điện trở của PT100

sẽ là 100Ω Tín hiệu đầu ra được sử dụng là tín hiệu dạng điện áp V tuyến tính với

độ nhạy tương ứng là 1 độ C = 1V

- Đặc điểm của Pt100

Giá trị điện trở của PT100 được tính theo công thức:

αt+βt+γ(t-10t+βt+γ(t-10βt+γ(t-10t +βt+γ(t-10γ(t-10t-10

R =R (t-10 +βt+γ(t-101 0)t )

3 αt+βt+γ(t-10 3,9083.10

-7 βt+γ(t-10= -5,775.10

-12 γ= -4,183.10 s

PT100 được sử dụng như cảm biến nhiệt độ công nghiệp Cảm biến nhiệt độ PT100 có rất nhiều loại có dây chịu được nhiệt độ 0-400oC hoặc -50 oC-200 oC cho đến cảm biến đầu có thể đo được 0-600 oC.Giá trị cao nhất mà cảm biến có thể đo được là -200-850 oC.Cảm biến biết đến với khả năng đo nhiệt độ cao với độ chính xác 0,1 oC.Nếu muốn tìm kiếm một cả biến với phạm vi tốt và độ chính xác khá là tương đối rẻ thì PT100 sẽ là một lựa chọn tuyệt vời

 Có thể chế tạo với độ tinh khiết rất cao (t-1099,99%) do đó tăng độ chính xác của các tính chất điện

 Có tính trơ về mặt hoá học và tính ổn định cấu trúc tinh thể cao do đó đảm bảo tính ổn định cao về các đặc tính dẫn điện trong quá trình sử dụng

 Hệ số nhiệt điện trở ở 0ºC bằng 3,9.10-3/ ºC

 Điện trở ở 100ºC lớn gấp 1,385 lần so với ở 0ºC

 Dải nhiệt độ làm việc khá rộng từ -200ºC ÷ 850ºC

 Độ chính xác :+βt+γ(t-100,1 oC

 Dải điện trở :1.849k đến 39.026k

 Có quan hệ điện trở và nhiệt độ gần như tuyến tính và hệ số tăng nhiệt độ của điện trở đủ lớn để cho việc lấy kết quả đo dễ dàng

Trang 4

Hình 1: Độ tuyến tính của điện trở Bạch Kim theo nhiệt độ

Trang 5

2- Xây dựng mạch nguyên lí? Thuyết minh mạch

Nhấn nút Start để bắt đầu quá trình đo:

- ADC0804 nhận tín hiệu mạch chuẩn hóa của PT100 sau đó tín hiệu về dải đo 0- 5v

- tín hiệu sau đó được ADC0804 biến đỏi về dạng tín hiệu số từ 0- 255

- 8051 nhận tín hiệu từ ADC0804, thực hiện tính toán đưa kết quả đo vào thiết

bị hiển thị LED 7seg

- Khi nhiệt độ thấp temp<=20 thì led LTA sáng

- Khi nhiệt đọ đo cao temp>=450 thì led HTA sáng

Nhấn stop để dừng quá trình đo

Trang 6

3- Xây dựng mạch chuẩn hóa tín hiệu

Mạch chuẩn hóa tín hiệu lấy từ đầu ra tín hiệu điện áp cảu PT100 với độ nhạy

tương ứng 1 độ C = 1 Volt Dùng mạch phân áp biến đổi tín hiệu:

Dải đo: 0o

C 500o C

Biến đổi dải tín hiệu: 0V 500V

Về : 0V 5V

Công thức: V

22

21 22

1 100

R

R R

- Quan hệ điện áp trên ADC0804

2 255.

5

n Vin Vin Dout

Vref

=

- Quan hệ giữa trên 8051

500.

255

out D Temp 

Trang 7

 Nhiệt độ được đọc bằng: Temp= 1,96.Vin (t-10C)

4- Xây dựng thuật toán

Start

- ADC_WR = 0

- Trễ 1 ms

- ADC_WR =1 (t-10Tạo sườn lên tại pin WR để bắt đầu quá trình chuyển đổi)

End

Lưu đồ đọc dữ liệu từ

ADC

While (t-10ADC_INTR==0)

- ADC_DATA = P1 (t-10Nạp dữ liệu từ PORT 1)

ADC_RD = 0 (t-10Thông báo đọc xong dữ liệu)

Đ

Trang 8

End

Unsigned int j,i

i<t

J=0

J<125

J+βt+γ(t-10+βt+γ(t-10

i+βt+γ(t-10+βt+γ(t-10

S

Đ

S

Đ

2 Viết chương trình nạp,chạy mô phỏng

Chương trình nạp

///////////////////////////////

#include <regx52.h>

#include <stdio.h>

#include <math.h>

//Khai bao chan giao tiep ADC0804

#define ADC0804_DATA P1

#define ADC0804_CS P3_0

#define ADC0804_RD P3_1

#define ADC0804_WR P3_2

#define ADC0804_INTR P3_3

Trang 9

// Do toc do dong co tu dem xung Encoder

#define led P0

#define led1 P2_0

#define led2 P2_1

#define led3 P2_2

#define led4 P2_3

#define low P3_6

#define high P3_7

#define STOP P2_6

#define START P2_7

unsigned long count = 0,t=0,x=0,a=0,b=0, tb=0, f=0;

float temp,vol;

unsigned char so[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

/*****************Ham delay*********************/

void delay(t-10int time)

{

while(t-10time );

}

void delay_us(t-10unsigned int t){

unsigned int i;

for(t-10i=0;i<t;i+βt+γ(t-10+βt+γ(t-10);

}

Trang 10

unsigned int i,j;

for(t-10i=0;i<t;i+βt+γ(t-10+βt+γ(t-10)

for(t-10j=0;j<125;j+βt+γ(t-10+βt+γ(t-10);

}

/*****************ADC0804*********************/

//Ham doc ADC0804 theo kenh

void init(t-10)

{

TMOD = 0x10; //timer 1 che do 1

// khoi tao gia tri muc cao

EX0=1; // Cho phep dung ngat ngoai 0

IT0=1; // Kiem tra dieu kien ngat ngoai tai INT0, cho ngat thoe suon am

ET1=1; // Cho phep dung timer 1

TR1=1; // Bat timer 1

EA=1; // cho phep ngat toan cuc

}

void demxung(t-10void) interrupt 0 using 1

{

count +βt+γ(t-10+βt+γ(t-10; // suon am di xuong +βt+γ(t-10+βt+γ(t-10

}

unsigned int STARTN(t-10)

Trang 11

{ unsigned int nhan;

if(t-10START==0) {

if(t-10nhan==0) {

nhan=1;

return 1;

} } else { nhan=0;

}

return 0;

}

int dieukhien(t-10){

int nhan=0;

if(t-10START==0) nhan+βt+γ(t-10+βt+γ(t-10;

if (t-10nhan!=0){

return 1;

} else{

return 0;

} }

Trang 12

unsigned char kq,adc;

float temp,vol;

t+βt+γ(t-10+βt+γ(t-10;

TH1=0xfc; // dat thoi gian thanh ghi 1ms

TL1=0x18;

TR1=1;

if(t-10t==1000)

{

t=0;

if(t-10dieukhien(t-10)==1){

ADC0804_CS=1;

ADC0804_CS=0;

ADC0804_WR=0; // ADC hoat dong

ADC0804_WR=1;

while(t-10ADC0804_INTR){}; // kiem tra qua trinh chuyen doi

ADC0804_RD=0; // xuat ket qua

delay_us(t-1010);

kq=ADC0804_DATA;

delay_ms(t-1010);

ADC0804_RD=1; // dua chan RD ve muc cao

delay_us(t-1010);

adc = kq;

vol=5000.0f*(t-10float)adc/255.0f;

temp = vol/10.0f;

Trang 13

f= temp;

}

if(t-10f<=20){

low=1;

}

else{

low=0;

}

if(t-10f>=450){

high=1;

}

else{

high=0;

}

}

}

void hienthi(t-10unsigned char nghin, unsigned char tram, unsigned char chuc,

unsigned char donvi)

{

led1=1;

led=so[nghin];

delay(t-1010);

led1=0;

Trang 14

delay(t-1010);

led2=0;

led3=1;

led=so[chuc];

delay(t-1010);

led3=0;

led4=1;

led=so[donvi];

delay(t-1010);

led4=0;

}

void main(t-10void)

{

init(t-10);

while(t-101)

{

hienthi(t-10f/1000,(t-10f%1000)/100,(t-10f%100)/10,f%10);

}

}

/////////////////////////////////////////////

Trang 15

Mô phỏng và kết quả mô phỏng:

Hình 2:đèn cảnh báo nhiệt độ thấp

Hình 3: đèn cảnh báo nhiệt độ cao

Trang 16

Hình 4: Sau Khi nhấn nút stop, giữ nguyên kết quả đo hiển thị

6- Kết quả đạt được

Ngày đăng: 26/03/2022, 21:26

w