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

ĐỌC TÍN HIỆU TỪ CẢM BIẾN ĐỘ ẨM VÀ NHIỆT ĐỘ ĐỂ ĐIỀU KHIỂN THIẾT BỊ HỆ THỐNG NHÚNG( LẤY CODE PIC+ MÔ PHỎNG PROTEUS + VIDEO THUYẾT MINH LIÊN HỆ ZALO 0327697318)

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 (1 MB, 30 trang )

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
KHOA ĐIỆN TỬ

BÁO CÁO TIỂU LUẬN
Mơn học: HỆ THỐNG NHÚNG
Đề tài: ĐỌC TÍN HIỆU TỪ CẢM BIẾN ĐỘ ẨM VÀ NHIỆT ĐỘ ĐỂ ĐIỀU
KHIỂN THIẾT BỊ

GVHD:

TĂNG THỊ CẨM NHUNG

SV1:
MSSV:

NGUYỄN THỊ MAI
K175520114031

SV2:
MSSV:

ĐỖ BẢO THỊNH (TN)
K175520114120

Thái Nguyên, Ngày 01 tháng 06 năm
2021


Hệ thống nhúng.

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN



Thái Nguyên, ngày...tháng…năm 20....
GIÁO VIÊN HƯỚNG DẪN
(Ký ghi rõ họ tên)

NHẬN XÉT CỦA GIÁO VIÊN CHẤM

Thái Nguyên, ngày...tháng…năm 20....
GIÁO VIÊN CHẤM
(Ký ghi rõ họ tên)

2


Hệ thống nhúng.

MỤC LỤC
LỜI NÓI ĐẦU---------------------------------------------------------------------------------4
CHƯƠNG 1 GIỚI THIỆU YÊU CẦU – GIỚI HẠN ĐỀ TÀI--------------------------5
1.1

GIỚI THIỆU ĐỀ TÀI.-------------------------------------------------------------------------------5

1.2

GIỚI HẠN CỦA ĐỀ TÀI.--------------------------------------------------------------------------5

CHƯƠNG 2 THIẾT KẾ----------------------------------------------------------------------7
2.1.


GIỚI THIỆU HỆ THỐNG.-------------------------------------------------------------------------7

2.2.

YÊU CẦU ĐỐI VỚI HỆ THỐNG.---------------------------------------------------------------7

2.3.

SƠ ĐỒ KHỐI HỆ THỐNG.------------------------------------------------------------------------8

2.4.

THIẾT KẾ SƠ ĐỒ NGUYÊN LÝ.----------------------------------------------------------------9

2.4.1.

Khối nguồn.--------------------------------------------------------------------------------------9

2.4.2.

Khối cảm biến.----------------------------------------------------------------------------------9

2.4.3.

Khối hiển thị.----------------------------------------------------------------------------------13

2.4.4.

Khối đầu vào KEYPAD----------------------------------------------------------------------15


2.4.5.

Khối cơ cấu chấp hành.----------------------------------------------------------------------18

2.4.6.

Khối điều khiển--------------------------------------------------------------------------------18

2.5.

SƠ ĐỒ NGUYÊN LÝ TỒN MẠCH.---------------------------------------------------------19

2.6.

CHƯƠNG TRÌNH ĐIỀU KHIỂN.--------------------------------------------------------------20

2.6.1.

Mơ tả u cầu điều khiển của hệ thống.---------------------------------------------------20

2.6.2.

Chương trình.----------------------------------------------------------------------------------21

CHƯƠNG III KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN-----------------------------26
3.1.

KẾT QUẢ ĐẠT ĐƯỢC.--------------------------------------------------------------------------26

3.2.


HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI.----------------------------------------------26

3


Hệ thống nhúng.

