Tải bản đầy đủ (.doc) (19 trang)

Dùng vi điều khiển để đo và khống chế nhiệt độ, đồng thời cho hiển thị lên Led 7 thanh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (540.37 KB, 19 trang )

Trường Đại Học Công Nghiệp Hà Nội

Lớp:

LỜI NÓI ĐẦU

Kỹ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vào rất nhiều
lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiều lĩnh vực khác
nữa. So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rất nhiều do nó được
tích hợp lại và có khả năng lập trình được để điều khiển. Nên rất tiện dụng và cơ động.
Với tính ưu việt của vi điều khiển thì trong phạm vi đồ án nhỏ này, em chỉ dùng vdk để
đo và khống chế nhiệt độ, đồng thời cho hiển thị lên Led 7 thanh.
Mục đích của đề tài hướng đến: tạo ra bước đầu cho sinh viên thử nghiệm
những ứng dụng của vdk trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng
khác trong đời sống hằng ngày cần đến.
Việc thực hiện xong đồ án môn học bằng các kiến thức đã học, một số sách
tham khảo và một số nguồn tài liệu khác nên không tránh khỏi những thiếu sót. Vì vậy
nhóm rất mong được sự góp ý của thầy cô và các bạn.

Đo và khống chế nhiệt độ

1


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

NHẬN XÉT CỦA GIÁO VIÊN
......................................................................................................................................................
......................................................................................................................................................


......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
..........
......................................................................................................................................................
......................................................................................................................................................
.
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
..........
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................

......................................................................................................................................................

Đo và khống chế nhiệt độ

2


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

......................................................................................................................................................
......................................................................................................................................................
..........

MỤC LỤC
Lời nói đầu...............................................................................................................1
Mục lục..................................................................................................................... 2

Phần I:Giới thiệu chung
1.Giới thiệu chung...................................................................................................3
2.Đặc điểm chung......................................................................................................3
3.Sơ đồ chân 89S52....................................................................................................4
4.Chip ADC0804....................................................................................................................6
5.IC Cảm biến nhiệt LM35 ..................................................................................................9

Phần II:Thiết kế và thi công
1.Sơ đồ nguyên lý................................................................................................................11
2.Sơ đồ mạch in...................................................................................................................11
3.Chương trình phần mềm................................................................................................12

4.Giải thích chương trình..................................................................................................14

Đo và khống chế nhiệt độ

3


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Phần I:Giới thiệu chung
1.Giới thiệu chung
Bộ vi điều khiển viết tắt là Micro-contronller, là mạch tích hợp trên một chíp
có thể lập trình được, dùng để điều khiển hoạt động của hệ thống. Theo các tập
lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý
thông tin, đo lường thời gian và tiến hành đọc mở một cơ cấu nào đó.
Trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển
hoạt động của tivi, máy giặt, đầu đọc laser, điện thoại...Trong hệ thống sản xuất
tự động, bộ vi điều khiển được sử dụng trong robot, dây chuyền tự động. Các hệ
thống càng thông minh thì vai trò của vi điều khiển càng quan trọng.
2. Đặc điểm chung
IC vi điều khiển 8052 thuộc họ MCS51 có các đặc điểm sau :
-8 kbyte ROM (được lập trình bởi nhà sản xuất chỉ có ở 8052 )
-256 byte RAM
-4 Port I/0 8 bit
-3 bộ định thời 16 bit
-Giao tiếp nối tiếp
-64 KB không gian bộ nhớ chương trình mở rộng
-64 KB không gian bộ nhớ dữ liệu mở rộng

- Một bộ vi xử lí(thao tác trên các bit đơn)
-210 bit được địa chỉ hoá
-Bộ nhân/chia 4us

3. Sơ đồ chân 89S52.
Đo và khống chế nhiệt độ

