Thiết kế hệ thống báo cháy và cứu hỏa tự động cập nhập trạng thái các vùng trên màn hình LCD - Pdf 13

n n TRƯỜNG ĐẠI HỌC HÀNG HẢI
KHOA ĐIỆN-ĐIỆN TỬ TÀU BIỂN
BÀI TẬP LỚN
MÔN : VI XỬ LÝ
ĐỀ BÀI: 46
Thiết kế hệ thống báo cháy và cứu hỏa tự động cập nhập trạng
thái các vùng trên màn hình LCD
Yêu cầu công nghệ
- Mô hình công nghệ
- Xây dựng mạch phần ứng
- Thuyết minh nguyên lý
- Xây dựng lưu đồ thuật toán
Viết phần mềm điều khiển, thuyết minh cách thức hoạt động.
Giáo viên hướng dẫn : Nguyễn Văn Tiến
Sinh viên : Phùng Công Thành
Mã sinh viên : 36179
Hải phòng, năm 2012
1
ĐỀ CƯƠNG SƠ BỘ
Mục lục
Lời mở đầu
Chương I: Khái quát về vấn đề cần nghiên cứu
1.1. Giới thiệu về hệ thống thu thập ý kiến
Chương II : Xây dựng mạch phần cứng
2.1 Giới thiệu về vi điều khiển AT89C51
2.2. Sơ đồ phần cứng
- Sơ đồ nguyên lý
- Các phần tử trong mạch
- Thuyết minh nguyên lý hoạt động của mạch
Chương III : Thiết kế phần mềm điều khiển
3.1. Lưu đồ thuật toán

hại, tăng cường độ an tồn, bình yên cho mọi người.
II. CÁC BỘ PHẬN CHÍNH:
3
1. Cảm biến:
Cảm biến là bộ phận hết sức quan trọng, nó quyết định độ nhạy và sự chính xác của
hệ thống.
Cảm biến hoạt động dựa vào các đặt tính vật lý của vật liệu cấu tạo nên chúng.
Cảm biến được dùng để chuyển đổi các tín hiệu vậy lý sang tín hiệu điện.
Các đặc tính của cảm biến: độ nhạy, độ ổn định, độ tuyến tính.
a. Cảm biến nhiệt:
Là loại cảm biến dùng để chuyển tín hiệu vật lý (nhiệt độ) thành tín hiệu điện, đây
là loại cảm biến có độ nhạy tương đối cao và tuyến tính. Nguyên tắc làm việc của
nó là dòng điện hay điện áp thay đổi khi nhiệt độ tại nơi đặt nó thay đổi. Tuy nhiên
nó cũng dễ báo động nhầm khi nguồn điện bên ngồi tác động không theo ý muốn.
Các loại cảm biến nhiệt:
IC cảm biến:
Là loại cảm biến bán dẫn được chế tạo thành các IC chuyên dụng với độ nhạy cao,
điện áp ra thay đổi tỉ lệ thuận với nhiệt độ, một số loại IC được bán bên ngồi thị
trường là: LM355, LM334,…
Thermistor:
Thermistor là loại điện trở có độ nhạy nhiệt rất cao nhưng không tuyến tính và với
hệ số nhiệt âm. Điện trở giảm phi tuyến với sự tăng của nhiệt độ. Vì bản thân là
điện trở nên trong quá trình hoạt động Thermistor tạo ra nhiệt độ vì vậy gây sai số
lớn.
Thermo Couples:
Thermo Couple biến đổi đại lượng nhiệt độ thành dòng điện hay điện áp DC nhỏ.
Nó gồm hai dây kim loại khác nhau nối với nhau tại hai mối nối. Khi các dây nối
đặc ở các vị trí khác nhau, trong dây xuất hiện suất điện động. Suất điện động tỉ lệ
thuận với sự chênh lệnh nhiệt độ giữa hai mối nối. Thermo couple có hệ số nhiệt
dương.