LỜI NÓI ĐẦU
Như chúng ta đã biết, nhiệt độ và độ ẩm là những thành phần vật lý quang trọng
trong cuộc sống con người. Việc thay đổi nhiệt độ, độ ẩm ảnh hưởng rất nhiều rất nhiều
đến sự sinh trưởng và phát triển của động vật, thực vật, tính chất vật lý của vật chất. Sống
trong thời kỳ cơng nghiệp hóa và hiện đại hóa như ngày nay, các thiết bị điện tử, tự động
hóa đóng một vai trị rất quan trọng, đặc biệt là trong q trình sản xuất ở các phân
xưởng, nhà máy cũng như là trong đời sống gia đình. Áp dụng những kiến thức đạt được
trong q trình học mơn Hệ thống nhúng, chúng em quyết định chọn đề tài: “ ĐỌC TÍN

HIỆU TỪ CẢM BIẾN ĐỘ ẨM VÀ NHIỆT ĐỘ ĐỂ ĐIỀU KHIỂN THIẾT
BỊ”.
Trong quá trình làm tiểu luận, chúng em xin trân thành cảm ơn cô Tăng Cẩm Nhung
đã hướng dẫn và giúp đỡ chúng em hồn thành đồ án. Do cịn thiếu kiến thức về phần
cứng nên nếu có sai sót mong thầy cơ góp ý để chúng em có thể cải tiến và hoàn thành đề
tài.
Chúng em xin chân thành cảm ơn!

4


Hệ thống nhúng.


CHƯƠNG 1
GIỚI THIỆU YÊU CẦU – GIỚI HẠN ĐỀ TÀI
1.1

GIỚI THIỆU ĐỀ TÀI.
Trước hết chúng ta đi tìm hiểu thế nào là nhiệt độ và độ ẩm để và tầm quan trọng

của hệ thống đọc nhiệt độ và độ ẩm để điều khiển thiết bị.
Trong cuộc sống hiện nay có rất nhiều yếu tố ảnh hưởng đến quá trình sản xuất
và con người. Trong đó nhiệt độ và độ ẩm cũng là yếu tố được đề cập tới rất nhiều, vì
thế mạch đo nhiệt độ và độ ẩm ra đời là sự tất yếu. Với sự phát triển của công nghệ hiện
nay việc sản xuất mạch đo nhiệt độ và độ ẩm đơn giản mà độ chính xác cao là điều khá
đơn giản. Việc áp dụng trong thực tế càng phổ biến hơn khi nhiệt độ độ ẩm đóng vai trị
lớn ảnh hưởng đến con người, hàng hố, máy móc, độ bền … Vì vậy nhiệt độ được sử
dụng hầu hết các nhà máy sản xuất, kho chứa hàng hố, bảo quản máy móc cũng như
điều kiện vận hành. Trong y tế nó được sử dụng rộng rãi trong các phòng cách ly, phòng
điều trị cho bệnh nhân cũng như áp dụng hầu hết trong các dây chuyền cũng như các
công nghệ sản xuất tuỳ theo nhu cầu mà chúng ta có thể tuỳ biến thêm ngồi chức năng
của đề tài này để phù hợp với đúng nhu cầu trong q trình hoạt động ngồi chức năng
chính là hiển thị nhiệt độ độ ẩm của các khu vực cần khảo sát nhiệt độ và độ ẩm.
Nhận ra từ nhu cầu thực tế trên, nhóm chúng em đã có ý tưởng thiết kế hệ thống
đọc tín hiệu từ cảm biến nhiệt độ và độ ẩm để điều khiển thiết bị.

1.2

GIỚI HẠN CỦA ĐỀ TÀI.
Cảm biến nhiệt độ LM35 có độ chuẩn xác hơn kém 0,4 °C ở nhiệt độ phịng bình

thường và hơn kém 0,8 °C trong khoảng 0 °C đến + 100 °C. Vì vậy trong quá trình hoạt
động khơng tránh khỏi sai số.

Việc lấy tín hiệu độ ẩm theo yêu cầu đề tài chúng em sử dụng biến trở Pot_HG để
điều chỉnh độ ẩm theo các ngưỡng khác nhau. Việc này không tối ưu và chưa thực khả
quan trong thực tế.
5