4


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Sơ đồ trên là sơ đồ bố trí chân của 8052. Ta thấy rằng trong 40 chân thì
có 32 chân dành cho các cổng P0, P1, P2 và P3 với mỗi cổng có 8 chân. Các
chân còn lại được dành cho nguồn VCC, đất GND, các chân dao động XTAL1 và
XTAL2, tái lập RST, cho phép chốt địa chỉ ALE, truy cập được địa chỉ ngoài EA
, cho phép cất chương trình PSEN . Trong 8 chân này thì 6 chân VCC , GND,
XTAL1, XTAL2, RST và EA được các họ 8031 và 8051 sử dụng. Hay nói cách
khác là chúng phải được nối để cho hệ thống làm việc mà không cần biết bộ vi
điều khiển thuộc họ 8051 hay 8031. Còn hai chân khác là PSEN và ALE được
sử dụng chủ yếu trong các hệ thống dựa trên 8031. Chức năng các chân như
sau:
-Port 0 (P0.0-P0.7).
Port 0 bao gồm 8 chân , ngoài chức năng xuất nhập ra thi Port 0 còn là
Bus đa hợp địa chỉ và dữ liệu, chức năng địa chỉ sẽ được sử dụng khi AT89S52
giao tiếp với các thiết bị ngoài có kiến trúc Bus (8255).
-Port 1 (P1.0-P1.7).
Chức năng duy nhất của Port 1 là chức năng xuất nhập, Port 1 có thể xuất

nhập theo byte hoặc theo bit giống như là các Port khác của 89S52.
Đo và khống chế nhiệt độ

5


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Ngoài ra các chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo tiêu
chuẩn ISP, 2 chân P1.0 và P1.1 được dùng cho bộ Timer 2.
-Port 2 (P2.0-P2.7).
Port 2 cũng là Port đa hợp địa chỉ và dữ liệu .
-Port 3 (P3.0-P3.7).
Mỗi chân trên Port 3 ngoài chức năng xuất nhập ra còn có một chức năng
đặc biệt khác.
Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7

Tên
RXD
TXD

INT0
INT1
T0
T1
WR

Chức năng
Dữ liệu nhận cho Port nối tiếp
Dữ liệu phát cho Port nối tiếp
Ngắt ngoài 0
Ngắt ngoài 1
Ngõ vào của Timer/counter 0
Ngõ vào của Timer/counter 1
Xung nghi bộ nhớ dữ liệu

RD

ngoài
Xung đọc bộ nhớ dữ liệu
ngoài

Đo và khống chế nhiệt độ

6


Trường Đại Học Công Nghiệp Hà Nội

Lớp:


-PSEN ( Program store enable).
PSEN là chân điều khiển cho phép bộ nhớ chương trình mở rộng, được
nối đến chân OE của một EPROM để cho phép đọc các bytes mã lệnh.
- ALE (Addres latch enable).
ALE là tín hiệu để chốt địa chỉ vào một thanh nghi bên ngoài trong nửa
đầu của một chu kỳ bộ nhớ. Sau đó các đường Port 0 dùng để xuất hoặc
nhập trong nửa sau của chu kỳ bộ nhớ. Các xung tín hiệu ALE có tốc độ
bằng 1/6 lần tần số đao động thạch anh và có thể được sử dụng là nguồn
xung nhịp cho các hệ thống.
-EA (External access).
EA thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở
mức cao, bộ vi điều khiển thi hành chương trình từ ROM nội. Nếu ở mức
thấp chương trình chỉ được thi hành từ bộ nhớ mở rộng.
- RST (Reset).
Ngõ vào RST trên chân 9 là ngõ reset của 89S52. Khi tín hiệu này được
đưa lên mức cao trong ít nhất 2 chu kỳ máy thì các thanh nghi trong vi
điều khiển được tải những giá trị thích hợp để khởi động hệ thống.
-XTAL1,XTAL2.
AT89S52 có một bộ dao động trên chip, nó thường được nối với bộ dao
động thạch anh có tần số lớn nhất là 33MHz, thông thường là 12MHz.
-VCC,GND.
+5có dải điện áp từ 4V đến 5.5V.
AT89S52 dùng nguồn 1 chiều
10k

20
V
Vin(
Vc
Vin(+)

c
A
)Vref/
19 GND
2CLK
1
1
1
9

D
D
4.Chip ADC0804
0D
T
1D
2D
3
10k
ADC0804 D
4D
R
4
CLK
5D
1
6
150p
CS
2 in

7
W
F
10 R
INT
D
R
D
Đo và khống chế nhiệt độ
R
GND
PO

18
17
16
15
14
13
12
11
3
5

đến đèn
LEDs

Thường
mở
START


7


Trường Đại Học Công Nghiệp Hà Nội

Đo và khống chế nhiệt độ

Lớp:

