Tải bản đầy đủ (.docx) (23 trang)

Đồ án thiết bị báo cháy

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 (434.94 KB, 23 trang )

MỤC LỤC

1


DANH MỤC HÌNH VẼ

Hình 1-1. Sơ đồ chân PIC16F877A…………………………………………………...6
Hình 1-2. Phần cứng PIC16F877A…………………………………………………..7
Hình 2-1. Cảm biến LM35…………………………………………………………….9
Hình 2-2. Cảm biến MQ2……………………………………………………………11
Hình 2-3. Đèn và còi…………………………………………………………………12
Hình 2-4. LCD hiển thị………………………………………………………………13
Hình 2-5. Khối dao động…………………………………………………………….14
Hình 2-6. Khối reset…………………………………………………………………15
Hình2-7. Mạch nguyên lý……………………………………………………………15
Hình 2-8. Mạch in……………………………………………………………………16
Hình 2-9. Mạch thật………………………………………………………………….16
Hình 3-1. Lưu đồ thuật toán chương trình…………………………………………...17
DANH MỤC VIẾT TẮT

Vcc : Voltage common collector.
GND: Ground
LCD: Liquid Crystal Display
AC: Alternating current
DC: Direct current
2


ADC: Analog Digital Converte


LỜI NÓI ĐẦU
Hiện nay theo số liệu thống kế, trung bình mỗi năm, cả nước xảy ra trên 2.000
vụ cháy, làm hàng chục người chết, hàng trăm người bị thương và thiệt hại gây ra là
hàng trăm tỷ đồng. Các vụ cháy thường xảy ra cục bộ và không được phát hiện sớm
nên đã nhanh chóng lan rộng và gây thiệt hại lớn về người và tài sản. Do đó, việc
tạo ra một thiết bị cảnh báo cháy sớm cho các chủ hộ gia đình là điều hết sức cần
thiết.Cần một hệ thống có chức năng tự động giám sát, phát hiện các đám cháy sớm
nhất, xử lý loại bỏ các cảnh báo sai và điều khiển các van xả khí chữa cháy theo địa
chỉ chính xác trong trường hợp xẩy ra cháy đồng thời đưa ra các cảnh báo cháy
bằng âm thanh hình ảnh. Hệ thống báo cháy tự động là hệ thống thiết bị tự động
phát hiện và thông báo địa điểm cháy (theo tiêu chuẩn Việt Nam TCVN 57382001). Hệ thống báo cháy tự động bao gồm: Trung tâm báo cháy, các đầu báo cháy,
(tổ hợp chuông, đèn, nút ấn) và các thiết bị ngoại vi khác...
Tự động phát hiện ra cháy một cách nhanh chóng, chính xác và kịp thời trong vùng
hệ thống đang bảo vệ. Tự động phát ra các tín hiệu báo động, chỉ thị và các tín hiệu
điều khiển các thiết bị ngoại vi của hệ thống báo cháy tự động nhằm thực hiện một
nhiệm vụ cụ thể nào đó. Đặc biệt, với hệ thống báo cháy tự động sử dụng đầu báo
cháy khói thì nó còn có nhiệm vụ quan trọng hơn là “cảnh báo”, tức là phát hiện và
thông báo sự sắp cháy, sự cháy âm ỉ chưa có ngọn lửa. Trong phạm vi của học phần
Đồ án I, nhóm sinh viên chỉ thiết kế và làm thiết bị báo cháy cơ bản dùng để phát
hiện và cảnh báo khi có khả năng cháy và cháy xảy ra.
Do trình độ kiến thức và kinh nghiệm có hạn, trong quá trình làm Đồ án này không
trảnh khỏi sai sót, cảm ơn giáo viên hướng dẫn đã chỉ bảo nhiệt tình, chu đáo và
mong các thầy cô góp ý thêm để Đồ án ngày càng hoàn thiện.
3


CHƯƠNG I. TỔNG QUAN LÝ THUYẾT
1.1. Công nghệ báo cháy
- Các công nghệ báo cháy sử dụng chủ yếu



Hệ thống báo cháy tự động sử dụng đầu báo cháy khói: là hệ thống báo cháy tự
động làm việc dựa vào nguyên lý làm việc của đầu báo cháy khói. Hệ thống