Hệ thống nhúng.

Do còn hạn chế về kiến thức và kinh tế nên em xin phép chỉ thực hiện mô phỏng và
lập trình cho hệ thống hoạt động trên phần mềm máy tính, tương lai nếu có điều kiện sẽ
thực hiện lắp đặt và kiểm nghiệm đề tài bằng mô hình thực tế và báo cáo đánh giá hiệu
quả hoạt động của sản phẩm cũng như khả năng ứng dụng vào thực tế cuộc sống.

6


Hệ thống nhúng.

CHƯƠNG 2
THIẾT KẾ
2.1.

GIỚI THIỆU HỆ THỐNG.
Bộ mạch được điều khiển bởi vi điều khiển PIC16F877A đóng vai trị điều khiển

và nhập xuất dữ liệu từ các thiết bị giao tiếp với nó, điển hình như cảm biến nhiệt độ
LM35 và cảm biến độ ẩm (biến trở pot HG) được giao tiếp với vi điều khiển Pic
16F877A và xuất nhập dữ liệu đọc nhiệt độ và độ ẩm từ cảm biến sau đó giao tiếp với
thiết bị LCD mã hoá dữ liệu để hiện thị kết quả ra màn hình với dữ liệu của cảm biến có
dải nhiệt độ từ 0- 50oC và độ ẩm từ 20%- 95%. Sau khi đã xác định được nhiệt độ và độ

ẩm thực hiện so sánh với ngưỡng để điều khiển các động cơ trong cơ cấu chấp hành.

2.2.

YÊU CẦU ĐỐI VỚI HỆ THỐNG.

Để ứng dụng hiệu quả trong thực tế, hệ thống cần đảm bảo những yêu cầu:
 Xác định chính xác nhiệt độ, độ ẩm.
 Hoạt động bền bỉ, ổn định, hạn chế nhiễu và ảnh hưởng của môi trường xung
quanh.
 Thời gian quét lấy mẫu phải hợp lý để có thể liên tục xác định nhiệt độ, độ ẩm
và đưa ra phương án điều chỉnh phù hợp.
 Có thể linh hoạt thay đổi để phù hợp với từng điều kiện thực tế.
 Thuật toán phải tối ưu, hạn chế lỗi trong quá trình hoạt động.

7


Hệ thống nhúng.

2.3.

SƠ ĐỒ KHỐI HỆ THỐNG.

Hình 1: Sơ đồ khối cho toàn bộ hế thống
Chức năng từng khối:
-

Khối nguồn: Được dùng để cung cấp áp cho hoạt động của vi điều khiển, cảm biến
và màn hình LCD để có thể hoạt động ổn định.


-

Khối cảm biến: Khối cảm biến sẽ nhận nhiệt độ và độ ẩm từ môi trường bên ngồi
để gửi tín hiệu về pic dưới dạng analog.

-

Khối xử lý: tín hiệu dạng Analog trả về từ cảm biến được xử lý, chuyển đổi sang
dạng tín hiệu số.

-

Khối giải mã: có chức năng giải mã nhiệt độ và đo ẩm đo được từ khối xử lý tín hiệu
sang mã hiển thị lên LCD.

-

Khối hiển thị: qua bộ giải mã được tích hợp trong LCD thì nhiệt độ và độ ẩm được
hiển thị trên màn hình.

-

Khối so sánh: so sánh dữ liệu từ khối xử lý với các giá trị đã cài sẵn

-

Khối cái đặt ngưỡng: có chức năng cài đặt, hiệu chỉnh ngưỡng nhiệt độ và độ ẩm

8



Hệ thống nhúng.

-

Khối cơ cấu chấp hành (phun sương, đèn sưởi, điều hịa, quạt gió): khi nhận tín
hiệu từ khối so sánh thỏa mãn điều kiện sẽ cho hoạt động cơ cấu chấp hành

2.4.

THIẾT KẾ SƠ ĐỒ NGUYÊN LÝ.