ngoại, tử ngoại…
- Quang trở:
Quang trở còn có tên gọi khác là vật dẫn quang (photo con) là linh kiện thụ động
được tạo ra từ vật liệu bán dẫn mà bề mặt của nó được phơi sáng và điện trở của nó
giãm khi tăng cường độ ánh sáng. Trong quang trở các điện tử tự do được tạo bằng
năng lượng ánh sáng, cường độ ánh sáng càng lớn thì số lượng điện tử tự do càng
lớn. Loại cảm biến này phi tuyến và có độ trể, do đó ít được dùng.
Đặc tuyến của một loại quang trở thông dụng:
- Cảm biến quang bán dẫn:
Đây là loại cảm biến dùng các linh kiện bán dẫn quang như: diode, photo diode,
phototransistor, …Khi có ánh sáng đập vào mặt bán dẫn làm giải phóng các điện tử
tự do và các đện tử này sẽ chuyễn động tạo thành dòng điện.
- Cảm biến quang nhiệt:
Cảm biến này chuyển quang năng thành nhiệt năng và nhiệt năng này sẽ được nhận
biến bằng bộ cảm biến nhiệt, nhiệt độ tỉ lệ với cường độ ánh sáng chiếu vào. Loại
cảm biến này có độ nhạy thấp, thời gian đáp ứng chậm.
Như vậy mỗi loại cảm biến có tính ưu việc riêng của nó. Tuy nhiên nếuϖ mạnh ở
mặt này thì nó sẽ bị hạn chế ở mặt khác, chẳng hạn bộ cảm biến nhiệt chỉ phát hiện
cháy ở vùng gần cảm biến cảm biến và tỏ ra không hiệu quả ở vùng có nhiều nguồn
nhiệt không phải phát sinh ra cháy. Còn các bộ cảm biến khác có thể phát hiện cháy
trong một phạm vi rộng nhưng có đám cháy có ít khói hoặc do các tác động không
phải do cháy ở tại nơi đặt cảm biến thì sẽ bị phát hiện nhầm. Vì vậy tùy theo từng
vùng, từng nơi mà ta thiết kế những bộ cảm biến thích hợp.
2.Thiết bị báo động:
Thiết bị báo động gồm có hai loại:
- Báo động tại chỗ.
- Báo động qua điện thoại.
5
Báo động tại chỗ ta có thể sử dụng các chuông điện, mạch tạo còi hụ hay phát ra
tiếng nói để cảnh báo.

9
18
19
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
2810
11
12
13
14
15
16

P2.5/A13
P2.6/A14
P2.7/A15P3.0/RXD
P3.1/T XD
P3.2/INT O
P3.3/INT 1
P3.4/T O
P3.5/T 1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
C3
10u
7408 & /RD
Address Bus
Max232
740 8
Address &
Data Bus
745 73
8255 & Ram
C210u
12Mz

P3.7
RXD
TXD
INTO
INT1
TO
T1
WR
RD
Dữ liệu nhận cho port nối tiếp
Dữ liệu phát cho port nối tiếp
Ngắt 0 bên ngoài
Ngắt 1 bên ngoài
Ngõ vào của timer/counter 0
Ngõ vào của timer/counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
Bảng 2.1 : Chức năng của các chân trên port3
e.Chân PSEN (Program Store Enable ) : 8051 / 8031 có 4 tín hiệu điều khiển
PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép bộ nhớ
chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một
EPROM để cho phép đọc các bytes mã lệnh.
PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình
được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8051 để giải mã
lệnh. Khi thi hành chương trình trong ROM nội (8051) PSEN sẽ ở mức thụ động
(mức cao).
f.Chân ALE (Address Latch Enable ) :
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí
8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh
các bus địa chỉ và dữ liệu khi port 0 được dùng trong chế độ chuyển đổi của nó :

tiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhịp. Ngõ ra của tần số
cuối làm nguồn xung nhịp cho flip-flop báo tràn của timer (flip-flop cờ). Giá trị nhị
phân trong các flip-flop của timer có thể xem như số đếm số xung nhịp (hoặc các
sự kiện) từ khi khởi động timer. Ví dụ timer 16 bit sẽ đếm lên từ 0000H đến
FFFFH. Cờ báo tràn sẽ lên 1 khi số đếm tràn từ FFFFH đến 0000H.
8051 có 2 timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các
timer để : a) định khoảng thời gian, b) đếm sự kiện hoặc c) tạo tốc độ baud cho port
nối tiếp trong 8051
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở một khoảng
đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực
hiện một tác động như kiểm tra trạng thái của các cửa ngõ vào hoặc gửi các sự kiện
9
ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của
timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ : đo độ rộng xung).
Đếm sự kiện dùng để xác định số lần xẩy ra của một sự kiện. Một "sự kiện" là bất
cứ tác động ngoài nào có thể cung cấp một chuyển trạng thái trên một chân của
8051. Các timer cũng có thể cung cấp xung nhịp tốc độ baud cho port nối tiếp trong
8051 Truy xuất timer của 8051 dùng 6 thanh ghi chức năng đặc biệt cho trong
bảng sau:
SFR MỤC ĐÍCH ĐỊA CHỈ Địa chỉ hóa từng bít
TCON
TMOD
TL0
TL1
TH0
TH1
Điều khiển timer
Chế độ timer
Byte thấp của timer 0
Byte thấp của timer 1