này chủ yếu phát hiện ra sự gia tăng nồng độ khói ở trong khu vực bảo vệ.
Hệ thống báo cháy tự động sử dụng đầu báo cháy nhiệt: là hệ thống báo cháy
tự động làm việc dựa theo nguyên lý làm việc của đầu báo cháy nhiệt. Hệ



thống này chủ yếu phát hiện ra sự thay đổi nhiệt độ ở trong khu vực bảo vệ.
Hệ thống báo cháy tự động sử dụng đầu báo cháy ánh sáng (lửa): làm việc dựa
vào nguyên lý làm việc của đầu báo cháy lửa. Hệ thống này chủ yếu phát hiện



ra nồng độ tăng cường ánh sáng của ngọn lửa trong khu vực bảo vệ.
Hệ thống báo cháy tự động sử dụng đầu báo cháy hỗn hợp: là hệ thống làm
việc dựa trên nguyên lý làm việc của đầu báo cháy hỗn hợp như: đầu báo cháy
nhiệt và khói; đầu báo cháy nhiệt và lửa. Hệ thống này chủ yếu phát hiện ra sự

-

thay đổi các yếu tố môi trường trong khu vực bảo vệ.
Công nghệ báo cháy tự động hiện nay bao gồm các bộ phận cơ bản:
Trung tâm báo cháy và điều khiển chữa cháy địa chỉ








Các đầu báo cháy tự động
Hộp nút xả khí và dừng xả khí
Bộ đèn, còi báo xả khí
Các bộ phận liên kết: Modul kết nối đầu vào và đầu ra cho các thiết bị ngoại vi

và điều khiển các thiết bị liên quan khi chữa cháy
• Các loại dây tín hiệu và cáp tín hiệu là loại chống nhiễu.
• Các hệ thống thiết bị liên kết.
• Nguồn điện: nguồn điện lưới 220VAC - 50Hz và nguồn dự phòng 24VDC.
Hệ thống báo cháy và điều khiển chữa cháy có cấu hình tương thích với hệ thống
báo cháy của toà nhà để có thể kết nối với hệ thống BMS, hệ BMS giám sát được
trạng thái hoạt động của hệ thống thông qua cổng Bacnet của hệ thống báo cháy
tòa nhà.
4




Tự động báo cháy sớm, bất kỳ sự cố cháy nào bắt đầu xảy ra trong các khu vực
bảo vệ khi có khói đạt đến mức độ cần thiết (0.5 ÷ 3.6%). Ngưỡng báo động tuỳ
chỉnh cho mỗi đầu dò lên tới 8 mức khác nhau. Các đầu dò địa chỉ thông minh có
khả năng tự nhận biết trạng thái lỗi do bụi bẩn đưa ra thông tin yêu cầu bảo trì




theo hai mức: Báo bẩn và yêu cầu bảo trì khẩn cấp.
Bảo đảm chính xác địa chỉ báo cháy. Điều này giúp cán bộ trực ban xác định
nhanh và chính xác vị trí đang bị cháy, hoặc có nguy cơ cháy thông qua màn hình



LCD ghi trên trung tâm.
Chuyển tín hiệu phát hiện cháy thành tín hiệu báo động rõ ràng để những người








xung quanh có thể thực hiện ngay các biện pháp thích hợp.
Có khả năng chống nhiễu tốt.
Báo hiệu nhanh chóng, rõ ràng mọi trường hợp sự cố của hệ thống.
Không bị ảnh hưởng bởi các hệ thống khác được lắp chung hoặc riêng rẽ.
Không bị tê liệt một phần hay toàn bộ do cháy gây ra, trước khi phát hiện ra cháy.
Hệ thống báo cháy đồng bộ sản xuất tại Mỹ.
Hệ thống này đã được kiểm định thực tế tại Việt nam.

1.2 Giới thiệu chung PIC 16F877A
PIC16F877A là loại vi điều khiển 8 bit tầm chung của hãng microchip.
PIC16F877A có kiến trúc Havard, sử dụng tập lệnh kiểu RISC ( Reduced Instruction
SetComputer) và chỉ 351 lệnh cơ bản.
Tất cả các lệnh được thực hiện trong 1 chu kì lệnh ngoại trừ lệnh rẽ nhánh.
Tốc độ hoạt động tối đa cho phép là 20MHz với một chu kì lệnh là 200ns. Bộ nhớ