2.4.1. Khối nguồn.
-

Vai trị: Cung cấp đủ nguồn năng lượng cho tồn bộ hệ thống.

-

Sử dụng nguồn để cung cấp cho những thành phần:


Mạch giảm áp: Với nguồn điện đầu vào 220V qua mạch giảm áp lúc này điện áp
giảm xuống 5V cung cấp điện áp an toàn cho vi điều khiển



Mạch công suất điều khiển động cơ: Với mức điện áp 24V đảm bảo cung cấp
điện áp an toàn cho động cơ.


2.4.2. Khối cảm biến.
Hiện nay trên thị trường có rất nhiều cảm biến đo nhiệt độ và độ ẩm như:
- LM35, LM355, PT100…: cảm biến đo nhiệt độ.
- HS1011, HS220…: cảm biến đo độ ẩm.


- DHT11, DHT21, SHT11: tích hợp của cả cảm biến nhiệt độ và độ ẩm.
Nhưng ở trong phạm vi đề tài này, để phù hợp và tiện dụng hơn thì chúng ta sử

dụng cảm biến nhiệt độ LM35 và cảm biến độ ẩm sử dụng biến trở Pot HG.

a)

Cảm biến nhiệt độ LM35.
LM35 là một cái cảm biến nhiệt độ giá rẻ (tầm 26k) thường được tiêu dùng

mang thể được sử dụng để đo nhiệt độ (theo ° C). Nó với thể đo nhiệt độ chính xác
hơn so với một điện trở nhiệt (thermistor) cùng tầm giá. Cảm biến này tạo ra điện áp
có đầu ra cao hơn các cặp nhiệt điện và có thể ko cần điện áp đầu ra được khuếch
đại. LM35 có điện áp đầu ra tỷ lệ thuận có nhiệt độ Celsius. Hệ số tỷ lệ là .01V / ° C.

9


Hệ thống nhúng.

Hình 2: Cảm biến nhiệt độ LM35
LM35 có độ chuẩn xác hơn kém 0,4 ° C ở nhiệt độ phịng bình thường và hơn kém
0,8 ° C trong khoảng 0 ° C đến + 100 ° C. Một đặc tính quan trọng hơn của cảm biến này

là rằng nó chỉ thu được 60 microamps từ nguồn cung ứng và có khả năng tự sưởi ấm
thấp.



Một số tính chất của cảm biến LM35:
-

Đầu ra của cảm biến nhiệt độ lm35 thay đổi diễn tả tuyến tính.

-

Điện áp o / p của cảm biến IC này tỉ lệ với nhiệt độ Celsius.

-

Điện áp hoạt động từ -55˚ đến + 150˚C.

-

Được vận hành dưới 4 tới 30 V.
Điện áp đầu vào: 4V-30V
Độ phân giải điện áp đầu ra
Độ chính xác cao
Trở kháng đầu ra thấp

4V- 30V
10mV/ 0 độ C
Ở 25 độ C là 0.5 độ C
0.1 cho 1mA tải


Bảng 1: DataSheet của LM35


Tính tốn nhiệt độ đầu ra của LM35:

-

ValueADC(10bit) =2,046

-

Khi thay đổi 1oC thì điện áp của LM35 sẽ thay đổi 10mV
10


Hệ thống nhúng.

-

Khi điện áp của LM35 đưa vào ADC của PIC16F877A, điện áp ADC sẽ

thay đổi 2,046mV (áp dụng cho độ phân giải 10 bit).



Sơ đồ đấu nối cảm biến nhiệt độ LM35 trong mạch mơ phỏng:

Hình 3: Sơ đồ đấu nối cảm biến nhiệt độ LM35 trong mạch mô phỏng
Cách đọc dữ liệu cảm biến và điều khiển:

-

Dữ liệu nhiệt độ của cảm biến sẽ được tính tốn bằng công thức:
nd=read_adc()/2.046;

-