8


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Chip ADC0804 là bộ chuyển đổi tương tự sang số. Chip có điện áp nuôi
+5V và độ phân giải 8 bit. Ngoài độ phân giải thì thời gian chuyển đổi cũng là
một tham số quan trọng khi đánh giá bộ ADC. Thời gian chuyển đổi được định
nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số
nhị phân. Đối với ADC0804 thời gian chuyển đổi phụ thuộc vào tần số đồng hồ
được cấp tới chân CLKR và CLK IN và không bé hơn 110s. Các chân của
ADC0804 có chức năng như sau:
a)CS (Chip Select) - chọn chip
Là chân chọn chip, đầu vào tích cực mức thấp được sử dụng để kích hoạt
chip ADC804. Để truy cập ADC0804 thì chân này phải ở mức thấp.
b)RD (Read) - đọc
Đây là một tín hiệu vào, “tích cực mức thấp”. Các bộ ADC chuyển đổi
đầu vào tương tự thành số nhị phân và giữ nó ở một thanh ghi trong. RD

được sử dụng để có dữ liệu được đã chuyển đổi tới đầu ra của ADC0804.
Khi CS = 0 nếu có một xung cao-xuống-thấp áp đến chân RD thì dữ liệu
ra dạng số 8 bit được đưa tới các chân dữ liệu D0 - D7. Chân RD còn
được coi là cho phép đọc.
c)WR (Write) - ghi
Thực ra, tên chính xác là “Bắt đầu chuyển đổi”. Đây là chân vào “tích cực
mức thấp” được dùng để báo cho ADC0804 bắt đầu quá trình chuyển đổi.
Nếu CS = 0 khi WR tạo ra xung cao-xuống-thấp thì bộ ADC0804 bắt đầu
tiến hành chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bit.
Lượng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số
đưa đến chân CLK IN và CLK R. Khi việc chuyển đổi dữ liệu được hoàn
tất thì chân INTR được ADC0804 hạ xuống thấp.
d)CLK IN và CLK R

Đo và khống chế nhiệt độ

9


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

CLK IN là chân vào, được nối tới một nguồn đồng hồ ngoài khi đồng hồ ngoài
được sử dụng để tạo thời gian. Tuy nhiên 0804 cũng có một bộ tạo xung
đồng hồ trên chip. Để dùng đồng hồ trong (cũng còn được gọi là đồng hồ
riêng) của 804 thì các chân CLK IN và CLK R được nối tới một tụ điện
và một điện trở như chỉ ra ở hình 12.5. Trong trường hợp này tần số đồng
hồ được xác định bằng biểuthức:


f

1
1,1RC

Giá trị thông thường của các đại lượng trên là R = 10k, C= 150pF và tần
số nhận được là f = 606kHz, còn thời gian chuyển đổi sẽ là 110s.
e)INTR (Interrupt)
Ngắt hay còn gọi là “kết thúc việc chuyển đổi’. Đây là chân ra tích cực
mức thấp. Bình thường, chân này ở trạng thái cao và khi việc chuyển đổi hoàn
tất thì nó xuống thấp để báo cho CPU biết là dữ liệu được chuyển đổi đã sẵn
sàng để lấy đi. Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung caoxuống-thấp tới chân RD để đưa dữ liệu ra.
f)Vin (+) và Vin (-)
Đây là hai đầu vào tương tự vi sai, trong đó V in = Vin (+) - Vin (-). Thông
thường Vin (-) được nối xuống đất và Vin (+) được dùng làm đầu vào tương tự
và sẽ được chuyển đổi về dạng số.
g)VCC
Là chân nguồn nuôi +5v. Chân này còn được dùng làm điện áp tham chiếu
khi đầu vào Vref/2 (chân 9) để hở.
h)Vref/2
Chân 9 là điện áp đầu vào được dùng làm điện áp tham chiếu. Nếu chân
này hở (không được nối) thì điện áp đầu vào tương tự cho ADC804 nằm trong
dải 0 đến +5v (giống như chân V CC). Tuy nhiên, có nhiều ứng dụng mà đầu vào
tương tự áp đến Vin khác với dải 0 đến 5v. Chân Vref/2 được dùng để thực hiện
các điện áp đầu vào có dải khác với 0 - 5V. Ví dụ, nếu dải đầu vào tương tự cần
Đo và khống chế nhiệt độ

10



Trường Đại Học Công Nghiệp Hà Nội

Lớp:

biến đổi từ 0 đến 4V thì Vref/2 được nối với +2V.
Bảng 12.5 biểu diễn dải điện áp Vin đối với các đầu vào Vref/2 khác nhau.
i)D0 - D7
D0 - D7 là các chân ra dữ liệu số (D7 là bit cao nhất MSB và D0 là bit thấp
nhất LSB). Các chân này được đệm ba trạng thái và dữ liệu đã được chuyển đổi
chỉ được truy cập khi chân CS = 0 và chân RD đưa xuống mức thấp. Để tính
điện áp đầu ra ta có thể sử dụng công thức sau:
Dout 