chương trình 8Kx14bit, bộ nhớ dữ liệu 368×8 byte RAM và bộ nhớ dữ liệu EEPROM
với dung lượng 256×8 byte. Số PORT I/O là 5 với 33 pin I/O
- Sơ đồ chân với chip loại cắm 40 chân:

5


Hình 1-1. Sơ đồ chân PIC16F877A
6


-

Các chân chức năng cơ bản:
Chân 11, 32 là chân nối nguồn 5v.
Chân 12, 31 là các chân nối đất.
Chân số 1 là chân reset lại vi điều khiển.
Các chân 40, 39 kết hợp với chân nguồn, chân đất tạo thành các chân nạp

-

chương trình cho vi điều khiển
Còn lại là các chân dữ liệu vào/ra, ngắt, chân ADC…

- Cấu trúc cơ bản phần cứng:

Hình 1-2. Phần cứng PIC16F877A
7



CHƯƠNG II . NGUYÊN TẮC THIẾT KẾ VÀ SƠ ĐỒ KHỐI
2.1 Nguyên tắc thiết kế
1. Việc thiết kế, lắp đặt hệ thống báo cháy tự động phải tuân thủ các yêu cầu, quy
định của các tiêu chuẩn, quy phạm hiện hành có liên quan và phải được cơ quan
phòng cháy, chữa cháy có thẩm quyền chấp nhận.
2. Hệ thống báo cháy tự động phải đáp ứng những yêu cầu sau:
- Phát tín hiệu cháy nhanh chóng theo chức năng đã được đề ra;
- Chuyển tín hiệu phát hiện cháy thành tín hiệu báo động rõ ràng để những người
xung quanh có thể thực hiện ngay các biện pháp thích hợp;
- Có khả năng chống nhiễu tốt;
- Báo hiệu nhanh chóng và rõ ràng mọi trường hợp sự cố của hệ thống;
- Không bị ảnh hưởng bởi các hệ thống khác được lắp đặt chung hoặc riêng rẽ;
- Không bị tê liệt một phần hay toàn bộ do cháy gây ra trước khi phát hiện ra cháy.
3. Hệ thống báo cháy tự động phải đảm bảo độ tin cậy. Hệ thống này phải thực hiện
đầy đủ các chức năng đã được đề ra mà không xảy ra sai sót.
4. Những tác động bên ngoài gây ra sự cố cho một bộ phận của hệ thống không được
gây ra những sự cố tiếp theo trong hệ thống.
5. Hệ thống báo cháy tự động bao gồm các bộ phận cơ bản:
- Các cảm biến nhiệt độ, cảm biến khí, cảm biến khói;
8


- Vi điều khiển để xử lí tín hiệu từ các cảm biến
- Đầu báo cháy tự động;
- Các bộ phận liên kết;
- Nguồn điện.
Tùy theo yêu cầu hệ thống báo cháy còn có các bộ phận khác như thiết bị truyền tín
hiệu báo cháy, bộ phận kiểm tra thiết bị phòng cháy, chữa cháy tự động...
2.2 Chức năng, sơ đồ các khối.
2.2.1 Cảm biến LM35


Hình 2-1. Cảm biến LM35

Chân 1 : Chân nguồn Vcc
Chân 2 : Đầu ra Vout
9


Chân 3: GND
Khi một vụ cháy xảy ra thì ở vùng cháy nhiệt độ tăng lên rất cao. Lợi dụng đặc tính
này ta dùng bộ cảm biến nhiệt để nhận biết và báo cháy, ở đây ta dùng cảm biến nhiệt
độ LM35.Cảm biến nhiệt độ LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao
mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius.
Chúngcũng không yêu cầu cân chỉnh ngoài vì vốn chúng đã được cân chỉnh.
Đặc điểm chính của cảm biến LM35
+ Điện áp đầu vào từ 4V đến 30V
+ Độ phân giải điện áp đầu ra là 10mV/oC
+ Độ chính xác cao ở 25 C là 0.5 C
+ Trở kháng đầu ra thấp 0.1 cho 1mA tải
Dải nhiệt độ đo được của LM35 là từ -55 C - 150 C với các mức điện áp ra khác
nhau. Xét một số mức điện áp sau :
- Nhiệt độ -55 C điện áp đầu ra -550mV
- Nhiệt độ 25 C điện áp đầu ra 250mV
- Nhiệt độ 150 C điện áp đầu ra 1500mV
Tùy theo cách mắc của LM35 để ta đo các giải nhiệt độ phù hợp. Đối với hệ thống
này thì đo từ 0 đến 150.
Tính toán nhiệt độ đầu ra của LM35:
Việc đo nhiệt độ sử dụng LM35 thông thường chúng ta sử dụng bằng cách:
LM35 - > ADC - > Vi điều khiển
Như vậy ta có: U= t.k