Khi đọc được nhiệt độ từ cảm biến sẽ hiển thị dữ liệu lên màn hình LCD và so sánh
giá trị đo được từ cảm biến với nhiệt độ đặt vào từ người dùng.
 Nếu lớn hơn động cơ sẽ quay thuận
 Nếu nhỏ hơn động cơ sẽ quay ngược
 Nếu bằng thì động cơ dừng

b)

Cảm biến độ ẩm (sử dụng biến trở Pot_HG)

11


Hệ thống nhúng.

Biến trở là loại linh kiện chính dùng để điều chỉnh cường độ dòng điện và được
ứng dụng rất nhiều trong thực tế: Điều chỉnh âm thanh trên tivi, thiết bị loa, độ sáng các
bóng đèn, tốc độ quay của quạt, điều chỉnh vận tốc động cơ.
Biến trở là một linh kiện điện trở thuần có thể thay đổi giá trị theo ý muốn trong
khoảng cho phép. Chúng có thể được sử dụng trong các mạch điện để điều chỉnh hoạt
động của mạch điện. Điện trở của thiết bị có thể được thay đổi bằng cách thay đổi chiều
dài của dây dẫn điện trong thiết bị, hoặc bằng các tác động khác như nhiệt độ thay đổi,
ánh sáng hoặc bức xạ điện từ…


Cấu tạo của biến trở:

Hình 4: Cấu tạo biến trở
Cấu tạo của biến trở gồm 3 bộ phận chính:
-

Cuộn dây được làm bằng hợp kim có điện trở suất lớn.
Con chạy/chân chạy. Cho khả năng chạy dọc cuộn dây để làm thay đổi giá trị trở

-

kháng.
Chân ngõ ra gồm có 3 chân (3 cực). Trong số ba cực này, có hai cực được cố định
ở đầu của điện trở. Các cực này được làm bằng kim loại. Cực còn lại là một cực di
chuyển và thường được gọi là cần gạt. Vị trí của cần gạt này trên dải điện trở sẽ
quyết định giá trị của biến trở.

2.4.3. Khối hiển thị.
12


Hệ thống nhúng.

Trong đề tài chúng em sử dụng khối hiển thị LCD 20x4(4 dòng, 20cột):
-

Hiện giờ, thiết bị hiển thị LCD 20x4 được dùng trong rất nhiều các ứng dụng của
VĐK. LCD 20x4có rất nhiều ưu điểm so với các dạng hiển thị khác như: khả năng
hiển thị kí tự đa dạng (kí tự đồ họa, chữ, số); đưa vào mạch ứng dụng theo nhiều

giao thức giao tiếp khác nhau dễ dàng, tiêu tốn rất ít tài nguyên hệ thống, giá thành
rẻ…

-

Ở hệ thống này thì màn hình LCD là 1 thành phần quan trọng, nó được dùng để
thiết kế giao diện người dùng có nghĩa là màn hình LCD sẽ được hiển thị các tác
vụ và được giao tiếp với vi điều khiển để xử lý những lệnh được nhận từ đầu vào
và làm việc như mình mong muốn.

-

Đây là thiết bị hiển thị có độ phân giải cao, hiển thị kết quả rõ ràng, giá thành
không quá đắt. Vì thế nó là thiết bị đáp ứng cho hệ thống này là tốt nhất.

Hình 5: LCD 20x4 trong mạch mô phỏng




Thông số kỹ thuật:
-

Điện áp hoạt động: 5V

-

Hiển thị tối đa 20 ký tự trên 4 dòng

-


Chữ đen nền xanh lá

Chức năng các chân:
-

VSS: Chân nối đất cho LCD
13


Hệ thống nhúng.

-

VDD: Chân cấp nguồn cho LCD

-

VEE: Điều chỉnh sự tương phản cho LCD

-

RS: Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND)
hoặc logic “1” (VCC) để chọn thanh ghi.

-

RW: Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để
LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.


-

E: Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7,
các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.

-