Vin
(kích thước bước tham khảo phần giải thích)
kichthuocbuoc

ở đây Dout là đầu ra dữ liệu số (dạng thập phân). V in là điện áp đầu vào tương tự
và kích thước bước (độ phân dải) là sự thay đổi nhỏ nhất được tính bằng
(2Vref/2) chia cho 256 đối với ADC 8 bit.
Từ những trình bày trên, có thể tóm tắt các bước khi ADC0804 thực hiện
chuyển đổi dữ liệu là:
1. Bật CS = 0 và gửi một xung thấp lên cao tới chân WR để bắt đầu chuyển đổi.
2. Duy trì kiểm tra chân INTR. Nếu INTR xuống thấp thì việc chuyển đổi được
hoàn tất và có thể chuyển sang bước tiếp theo. Nếu INTR còn ở mức cao thì
tiếp tục thăm dò cho đến khi nó xuống thấp.
3. Sau khi chân INTR xuống thấp, bật CS = 0 và gửi một xung cao-xuống-thấp
đến chân RD để nhận dữ liệu từ chip ADC0804.
5.IC Cảm biến nhiệt LM35
LM35 là họ cảm biến nhiệt mạch tích hợp chính xác cao có điện áp đầu

ra tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius. Họ cảm biến này không
yêu cầu căn chỉnh ngoài vì vốn nó đã được căn chỉnh. Họ này cho ra điện áp
10mV ứng với thay đổi nhiệt độ là 10C.
Một số thông số kỹ thuật chính của họ LM35.
Dòng làm việc 400A – 5mA.
Dòng thuận : 10mA
Đo và khống chế nhiệt độ

11


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Dòng ngược: 15mA
Điện áp VS=4V-30V
Điện áp ra 10mV/ 0C

Phối hợp tín hiệu và nối ghép LM35 với 8051

Phối hợp tín hiệu là một thuật ngữ được sử dụng rộng rãi trong lĩnh vực thu
Đo và khống chế nhiệt độ

12


Trường Đại Học Công Nghiệp Hà Nội

Lớp:


nhận dữ liệu. Hầu hết các bộ cảm biến đều đưa ra tín hiệu dạng điện áp, dòng
điện, dung kháng hoặc trở kháng. Tuy nhiên, chúng ta cần
chuyển đổi các tín hiệu này về điện áp để đưa đến đầu vào của bộ chuyển đổi
ADC. Sự chuyển đổi (biến đổi) này được gọi chung là phối hợp tín hiệu. Phối
hợp tín hiệu có thể là chuyển dòng điện thành điện áp hoặc khuyếch đại tín
hiệu. Ví dụ, bộ cảm biến nhiệt thay đổi trở kháng theo nhiệt độ. Sự thay đổi trở
kháng cần được chuyển thành điện áp để các bộ ADC có thể sử dụng được. Xét
trường hợp nối LM35 tới ADC0804. Vì ADC0804 có độ phân dải 8 bit với tối
đa có 256 mức (28), và LM35 tạo ra điện áp 10mV ứng với sự thay đổi nhiệt độ
10C, nên ta có điều chỉnh điện áp vào tại chân IN bằng cách thay đổi Vref/2 tại
chân 9

Phần II: thiết kế và thi công
Sơ đồ nguyên lý .

Đo và khống chế nhiệt độ

13


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Sơ đồ mạch in:

Đo và khống chế nhiệt độ