u là điện áp đầu ra
t là nhiệt độ môi trường đo k
là hệ số theo nhiệt độ của LM35 10mV/1 độ C
Giả sử điện áp Vcc cấp cho LM35 là 5V ADC 10bit
10


Vậy bước thay đổi của LM35 sẽ là 5/(2^10) = 5/1024
Giá trị ADC đo được thì điện áp đầu vào của LM35 là
(t*k)/(5/1024) = ((10^-2)*1024*t)/5 = 2.048*t
Vậy nhiệt độ ta đo được t = giá trị ADC/2048
- Sai số của LM35
+ Tại 0 độ C thì điện áp của LM35 là 10mV
+ Tại 150 độ C thì điện áp của LM35 là 1.5V
==> Giải điện áp ADC biến đổi là 1.5 - 0.01 = 1.49 (V)
+ ADC 10 bit nên bước thay đổi của ADC là : n = 4.88mV
Vậy sai số của hệ thống đo là : Y = 0.00488/1.49 = 0.327 %
2.2.2 Cảm biến khí MQ2

Hình 2-2. Cảm biến MQ2
Trong các đám cháy có rất nhiều khí khác nhau thoát ra, vì vậy ta dùng cảm biến
MQ2 để phát hiện ra các loại khí với nồng độ khác nhau, kết hợp với cảm biến nhiệt
độ LM35 đưa ra tín hiệu cảnh báo.
MQ2 có 6 chân :
11


-

2 chân H là chân cấp nhiệt cho cảm biến MQ2; 1 chân nối với nguồn Vcc, 1


-

chân nối với GND.
4 chân để lấy tín hiệu:

+ 2 chân A-A nối với nguồn Vcc , để đảm bảo cho biến trở hoạt động ổn định.
+ 2 chân B-B đưa tín hiệu ra Vout.
MQ2 hoạt động theo nguyên lí biến từ độ nhạy của chất bán dẫn sang điện áp.RL là
biến trở, dùng để chỉnh mức cảnh báo của cảm biến trong các môi trường khác
nhau.Cảm biến MQ2 có nồng độ ra trong khoảng 300ppm – 10000ppm, tương đương
với điện áp ra 0,3V – 4,5V. ( 1ppm = 1mg/kg).Điện áp đầu ra của MQ2 sẽ được đưa
vào chân ADC của vi điều khiển và nồng độ sẽ được hiển thị trên LCD.
2.2.3 Đèn và Còi

Hình 2-3. Đèn và còi
Khi cảm biến LM35 và MQ2, nhận biết được nhiệt độ và nồng độ khí vượt quá mức
cho phép, thông qua vi điều khiển, đưa ra tín hiệu cho còi và đèn, giúp báo động cho
mọi người xung quanh khu vực đó có thể biết được sắp xảy ra cháy nổ, cần tránh xa
khu vực này và có những biện pháp chữa cháy cần thiết.Tín hiệu điện áp ra khỏi chân
vi điều khiển có giá trị là 5v.Còi có cấu tạo 2 chân: 1 chân nối với tín hiệu điện áp ra
của vi điều khiển, 1 chân nối với GND.Đèn led chúng ta sử dụng điện áp định mức
nhỏ nên cần mắc nối tiếp them một điện trở R để đèn không bị cháy.
12


2.2.4 LCD dùng hiển thị
LCD dùng để hiện thị nhiệt độ và nồng độ khí. Giúp cho mọi người biết được nhiệt
độ và nồng độ khí, nếu khí có nồng độ tăng đột ngột thì mọi người nhìn vào LCD để
có những biện pháp phù hợp để giảm lượng khí và tìm cách khắc phục trong phòng,

trong tòa nhà ….

Hình 2-4. LCD hiển thị
Các chân LCD:
1.
2.
3.
4.
5.
6.
7.

Vss : nguồn
Vdd: GND
Vee : nối với 1 biến trở để điều chỉnh độ tương phản của LCD.
RS: có mức logic 0/1.Trong đó: 0: nhập lệnh; 1: nhập dữ liệu từ vi điều khiển.
R/W: có mức logic 0/1. Trong đó: 0: ghi dữ liệu; 1: đọc dữ liệu
E: tín hiệu cho phép
D0 – D7: là các bus dữ liệu.