D0-D7: Tám đường của bus dữ liệu dùng để trao đổi thơng tin với MPU. Có 2
chế độ sử dụng 8 đường bus này :
+) Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit
DB7.
+) Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB
là DB7.

2.4.4. Khối đầu vào KEYPAD
Chúng em sử dụng KEYPAD matrix 4x3 (4 hàng, 3 cột) để làm bàn phím đầu vào
điều khiển cho hệ thống. KEYPAD được dùng để setup số liệu về độ ẩm và nhiệt độ làm
đầu vào để điều khiển đầu ra.
Thông số kỹ thuật:
 12 phím trên ma trận 4x3, loại phím nhựa dẻo.
 Chiều dài cáp nối: 88mm.
 Đầu nối ra 7 chân tín hiệu (khơng có VCC, GND)
14


Hệ thống nhúng.

 Nhiệt độ hoạt động 0 ~ 70oC.
 Kích thước bàn phím 77 x 69 mm.


Hình 6: Ma trận phím và ký tự tương ứng trên phần mềm Proteus
Trong bài nhóm chúng em sẽ khai báo thư viện #include<kbd.c> , hàm kbd_init()
làm hàm khởi tạo, sử dụng hàm kbd_getc() để lấy dữ liệu nhập, VD duLieuNhap =
kbd_getc(); ký tự vừa nhập tương đương với ký tự char ở bảng mã ASCII.
Cách đấu nối Keypad trong mạch mô phỏng:

15


Hệ thống nhúng.

Hình 7: Sơ đồ đấu nối Keypad trong mạch mô phỏng
2.4.5. Khối cơ cấu chấp hành.
Ở đề tài này chúng em sử dụng 4 thiết bị là động cơ để điều khiển quạt, phun
sương, đèn sưởi và điều hòa. Được nối với 4 bộ relay tương ứng để nhận tín hiệu
điều khiên và thực hiện đóng cắt các thiết bị. pinC0 đến pinC3 được dùng làm đầu
ra để điều khiển đóng/ cắt relay. Khi cấp điện vào cực B của transistor NPN cực C
và E thì cực C – E thơng nhau như một dây dẫn kích cuộn dây trong role có điện
từ đó role đóng, mạch điện kín động cơ hoạt động. Đầu ra của cảm biến LM35
được mắc vào kênh 0(pin_A0) và đầu ra của biến trở được mắc vào kênh
1(pin_A1).

16


Hệ thống nhúng.

Hình 8: Hình ảnh các thiết bị trong cơ cấu chấp hành.

2.4.6. Khối điều khiển

Đây chính là khối trung tâm, có chức năng điều hành tồn bộ sự hoạt động của hệ
thống, nhờ có vi điều khiển thơng minh thì hệ thống mới hoạt động hiệu quả. Các dòng vi
điều khiển thường được sử dụng như: Vi điều khiển ARM, AVR, vi điều khiển PIC, vi
điều khiển 8051, Arduino...
Trong đề tài lần này em sử dụng vi điều khiển PIC 16F877A để lập trình.
Chức năng và vai trị của các chân vi điều khiển sử dụng trong hệ thống:
-

Chân RB của VDK đóng vai trị là chân INPUT sẽ được nối với các chân của
KEYPAD.

-

Chân RC0_RC3 của VDK đóng vai trị là chân INTPUT sẽ được nối với các chân của
Relay và nối với thiết bị như động cơ và đèn sưởi.

-

Chân RD của VDK đóng vai trị là chân OUTPUT sẽ được nối với các chân của
LCD.
17


Hệ thống nhúng.

-

Chân RA của VDK được chia chức năng như sau:
 Chân RA0 đóng vai trị là chân ANALOG lấy dữ liệu từ cảm biến LM35
 Chân RA1 đóng vai trò là chân ANALOG lấy dữ liệu từ cảm biến độ ẩm

( biến trở POT_HG)

Hình 9: Sơ đồ chân của VDK được sử dụng trong phần mềm Proteus

2.5.