GATE 1 Bit (Mở) cổng, khi lên 1 timer chỉ chạy khi
INT1
ở mức cao.
C/T 1 Bit chọn chế độ counter/timer
1=bộ đếm sự kiện
0=bộ định khoảng thời gian
M1 1 Bit 1 của chế độ(mode)
M0 1 Bit 0 của chế độ
00: chế độ 0 : timer 13 bit
01: chế độ 1 : timer 16 bit
10: chế độ 2 : tự động nạp lại 8255A bit
11: chế độ 3 : tách timer
GATE 0 Bit (mở) cổng
C/T 0 Bit chọn counter/timer
M1 0 Bit 1 của chế độ
M0 0 Bit 0 của chế độ

Bảng 2.3: Tóm tắt thanh ghi TMOD
2.1.4. Thanh ghi điều khiển timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và
timer 1.
Bảng 2.4: Tóm tắt thanh ghi TCON
+TF1: (địa chỉ 8Fh) cờ tràn bộ định thời 1. Được set bởi phần cứng khi bộ
định thời/ đếm bị tràn, được xoá bởi phần mềm hoặc bởi phần cứng khi trình phục
vụ ngắt được trỏ đến.
+TR1:(địa chỉ byte8Eh) bit điều khiển bộ định thời 1 hoạt động. Được set/
xoá bởi phần mềm để điều khiển bộ định thời hoạt động hoặc ngưng hoạt động.
+TF0(địa chỉ byte8Dh) cờ tràn của bộ định thời 0.
11
0

ngắt ở mức ưu tiên cao để thực hiện được mà nó phải thực hiện chương trình ngắt ở
mức cao xong rồi mới phục vụ ngắt ở mức thấp.
*Vấn đề được xem xét kỹ hơn đó là nếu có ngắt xuất hiện thì điều gì sẽ xãy
ra trong bộ vi điều khiển.
+Hoàn tất lệnh hiện hành.
+Thanh ghi PC cất vào Stack.
+Trạng thái các ngắt hiện thời được lưu giữ lại.
+Các ngắt được chận lại ở mức ngắt.
+Bộ đếm chương trình PC được nạp địa chỉ chương trình phục vụ ngắt.
12
+Chương trình phục vụ ngắt được thực hiện cho đến khi gặp lệnh RETI trở
về chương trình ở ban đầu.
2.1.6. Tập lệnh của 8051
+Tập lệnh của MCS-51 được tối ưu hóa cho các ứng dụng điều khiển 8
bit. Tập lệnh củng hổ trợ các biến 1 bit cho phép quản lý bit trực tiếp trong các hệ
logic và điều khiển có yêu cầu xử lý bít.
+Cũng như các bộ vi xử lý 8-bit, các lệnh của 8051 có các ôpcde 8-bit, do
vậy số lệnh có thể lên đến 256 lệnh(thực tế có 255 lệnh, 1 lệnh không được định
nghĩa). Ngoài opcode, một số lệnh còn có thêm 1 hoặc 2 byte nữa cho dữ liệu hoặc
địa chỉ. Tập lệnh có 139 lệnh 1 byte, 92 lệnh 2-byte, 24 lệnh 3 byte.
+Một số kiểu định địa chỉ:
-Thanh ghi(register).
-Trực tiếp(direct).
-Gián tiếp(indirect).
-Tức thời(immediate).
-Tương đối(relative).
-Tuyệt đối(absolute).
-Dài (long).
-chỉ số(indexed).
*Các loại lệnh :

+Các lệnh thường gặp đó là: JMP, JNB, JB, CJNE , DJNZ .v.v.
+Tuỳ theo các tình huốn cụ thể mà ta cho chương trình đi theo một chiều
hướng mong muốn.
2.2 Sơ đồ mạch phần cứng
14
sơ đồ hệ thống