Trong trường hợp này chúng ta chỉ dùng từ D4 đến D7. Các bus dữ liệu của LCD
được nối vào PORTD của vi điều khiển PIC16F877A. PORTD của PIC có chức năng
input và output các tín hiệu tương tự của vi điều khiển đưa ra tín hiệu số
2.2.5 Khối tạo dao động của vi điều khiển PIC.
13


Hình 2-5. Khối dao động
PIC 16F877A có một bộ dao động trên chip nhưng vẫn cần có một bộ dao động ngoài
để kích hoạt. Bộ dao động thạch anh ngoài được nối với chân OSC1 ( chân 13) và

OSC2 (chân 14). Khi mắc dao động thạc anh, phải có hai tụ điện 33pF, một đầu nối
tụ với OSC1 và OSC2, còn đầu kia nối đất như hình 5. Thạch anh dùng cho PIC có
tần số là 20MHz
2.2.6 Khối reset
Reset PIC 16F877A ta dùng khối reset giống như hình 6, khối này được nối vào chân
MCLR ( chân 1) mức tích cực cao, bình thường ở mức thấp. Khi có xung cao đặt vào
chân này thì bộ vi điều khiển sẽ kết thúc hoạt động hiện tại và tiến hành khởi động
lại. Quá trình xảy ra hoàn toàn tương tự như khi bật nguồn. Khi reset mọi hooạt
độngtrên thanh ghi sẽ bị xóa.

14


Hình 2-6. Khối reset
Reset PIC 16F877A ta dùng khối reset giống như hình 6, khối này được nối vào chân
MCLR ( chân 1) mức tích cực cao, bình thường ở mức thấp. Khi có xung cao đặt vào
chân này thì bộ vi điều khiển sẽ kết thúc hoạt động hiện tại và tiến hành khởi động
lại. Quá trình xảy ra hoàn toàn tương tự như khi bật nguồn.
2.3 Mạch nguyên lý, mạch in và mạch thật
2.3.1 Mạch nguyên lý

Hình 2-7. Mạch nguyên lý
2.3.2 Mạch in

15


Hình 2-8. Mạch in
2.3.3 Mạch thật


Hình 2-9. Mạch thật

CHƯƠNG 3. THIẾT KẾ PHẦN MỀM VÀ HƯỚNG PHÁT TRIỂN ĐỒ ÁN
3.1. Lưu đồ thuật toán
16


Bắt đầu

Chạy chương trình đọc dữ
liệu vào

So sánh với ngưỡng đặt
Đúng

Hiển thị và báo cháy

Sai
Hiển thị

Kết thúc

Hình 3-1. Lưu đồ thuật toán chương trình
Các chương trình sử dụng trong.lưu đồ:
-

Chương trình đọc dữ liệu vào: Khi bắt đầu hoạt động và trong quá trình hoạt
động, vi điều khiển luôn đọc tín hiệu gửi vào ở 2 chân AN0 được nối với cảm
17



biến nhiệt LM35 và AN1 nối với cảm biến khí MQ2 cho qua bộ biến đổi ADC
-

lưu vào bộ nhớ.
Chương trình so sánh: Vi điều khiển sẽ nhận dữ liệu đọc vào và so sánh với các
ngưỡng đặt trước. Cụ thể, nhiệt độ > 50oC và nồng độ khí > 1500ppm. Khi cả
hai điều kiện trên được thỏa mãn thì đưa ra tín hiệu là “Đúng”, khi một trong

-

hai điều kiện không được thỏa mãn thì tín hiệu là “Sai”.
Chương trình hiển thị: Vi điều khiển xuất dữ liệu ra các chân D4, D5, D6, D7

-

của LCD để hiển thị lên màn hình nhiệt độ và nồng độ khí hiện tại.
Chương trình hiển thị và báo cháy: Lúc này, vi điều khiển sẽ xuất dữ liệu hiển
thị lên LCD là “CHÁY” đồng thời báo tín hiệu ra hai chân BO và B1 cho đèn

-

sáng và còi kêu.
Sau đó vi điều khiển lại tiếp tục đọc giá trị nhận được từ hai cảm biến và quá
trình lại lặp lại như trên.