14



Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Chương trình phần mềm
#include<reg52.h>
#include<stdio.h>
#include<math.h>
sbit den_do=P2^3;
sbit den_vang=P2^1;
sbit den_xanh=P2^2;
sbit INTR_ADC=P3^6;
sbit RD_ADC=P3^4;
sbit WR_ADC=P3^5;
sbit led1 = P2^4;
sbit led2 = P2^5;
sbit led3 = P2^6;
sbit led4 = P2^7;
unsigned int temp,i;
unsigned int set_t=25;
unsigned char
M[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
unsigned char donvi,chuc ;
void tre(unsigned int t)
{
for(i=1;i<=t;++i);
}
void hienthi(void)

{
Đo và khống chế nhiệt độ

15


Trường Đại Học Công Nghiệp Hà Nội

chuc=(temp)/10;

Lớp:

// tach lay hang chuc

donvi=(temp)%10; // tach lay hang don vi
led1=1;
P0=M[chuc];
tre(800);
led1=0;
P0=0xFF;
led2=1;
P0=M[donvi];
tre(800);
led2=0;
P0=0xFF;
}
void ht_dat()
{
chuc=(set_t)/10; // nt
donvi=(set_t)%10; //nt

led3=1;
P0=M[chuc];
tre(800);
led3=0;
P0=0xFF;
led4=1;
P0=M[donvi];
tre(800);
led4=0;
P0=0xFF;
Đo và khống chế nhiệt độ

16


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

}
void so_sanh_temp() // ham so sanh nhiet do
{
if(temp==set_t)
{
den_vang=0;
den_do=den_xanh=1;
}
else
if(temp>set_t)
{

den_xanh=0;
den_do=den_vang=1;
}
else
if (temp{
den_do=0;
den_vang=den_xanh=1;
}
}
void main ()
{
IE=0x85; // cho phep ngat ngoai 0 va ngat ngoai 1
IP=0;

// uu tien ngat bang nhau

IT1=IT0=1; // ngat theo suon am
//++++++++++++++++//
den_do=den_vang=den_xanh=1;// tat toan bo den
Đo và khống chế nhiệt độ

17


Trường Đại Học Công Nghiệp Hà Nội

Lớp:

while(1)

{

WR_ADC=0;//bat dau chuyen doi
tre(50);
WR_ADC=1; //dung chuyen doi
while(!INTR_ADC);//CHO BIEN DOI XONG
RD_ADC=0; // doc du lieu chuyen doi
temp=P1; // gan gia tri chuyen doi vao bien temp
hienthi();
ht_dat();
so_sanh_temp();
}
}
void ngat_int0() interrupt 0 // ham ngat ngoai 0
{
tre(50); // chong rung phim
set_t++;
}
void ngat_int1() interrupt 2 // ham ngat ngoai 1
{
tre(50); // chong rung phim
set_t--;
}

Giải thích chương trình:

Đo và khống chế nhiệt độ

18



Trường Đại Học Công Nghiệp Hà Nội

Lớp:

Cảm biến LM35 biến đổi nhiệt độ môi trường thành giá trị điện áp xuất
ra tại chân 2 đưa vào ADC. Thao tác chuyển đổi nhiệt độ đo được thành điện áp
cấp vào chân IN của ADC, từ điện áp cấp vào ADC lại được chuyển qua các
chân BD để truyền sang cổng P1 của Vi diều khiển dưới dạng các bít 0 và 1
Điều khiển các chân WR, RD, INT0 của vi mạch biến đổi tương tự – số
ADC0804 để ADC biến đổi điện áp được lấy từ chân 2 của IC cảm biến nhiệt độ
LM35:
- WR=0: cho phép ADC biến đổi.
- WR=1:không cho phép ADC biến đổi.
- Chân RD và INT0 luôn = 0: luôn cho phép ADC xuất ra giá trị ra cổng và
VDK luôn nhận được.
- Điện áp tham chiếu tại chân 9 của ADC được hiệu chỉnh thành 1.28V như vậy
ta có kích thước bước là 10mV.Như vậy giá trị nhỏ nhất mà ADC có thể nhận
biết được là 10mV tương ứng với 1 độ C.
-Giá trị nhiệt độ khống chế được thay đổi bằng 2 phím và được đưa vào ngắt
ngoài INT0 và INT1 của VDK.
Đợi sau khi đã biến đổi xong thực hiện đọc dữ liệu từ ADC vào Port 1 của vi
điều khiển, gán giá trị đọc được cho biến temp. Qua chương trình chuyển đổi lại
chuyển đổi ngược lại từ dạng bít nhận được sang dạng điện áp và rồi chuyển từ
điện áp sang nhiệt độ rồi được hiển thị trên 2Led 7 thanh.(Q1 và Q2)
Ta có thể điều chỉnh nhiệt độ khống chế tăng lên hoặc giảm xuống bằng phím
nhấn. Thao tác khống chế ở đây được thực hiện mô phỏng qua 3 led là đỏ, vàng,
xanh. Để tiện cho việc thay đổi giá trị khống chế nhiệt độ,chúng em để 2LED 7
thanh (Q3 và Q4) để hiển thị giá trị nhiệt độ khống chế.


Đo và khống chế nhiệt độ

19



×