sơ đồ mạch:
Các phần tử thực hiện mạch.
Đầu vào:
+sensor: cảm biến khi có dấu hiệu có cháy và gửi tín hiệu đến VĐK để xử lí
Điều khiển:
+Các vi điều khiển nhận tín hiệu từ cảm biến, xử lý, điều khiển hệ thống cứu hỏa,
giải mã, hiển thị tín hiệu trên LCD
Đầu ra:
+Hệ thống phun nước( nhận tín hiệu từ vi điều khiển) thực hiện chức năng cứu hỏa
+màn hình LCD hiển thị tình trạng hệ thống
=>Khối cảm biến :
15
DS1820 thường được ứng dụng trong các bộ điều khiển HVAC, hệ thống giám sát nhiệt độ trong
các tòa nhà, thiết bị máy móc…
DS1820 thường có 3 chân chức năng chính:
1. Chân GND: chân nối đất.
2. Chân DQ: chân trao đổi dữ liệu, đồng thời là chân cấp nguồn cho toàn bộ hoạt động của IC,
nếu chân Vcc không sử dụng. Khi kết nối với vi điều khiển thì cần phải có điện trở kéo lên
khoảng 4.7k.
3. Chân Vcc: chân cấp nguồn
16
sơ đồ khối IC điều khiển nhiệt độ DS1820
Nguyên tắc hoạt động:

Khối quét động
Khối giải mã
Khối hiển thị( 1LCD)Sensor
Đầu Vào Điều Khiển Đầu Ra
Hệ thống phun nước, khí CO2 nén
Cấu trúc chung
19
sơ đồ mạch:
Lập trình cho vi điều khiển:
//bat dau chuong trinh
//**************************
//phan khai bao bien:
#include<stdio.h>
#include<reg51.h>
sbit DQ = P2^0;
sbit DQ2 = P2^1;
sbit DQ3 = P2^2;
sbit DQ4 = P2^3;
char readdata[2];
unsigned int t1,t2,t3,t4,nhietdo;
int xe= 50;
sbit xevao = P3^0;
sbit xera = P3^1;
// Khai bao cho LCD
sbit RS = P3^6;
20
sbit EN = P3^7; //RW=1 => doc
//RS=0 => code
//RS=1 => data
#define lcd_PORT P0

//==============================
void lcd_data(unsigned char c) //CT con doc du lieu tu LCD
{
RS=1;
lcd_PORT=c;
21
EN=1;
EN=0;
delay_5ms();
}
//===============================
void lcd_init() // Khoi tao LCD
{
delay_15ms();
lcd_command(0x38);
lcd_command(0x0C);
lcd_command(0x01); // Xoa man hinh LCD
}
//=============================
void lcd_putsf(unsigned char *s)
{
while (*s)
{
lcd_data(*s);
s++;
}
}
// DS18b20
void DelayUs(int us)
{

// Write one bit to DS1820
//
void WriteBit(char bitval)
{
DQ=0;
if(bitval==1)
DQ = 1;
DelayUs(5); // delay about 39 uS
DQ = 1;
}
//
// Read 1 byte from DS1820
//
unsigned char ReadByte(void)
{
unsigned char i;
unsigned char value = 0;
for (i=0;i<8;i++)
{
if(ReadBit()) value|=0x01<<i;
DelayUs(6);
}
return(value);
}
23
//
// Write 1 byte
//
void WriteByte(char val)
{

readdata[1]=readdata[1]<<4;
readdata[1]=readdata[1] & 0x70;
thap=readdata[0];
thap=thap>>4;
24
thap=thap & 0x0f;
readdata[1]=readdata[1] | thap;
thap=2;
t1=readdata[1];
}
// DS18B20 > 2
bit ResetDS18202(void)
{
bit presence;
DQ2 = 0; //pull DQ line low
DelayUs(29); // leave it low for about 490us
DQ2 = 1; // allow line to return high
DelayUs(3); // wait for presence 55 uS
presence = DQ2; // get presence signal
DelayUs(25); // wait for end of timeslot 316 uS
return(presence); // presence signal returned
} // 0=presence, 1 = no part
//
// Read one bit from DS1820
//
unsigned char ReadBit2(void)
{
unsigned char i;
DQ2 = 0; // pull DQ low to start timeslot
DQ2 = 1;


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status