3.2. Phần mềm sử dụng và code chương trình
-

Sử dụng MPLAB IDE v8.56 kết hợp sử dụng trình dịch của phần mềm PIC C


-

Compiler.
Sử dụng Proteus8.0 để mô phỏng.
Sử dụng Altium designer 9.0 để vẽ mạch nguyên lý và mạch in.
Code chương trình: Phụ lục 1
3.3. Hướng phát triển của đồ án
- Đồ án hiện tại mới chỉ là những ứng dụng rất cơ bản để báo cháy, chưa có tương tác
với người dùng, chưa có được ứng dụng thực tế hơn
- Cụ thể có thể phát triển:


Ứng dụng thông báo cho người sử dụng thông qua mạng di động hoặc mạng



quốc tế, để người sử dụng có các sử lý kịp thời.
Phát triển thêm các ứng dụng chữa cháy tại chỗ ngay khi có cháy. VD: Khởi
động hệ thống chữa cháy như: bơm nước, xả khí CO 2, mở cửa thoát hiểm, báo
cho cơ quan chữa cháy…
18




Người dùng có thể thay đổi các ngưỡng đặt báo cháy, để phù hợp với điều
kiện thực tế từng khu vực.

PHỤ LỤC

-

Code chương trình

#include <16F877A.h> // Khai bao thu vien
#include <def_877a.h>
#device *=16 adc=10 // Khoi tao che do ADC
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)

19


#include <LCD4bit.h>

// Thu vien ham cho LCD

unsigned int tram,chuc,donvi,nghin;

// Cac bien

float value,value1; // Khai bao bien
void convert_bcd(int8 x);
void display();
void display1();
void main()
{
LCD_init();

// Khoi tao che do cho boADC


setup_adc_ports(AN0_AN1_AN3);
setup_adc(ADC_CLOCK_INTERNAL);

while (1)
{
LCD_Cmd(0x01);
LCD_Char("NHIET DO:");
display();
LCD_Cmd(0xc0);
LCD_Char("KHI:");
display1();
delay_ms(1000);
}
}
void display() //ham hien thi nhiet do
{
nhay:set_adc_channel(0);
set_adc_channel(0);
value = ( float )read_adc();
delay_ms(10);
value=value/2.048-257;

20


set_adc_channel(1);// doc khi
value1 = (float)read_adc();
delay_ms(10);
value1=value1*0.05;

if(value<(-212)||value1<15)
{
output_bit( PIN_B0, 0);
output_bit( PIN_B1, 0);
LCD_Cmd(0x01);
LCD_Char("NHIET DO:");
convert_bcd((int8)value);
LCD_Char(tram);
LCD_Char(chuc);
LCD_Char(donvi);
LCD_Char("^C ");
}
else
{
output_bit( PIN_B0, 1);
output_bit( PIN_B1, 1);
LCD_Cmd(0xc5);
LCD_Char("CHAY!!!");
delay_ms(500);
LCD_Cmd(0x01); // lenh xoa man hinh
delay_ms(500);
LCD_Cmd(0xc5);
LCD_Char("CHAY!!!");
goto nhay;
}
void display1()//

ham hien thi khi

21



{
nhay1:set_adc_channel(1);
set_adc_channel(1);
value1 = (float)read_adc();
delay_ms(10);
set_adc_channel(0);
value = ( float )read_adc();
delay_ms(10);
value=value/2.048-257;
value1=value1*0.05;
if(value1<15||value<(-212))
{
LCD_Cmd(0xc0);
LCD_Char("KHI:");
output_bit( PIN_B0, 0);
output_bit( PIN_B1, 0);
convert_bcd((int8)value1);
LCD_Char(chuc);
LCD_Char(donvi);
LCD_Char("*10^2 ppm ");
}
else
{
output_bit( PIN_B0, 1);
output_bit( PIN_B1, 1);
LCD_Cmd(0xc5);
LCD_Char("CHAY!!!");
delay_ms(500);

LCD_Cmd(0x01); //xoa man hinh
delay_ms(500);

22


LCD_Cmd(0xc5);
LCD_Char("CHAY!!!");
goto nhay1;
}
}
void convert_bcd(int8 x) // ham tach so hien thi len LCD
{
tram = x/100;
chuc = x/10;
chuc = chuc%10;
donvi = x%10;
tram = tram +48;
chuc = chuc +48;
donvi = donvi +48;
}

23



×