SƠ ĐỒ NGUN LÝ TỒN MẠCH.
Màn hình Lcd 20x4 được kết nối với cổng D của vi điều khiển, keypad 4x3 được
kết nối vào cổng B của vi điều khiển,

18


Hệ thống nhúng.

Hình 10: Sơ đồ ngun lý tồn bộ hệ thống

2.6.

CHƯƠNG TRÌNH ĐIỀU KHIỂN.

2.6.1. Mơ tả u cầu điều khiển của hệ thống.
Từ những yêu cầu của đề tài cũng như gắn liền với thực tế chúng em đưa ra những
chức năng và yêu cầu của hệ thống như sơ đồ sau:

19


Hệ thống nhúng.


Hình 11: Sơ đồ mơ tả u cầu hoạt động của hệ thống

2.6.2. Lưu đồ cho biết trình tự điều khiển

20


Hệ thống nhúng.

21


Hệ thống nhúng.

2.6.3. Chương trình

#include <16f877a.h>
#device ADC=10
#use delay (clock=20M)
#define use_portd_lcd true // Su dung cong d lam dau ra cho
lcd
#define use_portb_kbd true // su dung cong b cho keypad
#include<lcd.c>
#include<kbd.c>

// khai bao thu vien keypad

#include<stdio.h> // chuc nang chuyen tu chuoi thanh so
#use standard_io(c) // dinh cau hinh vao ra cho cong giao
tiep du lieu

#use standard_io(a)
int8 x=0;
float y=0;
int8 a;
void doc_adc(){
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
SET_ADC_CHANNEL(0);
SET_ADC_CHANNEL(1);
delay_us(10);
}
void main()
{
int8 k=0; // bien ky tu
22


Hệ thống nhúng.

int8 tam=0;
int8 tong1=0, tong2, tong3, tong4;
int8 soThucTe=0;

doc_adc();
lcd_init();
kbd_init();
port_b_pullups(true);
lcd_gotoxy(3,1);
lcd_putc("BO DIEU KHIEN");
lcd_gotoxy(2,2);

lcd_putc("NHIET DO VA DO AM");
delay_ms(100);
lcd_putc("\f");
lcd_gotoxy(22,1);
lcd_putc("* SETUP");
lcd_gotoxy(32,1);
lcd_putc("# OPEN");
while(true){
k = kbd_getc();
if(k==35){
lcd_gotoxy(21,2);
lcd_putc("CHUA CO DU LIEU!");
}
if(k==42){
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("T1: -- oC");
23


Hệ thống nhúng.

lcd_gotoxy(5,1);
while(1){
k=kbd_getc();
if(k!=0&&k!=42&&k!=35){
lcd_putc(k);
soThucTe = k-48;
tong1 = tam + soThucTe;
tam=tong1*10;

}
if(k==42){
tam=0;
lcd_gotoxy(12,1);
lcd_putc("T2: -- oC");
lcd_gotoxy(16,1);
while(1){
k=kbd_getc();
if(k!=0&&k!=42&&k!=35){
lcd_putc(k);
soThucTe = k-48;
tong2 = tam + soThucTe;
tam =tong2*10;
}
if(k==42){
tam=0;
lcd_gotoxy(1,2);
lcd_putc("H1: --%");
24


Hệ thống nhúng.

lcd_gotoxy(5,2);
while(1){
k=kbd_getc();
if(k!=0&&k!=42&&k!=35){
lcd_putc(k);
soThucTe = k-48; //
tong3 = tam + soThucTe;

tam=tong3*10;
}
if(k==42){
tam=0;
lcd_gotoxy(12,2);
lcd_putc("H2: -- %");
lcd_gotoxy(16,2);
while(1){
k=kbd_getc();
if(k!=0&&k!=42&&k!=35){
lcd_putc(k);
soThucTe = k-48;
tong4 = tam + soThucTe;
tam=tong4*10;
}

if(k==35){
do{
for(int8 i=0;i<=5;i++){
25


×