do an thiet ke he thong giam sat moi truong 23937

104
ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BỘ MÔN : KỸ THUẬT MÁY TÍNH ĐỒ ÁN MỘN HỌC MÔN HỌC HỆ THỐNG NHÚNG Đề tài : Thiết kế hệ thống giám sát môi trường nhà vườn, ứng dụng cho vườn hoa lan NHÓM SINH VIÊN : NGUYỄN HỮU TÌNH DƯƠNG VĂN TÚ LỚP : 44S GIÁO VIÊN HƯỚNG DẪN : NGUYỄN TIẾN DUY BỘ MÔN KỸ THUẬT MÁY TÍNH - 1 -

Upload: hongnguyen

Post on 28-Jan-2016

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

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

KHOA ĐIỆN TỬ

BỘ MÔN : KỸ THUẬT MÁY TÍNH

ĐỒ ÁN MỘN HỌC

MÔN HỌC

HỆ THỐNG NHÚNG

Đề tài : Thiết kế hệ thống giám sát môi trường nhà

vườn, ứng dụng cho vườn hoa lan

NHÓM SINH VIÊN : NGUYỄN HỮU TÌNH

DƯƠNG VĂN TÚ

LỚP : 44S

GIÁO VIÊN HƯỚNG DẪN : NGUYỄN TIẾN DUY

THÁI NGUYÊN 2012

BỘ MÔN KỸ THUẬT MÁY TÍNH - 1 -

Page 2: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Nhận xét của giáo viên hướng dẫn

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

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

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

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

Thái Nguyên, Ngày Tháng Năm 2012

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 2012

Giáo Viên hướng dẫn

(Ký ghi rõ họ tên)

Mục lục

Chương 1 Phân tích bài toán.....................................................................................................6

BỘ MÔN KỸ THUẬT MÁY TÍNH - 2 -

Page 3: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

1.1 Khảo sát và phân tích bài toán........................................................................................61.2 các yêu cầu.........................................................................................................................71.3 Giới hạn hạn định.............................................................................................................71.4 Giải pháp công nghệ.........................................................................................................71.5 Giải pháp thiết kế.............................................................................................................8

Chương 2 : Hệ thống giám sát môi trường nhà vườn ứng dụng cho vườn hoa lan..............92.1 Sơ đồ tổng quát.................................................................................................................92.2 Sơ đồ callgraph...............................................................................................................102.3 Sơ đồ đặc tả.....................................................................................................................102.4 Các module của hệ thống...............................................................................................11

2.4.1 Module khối nguồn:.................................................................................................112.4.2 Module sử lý trung tâm...........................................................................................122.4.3 Module cảm biến......................................................................................................132.5.1 Vi điều khiển PIC16F877A.....................................................................................152.5.2 Cảm biến ẩm độ và nhiệt độ SHT71......................................................................222.5.3 Cảm biến quang (LDR)...........................................................................................282.5.4 LCD 16x2 màn hình tinh thể lỏng.........................................................................292.5.4 Trasitor.....................................................................................................................512.5.5 Tụ điện......................................................................................................................522.5.6 IC ổn áp LM7805.....................................................................................................52

2.6 Sơ đồ nguyên lý tổng thể................................................................................................532.7 Thuật toán điều khiển.....................................................................................................54

Chương 3: xây dựng hệ thống.................................................................................................573.1 Thiết kế phần cứng.........................................................................................................573.2 Thiết kế phần mềm.........................................................................................................573.3 kết quả mô phỏng...........................................................................................................723.4 Đánh giá và kết luân.......................................................................................................74

3.4.1 Đánh giá....................................................................................................................743.4.2 Kết luận....................................................................................................................76

Tài liệu tham khảo......................................................................................................................77

Danh sách các hình ảnh

Hình 2.1 sơ đồ tổng quát..............................................................................................................9Hình 2.2 sơ đồ callgraph.............................................................................................................10Hình 2.3 sơ đồ đặc tả..................................................................................................................11Hình 2.4 sơ đồ khối nguồn.........................................................................................................12Hình 2.5 sơ đồ khối điều khiển trung tâm..................................................................................13Hình 2.6 sơ đồ khối cảm biến ánh sáng......................................................................................13Hình 2.7 sơ đồ khối cảm biến sht71...........................................................................................14Hình 2.8 module hiển thị LCD...................................................................................................142.5 Lựa chọn linh kiện................................................................................................................15

BỘ MÔN KỸ THUẬT MÁY TÍNH - 3 -

Page 4: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.9: Sơ đồ chân PIC 16F877A...........................................................................................15Hình 2.10 : Sơ đồ khối vi điều khiển PIC16F877A...................................................................17Hình 2.11 cảm biến nhiệt độ độ ẩm SHT71...............................................................................23Hình 2.12 hình ảnh và sơ đồ chân cảm biến SHT71.....................................................................26Hình 2.13 sơ đồ kết nối của SHT71..........................................................................................27Hình 2.14 cảm biến quang ( quang trở ).....................................................................................28Hình 2.15 : Hình dáng của loại LCD thông dụng.......................................................................30Hình 2.16 : Sơ đồ chân của LCD................................................................................................30Hình 2.17 : Sơ đồ khối của HD44780........................................................................................33Hình 2.18 : Giản đồ xung cập nhật AC......................................................................................36Hình 2.19 : Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD..........................37Hình 2.20 : Mối liên hệ giữa địa chỉ của ROM và dữ liệu tạo mẫu kí tự...................................38Hình 2.21 : Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM, và mã kí tự.............41Hình 2.22 lệnh khởi tạo LCD.....................................................................................................50Hình 2.23 Hình ảnh transistor.....................................................................................................51Hình 2.24 Một số loại tụ điện.....................................................................................................52Hình 2.25 IC ổn áp 7805............................................................................................................53Hình 2.26 sơ đồ nguyên lý tổng thể............................................................................................54Hình 2.27 sơ đồ giải thuật...........................................................................................................56Hình 3.1 bắt đầu chương trình....................................................................................................72Hình 3.2 in lên màn hình giá trị, nhiệt độ, độ ẩm, và cường độ ánh sáng..................................73Hình 3.3 in lên màn hình giá trị, nhiệt độ, độ ẩm, và cường độ ánh sáng..................................74

BỘ MÔN KỸ THUẬT MÁY TÍNH - 4 -

Page 5: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Giới thiệu:

Điều kiện môi trường thích hợp là sự cần thiết cho sự tăng trưởng thực vật

tối ưu, cải thiện năng suất cây trồng, và sử dụng hiệu quả nước và các nguồn

khác. Tự động hoá việc thu thập dữ liệu quá trình điều kiện đất và các thông số

khí hậu khác nhau chi phối sự phát triển của thực vật cho phép thông tin được thu

thập ở tần suất cao với yêu cầu lao động ít hơn. Hiện có hệ thống sử dụng hệ

thống máy tính hoặc dựa trên tin nhắn cho người sử dụng liên tục thông báo các

điều kiện bên trong nhà kính, nhưng khả năng chi trả, cồng kềnh, khó khăn để

duy trì và ít được chấp nhận bởi các công nhân không có kỹ năng công nghệ.

Mục tiêu của dự án này là thiết kế, dễ cài đặt, đơn giản dựa trên vi điều khiển

để theo dõi và ghi lại các giá trị của nhiệt độ, độ ẩm, và ánh sáng mặt trời môi

trường tự nhiên đang tiếp tục sửa đổi và kiểm soát để tối ưu hóa chúng đạt được

tăng trưởng thực vật và năng suất tối đa. Bộ điều khiển sử dụng điện năng thấp,

chi phí con chip hiệu quả

Chíp 16F877có thể giao tiếp với mô-đun cảm biến khác nhau trong thời gian

thực để kiểm soát quá trình ánh sáng, thông khí và độ ẩm hiệu quả bên trong một

nhà kính. Một tích hợp màn hình hiển thị tinh thể lỏng (LCD) cũng được sử dụng

để hiển thị thời gian thực của dữ liệu có được từ các cảm biến khác nhau sử dụng

BỘ MÔN KỸ THUẬT MÁY TÍNH - 5 -

Page 6: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

của các thành phần dễ dàng có sẵn làm giảm sản xuất và chi phí bảo trì. Thiết kế

này là khá linh hoạt khi các phần mềm có thể được thay đổi bất cứ lúc nào. Nó có

thể do đó được thiết kế riêng thực hiện các yêu cầu cụ thể của người sử dụng.

Điều này làm cho hệ thống được đề xuất là kinh tế, di động và bảo trì thấp

giải pháp cho các nhà vườn, vườn lan.

Chương 1 Phân tích bài toán

1.1 Khảo sát và phân tích bài toán

Chúng ta sống trong một thế giới nơi mà tất cả mọi thứ có thể được kiểm soát

và vận hành tự động, nhưng vẫn còn một số lĩnh vực quan trọng ở nước ta mà tự

động hóa đã không được thông qua hoặc không được đưa vào sử dụng chính

thức, có lẽ vì một số lý do như là chi phí và kỹ thuật. Một trong những lĩnh vực

đó là nông nghiệp. Nhà vườn tạo thành một phần quan trọng của ngành nông

nghiệp và làm vườn ở nước ta vì chúng có thể được sử dụng để phát triển các nhà

máy trong điều kiện kiểm soát khí hậu cho các sản phẩm tối ưu, các nông sản có

độ đảm bảo an toàn thực phẩm cao . Tự động hoá dự kiến gây hiệu ứng nhà kính

theo dõi và kiểm soát các thông số khí hậu trực tiếp hoặc gián tiếp chi phối sự

tăng trưởng cây trồng.Tự động hóa là quá trình điều khiển máy móc công nghiệp

và các quá trình. Do đó có thể thay thế các công việc của con người.

Các yếu tố khí hậu tác động một cách tổng hợp lên lên cây trồng. Khi khí

hậu nóng lên, các yếu tố như sự biến động nhiệt độ, lượng mưa, cường độ chiếu

sáng sẽ là yếu những yếu tố tác động mạnh nhất lên cấy trồng.

Một hệ thống giám sát và điều khiển các thiết bị máy nông nghiệp tạo điều

kiện thuận lợi nhất cho cây trồng sẽ giúp tăng trưởng phát triển của cây trông và

giảm số lượng lao động trong nhà vườn,

BỘ MÔN KỸ THUẬT MÁY TÍNH - 6 -

Page 7: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

1.2 các yêu cầu

Đây là một thiết lập phức tạp được trang bị tốt để phản ứng với hầu hết

những thay đổi khí hậu xảy ra bên trong nhà vườn. Nó hoạt động trên một hệ

thống thông tin phản hồi giúp nó để đáp ứng với các kích thích bên ngoài một

cách hiệu quả. Mặc dù thiết lập này lên vượt qua những vấn đề gây ra do lỗi của

con người nó không phải là hoàn toàn tự động và tốn kém.

1.3 Giới hạn hạn định

- Làm việc cả ngày lẫn đêm

- Thu nhận tín hiệu liên tục khi có sự thay đổi các yêu tố thời tiết.

-Nhiệt độ môi trường từ

-Độ ẩm môi trường

-Cường độ ánh sáng

-Hệ thống cấp điện mới từ đầu

1.4 Giải pháp công nghệ

Các hệ thống được đề xuất là một hệ thống nhúng sẽ giám sát chặt chẽ và

kiểm soát các thông số khí hậu nhà vườn trên cơ sở thường xuyên cho việc

trồng các loại cây trồng hoặc các loài thực vật cụ thể có thể tối đa hóa sản

xuất của họ trong mùa tăng trưởng toàn bộ cây trồng và loại bỏ những khó

khăn tham gia vào hệ thống bằng cách giảm sự can thiệp của con người đến

mức thấp nhất có thể. Hệ thống này bao gồm cảm biến, vi điều khiển pic,

chuyển đổi và thiết bị truyền động.

Khi đề cập ở trên các thông số khí hậu qua một ngưỡng an toàn được duy trì

để bảo vệ cây trồng, các cảm biến cảm nhận sự thay đổi và vi điều khiển pic

đọc từ các dữ liệu tại các chân đầu vào của cảm biến. Vi điều khiển Pic thực

BỘ MÔN KỸ THUẬT MÁY TÍNH - 7 -

Page 8: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

hiện các hành động cần thiết bằng cách sử dụng các chuyển tiếp cho đến khi

các tham số khí hậu đã được đưa trở lại cấp độ tối ưu của nó. Kể từ khi một vi

điều khiển được sử dụng, nó làm cho các thiết lập chi phí thấp và hiệu quả,

tuy nhiên. Khi hệ thống cũng sử dụng một màn hình LCD liên tục cảnh báo

người dùng về tình trạng bên trong nhà kính, toàn bộ thiết lập trở nên thân

thiện với người dùng.

Như vậy, hệ thống này giúp loại bỏ những hạn chế hiện có set-up được đề cập

trong phần trước và được thiết kế như một cách dễ dàng để duy trì, linh hoạt

và giải pháp chi phí thấp.

Qua những phân tích ở trên em đưa ra phương pháp xây dựng hệ thống

giám sát môi trường nhà vườn, (từ đó có thể thiết lập thêm phần điều khiển

bật tắt các thiệt bị trong điều khiển các yếu tố khí hậu, như tưới nước nhỏ giọt,

phun sương mù, bật tắt đèn chiếu sáng, hệ thống quạt thoáng gió).

1.5 Giải pháp thiết kế

- Để thu nhận các yếu tố khí hậu của môi trường ta dùng các cảm biến ánh

sáng, độ ẩm và nhiệt độ.

- Xử lý, khối điều khiển dùng vi điều khiển pic: lập trình để pic nhận tín hiệu

từ cảm biến và tính toán sử lý để đưa ra lệnh tắt mở các thiết bị kiểm soát các yếu

tố khí hậu.

- Để hiện thị ta dùng màn hình tinh thể lỏng LCD để thông báo thông số khí

hậu.

( Điều khiển tắt mở thiết bị truyền động dùng các transistor cấp dòng cho

relays.)

BỘ MÔN KỸ THUẬT MÁY TÍNH - 8 -

Page 9: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Chương 2 : Hệ thống giám sát môi trường nhà vườn ứng dụng

cho vườn hoa lan

2.1 Sơ đồ tổng quát

Hệ thống giám sát môi trường nhà kính gồm có 5 phần chính.

Hình 2.1 sơ đồ tổng quát

- khối nguồn : lấy AC hoặc DC đầu vào từ 5- 15V biến đổi thành nguồn DC

5V cấp cho khối điều khiển trung tâm, khối hiển thị khối cảm biến và khối chấp

hành.

- Khối điều khiển trung tâm : tiếp nhận tín hiệu từ khối cảm biến sau đó sử

lý và suất tín hiệu tới khối hiển thị.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 9 -

Khối xử lý

Khối hiểnthị

Khốicảm biến

Khối nguồn

Page 10: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

- Khối hiển thị : nhận tín hiệu từ khối sử lý, hiển thị giá trị nhiệt độ, độ ẩm

và cường độ chiếu sáng.

- Khối cảm biến :Đo giá trị độ chiếu sáng, độ ẩm và nhiệt độ dùng cảm biến

quang và cảm biến nhiệt độ, độ ẩm SHT71

2.2 Sơ đồ callgraph

Hình 2.2 sơ đồ callgraph

2.3 Sơ đồ đặc tả

BỘ MÔN KỸ THUẬT MÁY TÍNH - 10 -

Chương trìnhđiều khiển chính

ModuleXử lý

Cảm biến

ModuleXử lý

Chương trình

Cảm biến

Hiển thị

Gửi lệnh thiết lập cảm biến

Nhận tín hiệu từ cảm biến

Page 11: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.3 sơ đồ đặc tả

- Khối nhiệt độ, độ ẩm, cường độ ánh sáng trong nhà vườn được xác định

thông qua các cảm biến.

-khối nhà vườn. xác định nhiệt độ từ sensor và hiển thị lên màn hình

- khối hiển thị, hiển thị các thông số được xác định từ nhà vườn

2.4 Các module của hệ thống

2.4.1 Module khối nguồn:

Module này tạo ra điện áp 1 chiều 5V từ nguồn xoay chiều để cung cấp cho

các liên kiện trong hệ thống. sử sụng chỉnh lưu cầu, và IC ổn áp LM7805 để lấy

điện áp 5V ở ngõ ra.

G N D

- +

D 3

D B 1 0 5

1

2

3

4

U 1 5L M 7 8 0 5

1

2

3V I

GN

D

V O

T1

2 2 0 V A C 5 0 H z in p u t

1 3

2 5 + C 32 2 0 u F

+5 V

C 41 0 0 n F

BỘ MÔN KỸ THUẬT MÁY TÍNH - 11 -

Nhiệt độ, ánh sáng , độ ẩm

Nhà vườn Hiển thị

Xác định giá trị nhiệt độ, độ ẩm, cường độánh sáng

Hiển thị độ ẩm, nhiệt độ, cường độ ánh sáng

Page 12: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.4 sơ đồ khối nguồn

2.4.2 Module sử lý trung tâm

khối điều khiển trung tâm sử dụng vi điều khiển pic 16F877

Bộ tạo dao động dùng thạch anh 4M cung cấp nguồn dao động cho Pic.

Bộ reset cấp nguồn 5V và xác lập trạng thái ban đầu cho pic.

D 4

+5 V

C K 1

D 6R S T

G N D

A D C

D 5

E

S C K

R S

D 7

P V N 2

P I C 1 6 F 8 7 7 A

234567

3 33 43 53 63 73 83 94 0

1 51 61 71 82 32 42 52 6

1 92 02 12 22 72 82 93 0

1 3

1 4

3 21 1

3 11 2

1

891 0

R A 0 / A N 0R A 1 / A N 1R A 2 / A N 2 / V R E F -/ C V R E FR A 3 / A N 3 / V R E F +R A 4 / T0 C K I / C 1 O U TR A 5 / A N 4 / S S * / C 2 O U T

R B 0 / I N TR B 1R B 2

R B 3 / P G MR B 4R B 5

R B 6 / P G CR B 7 / P G D

R C 0 / T1 O S O / T1 C K IR C 1 / T1 O S I / C C P 2R C 2 / C C P 1R C 3 / S C K / S C LR C 4 / S D I / S D AR C 5 / S D OR C 6 / TX/ C KR C 7 / R X/ D T

R D 0 / P S P 0R D 1 / P S P 1R D 2 / P S P 2R D 3 / P S P 3R D 4 / P S P 4R D 5 / P S P 5R D 6 / P S P 6R D 7 / P S P 7

O S C 1 / C L K I N

O S C 2 / C L K O U T

V D DV D D

V S SV S S

M C L R * / V P P

R E 0 / R D * / A N 5R E 1 / W R * / A N 6R E 2 / C S * / A N 7

D A TA

C k 2

G N D

+5 V

R S T

R 51 0 K

C K 2

Y 1

4 M H z

C 1

3 3 p

G N D

C 2

3 3 p

C K 1

Hình 2.5 sơ đồ khối điều khiển trung tâm

BỘ MÔN KỸ THUẬT MÁY TÍNH - 12 -

Page 13: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

2.4.3 Module cảm biến

Bộ phận cảm biến của hệ thống chia làm hai phần, cảm biến quang và cảm

biến ẩm độ và nhiệt độ. Cảm biến ẩm độ và nhiệt độ được tích hợp trông cùng

một linh kiện.

-Cảm biến quang:

+5 V

L D R

R 2R

A D C

0

Hình 2.6 sơ đồ khối cảm biến ánh sáng

- Cảm biến ẩm độ và nhiệt độ:

S C K

+5 V

+5 V

G N D

U 1 4

s h t 7 1

sc

kv

dd

gn

dd

ata

1 2 3 4

D A TA

R 31 0 k

R 41 0 k

BỘ MÔN KỸ THUẬT MÁY TÍNH - 13 -

Page 14: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.7 sơ đồ khối cảm biến sht71

2.4.4 module hiển thị:

Sử dụng LCD 16X2 , do ta có nhiều hơn 2 biến hiển thị lên dùng LCD có

hai dòng là phù hợp.

LD R7 8 9 1

01

11

21

31

4

1 2 3 4 5 6

d0

d1

d2

d3

d4

d5

d6

d7

vs

sv

dd

ve

e

rs rw e

G N D

D6

D7

R S

D4

D5

+ 5 V

E

Hình 2.8 module hiển thị LCD

2.5 Lựa chọn linh kiện

BỘ MÔN KỸ THUẬT MÁY TÍNH - 14 -

Page 15: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

2.5.1 Vi điều khiển PIC16F877A

a. Sơ đồ chân vi điều khiển PIC 16F877A

Hình 2.9: Sơ đồ chân PIC 16F877A

b. Một vài thông số về vi điều khiển PIC 16F877A

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài

14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt

động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương

trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM

với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O. Các đặc tính ngoại

vi bao gồm các khối chức năng sau:

Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.

Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm

BỘ MÔN KỸ THUẬT MÁY TÍNH - 15 -

Page 16: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.

Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler. Hai bộ Capture/so

sánh/điều chế độ rộng xung.

Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.

Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.

Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD,

WR, CS bên ngoài.

Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit. Hai bộ so sánh.

Bộ nhớ flash với khả năng ghi xóa được 100.000 lần. Bộ nhớ EEPROM

với khả năng ghi xóa được 1.000.000 lần. Dữ liệu bộ nhớ EEPROM có thể lưu trữ

trên 40 năm. Khả năng tự nạp chương trình với sự điều khiển của phần mềm. Nạp

được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming)

thông qua 2 chân. Watchdog Timer với bộ dao động trong. Chức năng bảo mật mã

chương trình. Chế độ Sleep. Có thể hoạt động với nhiều dạng Oscillator khác nhau.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 16 -

Page 17: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

c. Sơ đồ khối vi điều khiển PIC 16F877A

Hình 2.10 : Sơ đồ khối vi điều khiển PIC16F877A

d. Tổ chức bộ nhớ

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương

trình (program memory) và bộ nhớ dữ liệu (data memory) .

BỘ MÔN KỸ THUẬT MÁY TÍNH - 17 -

Page 18: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash ,

dung lượng bộ nhớ 8k word (1 word= 14bit) và được phân thành nhiều trang (từ

page 0 đến page 3) .Như vậy bộ nhớ chương trinh có khả năng chứa được 8*1024

=8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14 bit). Để mã

hóa được địa chỉ của 8k word bộ nhớ chương trình , bộ đếm chương trình có

dung lượng 13 bit (PC<12:0>) . Khi vi điều khiển reset , bộ đếm chương trình sẽ

chỉ đến địa chỉ 0000h (reset vector). Khi có ngắt xảy ra , bộ đếm chương trình sẽ

chỉ đến địa chỉ 0004h (interrupt vector). Bộ nhớ chương trình không bao gồm bộ

nhớ stack sẽ được đề cập cụ thể trong phần sau.

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm

nhiều bank. Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi

bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG

(Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục

đích chung GPR (General Purpose Pegister) nằm ở vùng địa chỉ còn lại trong

bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi

STATUS) sẽ được đặt ở tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trong

quá trình truy xuất và làm giảm bớt lệnh của chương trình.

Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một

vùng nhớ đặc biệt không cho phép đọc hay ghi. Khi lệnh CALL được thực hiện

hay khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương

trình PC tự động được vi điều khiển cất vào trong stack. Khi một trong các lệnh

RETURN, RETLW hat RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra

từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng qui trình

định trước.

Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa

được 8 địa chỉ và hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ

nhớ Stack lần thứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất

BỘ MÔN KỸ THUẬT MÁY TÍNH - 18 -

Page 19: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

vào bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá trị 6 cất vào Stack lần thứ 2. Cần

chú ý là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biết được

khi nào stack tràn. Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không

có lệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều

khiển bởi CPU.

e. Các cổng xuất nhập của PIC16F877A

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để

tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá

trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.

Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy

theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và

số lượng chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển

được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức

năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các

chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với

thế giới bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn

toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên

quan đến chân xuất nhập đó.

Port A

Port A (RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều”

(bidirectional pin), nghĩa là có thể xuất và nhập được. Chức năng I/O này được

điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một

chân trong PortA là input, ta “set” bit điều khiển tương ứng với chân đó trong

thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong Port

A là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi

TRISA. Thao tác này hoàn toàn tương tự đối với các PORT còn lại. Bên cạnh đó

Port A còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung

BỘ MÔN KỸ THUẬT MÁY TÍNH - 19 -

Page 20: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial

Port).

Các thanh ghi SFR liên quan đến Port A bao gồm:

Port A (địa chỉ 05h) : chứa giá trị các pin trong

Port A. TRISA (địa chỉ 85h) : điều khiển xuất nhập.

CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh.

CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp.

ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC.

Port B

Port B (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISB. Bên cạnh đó một số chân của Port B còn đươc sử dụng trong quá trình

nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau. Port B còn

liên quan đến ngắt ngoại vi và bộ Timer0. Port B còn được tích hợp chức năng

điện trở kéo lên được điều khiển bởi chương trình.

Các thanh ghi SFR liên quan đến Port B bao gồm:

Port B (địa chỉ 06h,106h) : chứa giá trị các pin trong

Port B TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập

OPTION_REG(địa chỉ 81h,181h): điều khiển ngắt ngoại vi và bộ Timer0

Port C

PortC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISC. Bên cạnh đó Port C còn chứa các chân chức năng của bộ so sánh, bộ

Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART.

Các thanh ghi điều khiển liên quan đến Port C:

Port C (địa chỉ 07h) : chứa giá trị các pin trong

Port C TRISC (địa chỉ 87h) : điều khiển xuất nhập.

Port D

Port D (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng

BỘ MÔN KỸ THUẬT MÁY TÍNH - 20 -

Page 21: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

là TRISD. Port D còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel

Slave Port).

Các thanh ghi liên quan đến Port D bao gồm:

Thanh ghi Port D : chứa giá trị các pin trong Port D.

Thanh ghi TRISD : điều khiển xuất nhập.

Thanh ghi TRISE : điều khiển xuất nhập Port E và chuẩn giao tiếp PSP.

Port E

Port E (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng

là TRISE. Các chân của PortE có ngõ vào analog. Bên cạnh đó Port E còn là các

chân điều khiển của chuẩn giao tiếp PSP.

Các thanh ghi liên quan đến Port E bao gồm:

Port E : chứa giá trị các chân trong PortE.

TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao

tiếp PSP

ADCON1: thanh ghi điều khiển khối ADC.

f. Ngắt (Interrupt)

PIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi

thanh ghi INTCON (bit GIE). Bên cạnh đó mỗi ngắt còn có một bit điều khiển và

cờ ngắt riêng. Các cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt

xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuộc

vào bit GIE và các bit điều khiển khác. Bit điều khiển ngắt RB0/INT và TMR0

nằm trong thanh ghi INTCON, thanh ghi này còn chứa bit cho phép các ngắt

ngoại vi PEIE. Bit điều khiển các ngắt nằm trong thanh ghi PIE1 và PIE2. Cờ

ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2.

Trong một thời điểm chỉ có một chương trình ngắt được thực thi, chương

trình ngắt được kết thúc bằng lệnh RETFIE. Khi chương trình ngắt được thực

thi, bit GIE tự động được xóa, địa chỉ lệnh tiếp theo của chương trình chính được

BỘ MÔN KỸ THUẬT MÁY TÍNH - 21 -

Page 22: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

cất vào trong bộ nhớ Stack và bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h.

Lệnh RETFIE được dùng để thoát khỏi chương trình ngắt và quay trở về chương

trình chính, đồng thời bit GIE cũng sẽ được set để cho phép các ngắt hoạt động

trở lại. Các cờ hiệu được dùng để kiểm tra ngắt nào đang xảy ra và phải được

xóa bằng chương trình trước khi cho phép ngắt tiếp tục hoạt động trở lại để ta có

thể phát hiện được thời điểm tiếp theo mà ngắt xảy ra.

Đối với các ngắt ngoại vi như ngắt từ chân INT hay ngắt từ sự thay đổi trạng

thái các pin của PORTB (PORTB Interrupt on change), việc xác định ngắt nào

xảy ra cần 3 hoặc 4 chu kì lệnh tùy thuộc vào thời điểm xảy ra ngắt.

Cần chú ý là trong quá trình thực thi ngắt, chỉ có giá trị của bộ đếm chương

trình được cất vào trong Stack, trong khi một số thanh ghi quan trọng sẽ không

được cất và có thể bị thay đổi giá trị trong quá trình thực thi chương trình ngắt.

Điều này nên được xử lý bằng chương trình để tránh hiện tượng trên xảy ra.

Ngắt INT

Ngắt này dựa trên sự thay đổi trạng thái của pin RB0/INT. Cạnh tác

động gây ra ngắt có thể là cạnh lên hay cạnh xuống và được điều khiển bởi bit

INTEDG (thanh ghi OPTION_ REG <6>). Khi có cạnh tác động thích hợp xuất

hiện tại pin RB0/INT, cờ ngắt INTF được set bất chấp trạng thái các bit điều

khiển GIE và PEIE. Ngắt này có khả năng đánh thức vi điều khiển từ chế độ

sleep nếu bit cho phép ngắt được set trước khi lệnh SLEEP được thực thi.

Ngắt do sự thay đổt trạng thái các PIN trong Port B

Các pin PORTB<7:4> được dùng cho ngắt này và được điều khiển

bởi bit RBIE (thanh ghi INTCON<4>). Cờ ngắt của ngắt này là bit RBIF

(INTCON<0>).

2.5.2 Cảm biến ẩm độ và nhiệt độ SHT71

SHT71 là một con chíp đo nhiệt độ độ ẩm tương đối, module đa cảm biến

được tích hợp một đầu ra, ứng dụng của công nghệ quá trình CMOS đảm bảo độ

BỘ MÔN KỸ THUẬT MÁY TÍNH - 22 -

Page 23: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

tin cậy cao và làm việc dài hạn. Các thiết bị bao gồm một loại polymer phần tử

cảm biến điện dung cho độ ẩm tương đối và nhiệt độ cảm biến bangap. Cả hai

được liên kết trên một tín hiệu tương tử với tần số chuyển đổi kỹ thật số là 14bit

và một mạch giao tiếp nối tiếp trên cùng một chíp. Các hệ số hiệu chỉnh được lập

trình vào OTC bộ nhớ.các hệ số được sử dụng trong nội bộ quá trình các phép đo

để hiệu chỉnh các tín hiệu từ cảm biến. 2- dây được nối tiếp để điều chỉnh điện áp

nội bộ cho phép tích hợ hệ thống dễ dành và nhanh chóng. Kích thước nhở và

tiêu thụ điện năng thâp.

Hình 2.11 cảm biến nhiệt độ độ ẩm SHT71

Độ chính xác đổ ẩm là ±3% (% RH)

Độ chính xác nhiệt độ ±0.4°C (°C)

Chuẩn giao tiếp 2Wire

Các ứng dụng CMOSens ® công nghệ đảm bảo độ tin cậy tuyệt vời và ổn định

lâu dài. Cả hai cảm biến được liền mạch kết để analog 14bit để chuyển đổi kỹ

thuật số và một giao diện mạch nối tiếp. Điều này dẫn đến chất lượng tín hiệu tốt

hơn, thời gian đáp ứng nhanh chóng và vô cảm trước những xáo trộn bên ngoài

(EMC). SHT7x Mỗi cá nhân được hiệu chỉnh trong một căn phòng độ ẩm chính

xác. Hệ số hiệu chuẩn được lập trình vào bộ nhớ trên chip OTP. Các hệ số được

BỘ MÔN KỸ THUẬT MÁY TÍNH - 23 -

Page 24: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

sử dụng trong nội bộ hiệu chỉnh các tín hiệu từ các cảm biến. 2-dây nối tiếp giao

diện và điều chỉnh điện áp nội bộ cho phép tích hợp hệ thống dễ dàng và nhanh

chóng. Kích thước nhỏ và tiêu thụ điện năng thấp làm cho SHT7x là sự lựa chọn

cuối cùng cho những ứng dụng đòi hỏi khắt khe nhất. SHT7x được cung cấp trên

FR4 với các chân cho phép tích hợp dễ dàng hoặc thay thế. Các cảm biến tương

tự cũng có sẵn như là bề mặt bao bì mountable (SHT1x) hoặc trên flex in

(SHTA1).

Sensor Chip

SHT7x V4 - mà kỹ thuật này áp dụng tính năng một phiên bản 4 chip cảm biến

Silicon. Bên cạnh cảm biến độ ẩm và nhiệt độ chip có chứa một bộ khuếch đại,

chuyển đổi A / D, bộ nhớ OTP và một giao diện kỹ thuật số.

Kết quả đó đến từ cảm biến là rất chính xác và đã được hiệu chuẩn, do đó bạn

không thể làm cho sai lầm. Đặc tính đo lường của nó được hiển thị trong bảng

dưới đây.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 24 -

Page 25: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Nguồn cung cấp điện áp có thể được trong phạm vi từ 2,4 đến 5,5 V, nhưng tùy

thuộc vào điện áp, bạn nên chọn các hằng số khác nhau trong các chức năng tính

toán kết quả.

Giao diện kỹ thuật

Cảm biến thành phần chính nó có 4 chân.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 25 -

Page 26: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.12 hình ảnh và sơ đồ chân cảm biến SHT71

Điện áp cung cấp SHT7x phải là trong khoảng 2.4 và 5.5V, đề nghị cung cấp

điện áp là 3.3V. Tách của VDD và GND của một tụ điện 100nF được tích hợp

trên mặt sau của bao bì cảm biến. Giao diện nối tiếp của SHT7x được tối ưu hóa

để readout cảm biến và tiêu thụ điện năng hiệu quả. Cảm biến không thể được

giải quyết bằng giao thức I2C, tuy nhiên, cảm biến có thể được kết nối với một

địa chỉ I2C mà không có sự can thiệp với các thiết bị khác kết nối với đĩa chỉ

byte. Vi điều khiển phải chuyển đổi giữa các giao thức.

Để kết nối cảm biến với vi điều khiển, bạn cần chỉ có hai chân kỹ thuật số và điện

trở pullup một. Trên hình dưới đây, bạn có thể xem ví dụ về làm thế nào để kết

nối nó.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 26 -

Page 27: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.13 sơ đồ kết nối của SHT71

Nối tiếp đồng hồ đầu vào (SCK)

SCK được sử dụng để đồng bộ hóa các thông tin liên lạc giữa vi điều khiển và

SHT7x. Kể từ khi giao diện bao gồm logic hoàn toàn tĩnh không có tần số SCK

tối thiểu.

Nối tiếp dữ liệu (DATA)

Pin dữ liệu tri-nhà nước được sử dụng để chuyển dữ liệu vào và ra của cảm biến.

Đối với việc gửi một lệnh để cảm biến, DATA là hợp lệ trên tăng cạnh đồng hồ

nối tiếp (SCK) và phải duy trì ổn định trong khi SCK là cao. Sau khi các cạnh

thuộc của SCK giá trị dữ liệu có thể được thay đổi. Để đọc dữ liệu từ cảm biến,

DATA là hợp lệ TV sau khi SCK đã đi thấp và vẫn còn hợp lệ cho đến khi các

cạnh thuộc tiếp theo của SCK. Để tránh những ganh đua tín hiệu vi điều khiển

BỘ MÔN KỸ THUẬT MÁY TÍNH - 27 -

Page 28: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

chỉ phải lái xe DỮ LIỆU thấp. Một bên ngoài điện trở kéo lên (ví dụ 10 kS) là

cần thiết để kéo các tín hiệu cần được lưu ý rằng điện trở kéo lên có thể được bao

gồm trong mạch I / O của vi điều khiển.

2.5.3 Cảm biến quang (LDR)

Cảm biến quang (LDR) hay còn gọi điện trở phụ thuộc ánh sáng, quang dẫn,

tế bào quang điện. Là một thiết bị thay đổi sức kháng khi thay đổi cường độ ánh

sáng chiếu vào bề mặt của nó. Nó nhạy cảm với cả khoảng ánh sáng nhìn thấy lên

nó rất thích hợp với ứng dụng đã đề xuất.

Hình 2.14 cảm biến quang ( quang trở )

Các tính năng cơ bản của bộ cảm biến quang.

- Nó được cấu tạo từ chất Cadmium sulphide (CdS)

- Sức đề kháng của LDR giảm khi cường độ ánh sáng chiếu vào nó tăng

- Các LDR của kháng có thể đạt 10 ohms k trong điều kiện trời tối và

khoảng 100 ohms ở độ sáng đầy đủ.

- Các mạch được sử dụng cho cảm biến ánh sáng trong hệ thống của chúng

tôi sử dụng 10 kΩ điện trở cố định được gắn liền với 5 V. Do đó giá trị điện áp

trong trường hợp này giảm với sự gia tăng về cường độ ánh sáng.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 28 -

Page 29: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

- Các nút cảm biến điện áp được so sánh với điện áp ngưỡng cho các mức

độ khác nhau của cường độ ánh sáng tương ứng với bốn điều kiện, tối ưu, mờ, tối

và đêm.

- Mối quan hệ giữa kháng RL và cường độ ánh sáng Lux cho một điển hình

LDR là:

RL = 500 / Lux kΩ

- Với các LDR kết nối với 5V thông qua một điện trở 10K, điện áp đầu ra

của các LDR

là:

Vout= 5*(10+RL)/RL (V)

2.5.4 LCD 16x2 màn hình tinh thể lỏng

* Giới thiệu :

Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng

trong rất nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so với các

dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và

kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao

tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẽ …

Tổng Quát Về LCD HD44780

1> Hình dáng và kích thước:

Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên

BỘ MÔN KỸ THUẬT MÁY TÍNH - 29 -

Page 30: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

hình 1 là loại LCD thông

dụng.

Hình 2.15 : Hình dáng của loại LCD thông dụng

Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên

trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này được đánh số

thứ tự và đặt tên như hình 2 :

Hình 2.16 : Sơ đồ chân của LCD

2> Chức năng các chân :

Chân Ký Mô tả

BỘ MÔN KỸ THUẬT MÁY TÍNH - 30 -

Page 31: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

hiệu

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối

chân này với GND của mạch điều khiển

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta

nối chân này với VCC=5V của mạch điều khiển

3 VEE Điều chỉnh độ tương phản của LCD.

4 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.

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi

lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với

bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi

dữ liệu DR bên trong LCD.

5 R/W 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.

6 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.

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD

chuyển vào(chấp nhận) thanh ghi bên trong nó khi

phát hiện một xung (high-to-low transition) của tín

hiệu chân E.

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra

DB0-DB7 khi phát hiện cạnh lên (low-to-high

transition) ở chân E và được LCD giữ ở bus đến khi

BỘ MÔN KỸ THUẬT MÁY TÍNH - 31 -

Page 32: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

nào chân E xuống mức thấp.

7 - 14 DB0

- DB7

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

15 - Nguồn dương cho đèn nền

16 - GND cho đèn nền

Chức năng các chân của LCD

* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông

qua các chân DBx.

Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD thông

qua các chân DBx.

3> Sơ đồ khối của HD44780:

Để hiểu rõ hơn chức năng các chân và hoạt động của chúng, ta tìm hiểu sơ qua

chíp HD44780 thông qua các khối cơ bản của nó.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 32 -

Page 33: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.17 : Sơ đồ khối của HD44780

a> Các thanh ghi :

Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR

(Instructor Register) và thanh ghi dữ liệu DR (Data Register)

BỘ MÔN KỸ THUẬT MÁY TÍNH - 33 -

Page 34: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

- Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua

tám đường bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng.

Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR.

Nghĩa là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng

mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó.

VD : Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0)

Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110

- Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM

DDRAM hoặc CGRAM

(ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM này gởi ra cho MPU (ở

chế độ đọc). Nghĩa là, khi MPU ghi thông tin vào DR, mạch nội bên trong chíp

sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM. Hoặc khi thông tin về

địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng RAM nội của HD44780

sẽ được chuyển ra DR để truyền cho MPU.

=> Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2

thanh ghi này khi giao tiếp với MPU. Bảng sau đây tóm tắt lại các thiết lập đối

với hai chân RS và R/W theo mục đích giao tiếp.

RS R/W Chức năng

0 0 Ghi vào thanh ghi IR để ra lệnh cho LCD

BỘ MÔN KỸ THUẬT MÁY TÍNH - 34 -

Page 35: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

0 1 Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở

DB0-DB6

1 0 Ghi vào thanh ghi DR

1 1 Đọc dữ liệu từ DR

Chức năng chân RS và R/W theo mục đích sử dụng

b> Cờ báo bận BF: (Busy Flag)

Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần một

khoảng thời gian để hoàn tất. Khi

đang thực thi các hoạt động bên trong chip như thế, LCD bỏ qua mọi giao

tiếp với bên ngoài và bật cờ BF (thông qua chân DB7 khi có thiết lập RS=0,

R/W=1) lên để báo cho MPU biết nó đang “bận”. Dĩ nhiên, khi xong việc, nó sẽ

đặt cờ BF lại mức 0.

c> Bộ đếm địa chỉ AC : (Address Counter)

Như trong sơ đồ khối, thanh ghi IR không trực tiếp kết nối với vùng RAM

(DDRAM và CGRAM) mà thông qua bộ đếm địa chỉ AC. Bộ đếm này lại nối

với 2 vùng RAM theo kiểu rẽ nhánh. Khi một địa chỉ lệnh được nạp vào thanh

ghi IR, thông tin được nối trực tiếp cho 2 vùng RAM nhưng việc chọn lựa

vùng RAM tương tác đã được bao hàm trong mã lệnh.

Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn

vị và nội dung của AC được xuất ra cho MPU thông qua DB0-DB6 khi có thiết

lập RS=0 và R/W=1 (xem bảng tóm tắt RS - R/W).

Lưu ý: Thời gian cập nhật AC không được tính vào thời gian thực thi lệnh

mà được cập nhật sau khi cờ BF lên mức cao (not busy), cho nên khi lập trình

BỘ MÔN KỸ THUẬT MÁY TÍNH - 35 -

Page 36: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

hiển thị, bạn phải delay một khoảng tADD khoảng 4uS-5uS (ngay sau khi BF=1)

trước khi nạp dữ liệu mới. Xem thêm hình bên dưới.

Hình 2.18 : Giản đồ xung cập nhật AC

d> Vùng RAM hiển thị DDRAM : (Display Data RAM)

Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM là

một ô kí tự trên màn hình và khi bạn ghi vào vùng RAM này một mã 8 bit, LCD

sẽ hiển thị tại vị trí tương ứng trên màn hình một kí tự có mã 8 bit mà bạn đã

cung cấp. Hình sau đây sẽ trình bày rõ hơn mối liên hệ này :

BỘ MÔN KỸ THUẬT MÁY TÍNH - 36 -

Page 37: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.19 : Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD

Vùng RAM này có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit.

Những vùng RAM còn lại không dùng cho hiển thị có thể dùng như vùng RAM

đa mục đích.

Lưu ý là để truy cập vào DDRAM, ta phải cung cấp địa chỉ cho AC theo mã

HEX

e> Vùng ROM chứa kí tự CGROM: Character Generator ROM

Vùng ROM này dùng để chứa các mẫu kí tự loại 5x8 hoặc 5x10 điểm ảnh/kí

tự, và định địa chỉ bằng 8 bit. Tuy nhiên, nó chỉ có 208 mẫu kí tự 5x8 và 32 mẫu

kí tự kiểu 5x10 (tổng cộng là 240 thay vì 2^8 = 256 mẫu kí tự). Người dùng

không thể thay đổi vùng ROM này.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 37 -

Page 38: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.20 : Mối liên hệ giữa địa chỉ của ROM và dữ liệu tạo mẫu kí tự.

Như vậy, để có thể ghi vào vị trí thứ x trên màn hình một kí tự y nào đó,

người dùng phải ghi vào vùng DDRAM tại địa chỉ x (xem bảng mối liên hệ giữa

DDRAM và vị trí hiển thị) một chuỗi mã kí tự 8 bit trên CGROM. Chú ý là trong

bảng mã kí tự trong CGROM ở hình bên dưới có mã ROM A00.

Ví dụ : Ghi vào DDRAM tại địa chỉ “01” một chuỗi 8 bit “01100010” thì

trên LCD tại ô thứ 2 từ trái sang (dòng trên) sẽ hiển thị kí tự “b”.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 38 -

Page 39: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Bảng mã kí tự (ROM code A00)

f> Vùng RAM chứa kí tự đồ họa CGRAM : (Character Generator

RAM)

BỘ MÔN KỸ THUẬT MÁY TÍNH - 39 -

Page 40: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Như trên bảng mã kí tự, nhà sản xuất dành vùng có địa chỉ byte cao là 0000

để người dùng có thể tạo các mẫu kí tự đồ họa riêng. Tuy nhiên dung lượng vùng

này rất hạn chế: Ta chỉ có thể tạo 8 kí tự loại 5x8 điểm ảnh, hoặc 4 kí tự loại

5x10 điểm ảnh.

Để ghi vào CGRAM, hãy xem hình 6 bên dưới.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 40 -

Page 41: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.21 : Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM, và mã kí

tự.

4> Tập lệnh của LCD :

BỘ MÔN KỸ THUẬT MÁY TÍNH - 41 -

Page 42: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Trước khi tìm hiểu tập lệnh của LCD, sau đây là một vài chú ý khi giao tiếp

với LCD :

* Tuy trong sơ đồ khối của LCD có nhiều khối khác nhau, nhưng khi lập

trình điều khiển LCD ta chỉ có thể tác động trực tiếp được vào 2 thanh ghi DR và

IR thông qua các chân DBx, và ta phải thiết lập chân RS, R/W phù hợp để

chuyển qua lại giữ 2 thanh ghi này. (xem bảng 2)

* Với mỗi lệnh, LCD cần một khoảng thời gian để hoàn tất, thời gian này có

thể khá lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc đợi (delay)

cho LCD thực thi xong lệnh hiện hành mới có thể ra lệnh tiếp theo.

* Địa chỉ của RAM (AC) sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có lệnh

ghi vào RAM. (Điều này giúp chương trình gọn hơn)

* Các lệnh của LCD có thể chia thành 4 nhóm như sau :

• Các lệnh về kiểu hiển thị. VD : Kiểu hiển thị (1 hàng / 2 hàng), chiều dài

dữ liệu (8 bit / 4 bit), …

• Chỉ định địa chỉ RAM nội.

• Nhóm lệnh truyền dữ liệu trong RAM nội.

• Các lệnh còn lại .

Bảng 4 : Tập lệnh của LCD

Tên

lệnh

Hoạt động

Clear

Display

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = 0 0 0 0 0 0 0

1

BỘ MÔN KỸ THUẬT MÁY TÍNH - 42 -

Page 43: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Lệnh Clear Display (xóa hiển thị) sẽ ghi một khoảng trống-

blank (mã hiện kí tự 20H) vào tất cả ô nhớ trong DDRAM, sau đó

trả bộ đếm địa AC=0, trả lại kiểu hiển thị gốc nếu nó bị thay đổi.

Nghĩa là : Tắt hiển thị, con trỏ dời về góc trái (hàng đầu tiên), chế

độ tăng AC.

Return

home

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = 0 0 0 0 0 0 1

*

Lệnh Return home trả bộ đếm địa chỉ AC về 0, trả lại kiểu

hiển thị gốc nếu nó bị thay đổi. Nội dung của DDRAM không thay

đổi.

Entry

mode

set

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = 0 0 0 0 0 1 [I/D]

[S]

I/D : Tăng (I/D=1) hoặc giảm (I/D=0) bộ đếm địa chỉ hiển thị

AC 1 đơn vị mỗi khi có hành động ghi hoặc đọc vùng DDRAM.

Vị trí con trỏ cũng di chuyển theo sự tăng giảm này.

S : Khi S=1 toàn bộ nội dung hiển thị bị dịch sang phải

(I/D=0) hoặc sang trái (I/D=1) mỗi khi có hành động ghi vùng

DDRAM. Khi S=0: không dịch nội dung hiển thị. Nội dung hiển

thị không dịch khi đọc DDRAM hoặc đọc/ghi vùng CGRAM.

Display

on/off

control

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = 0 0 0 0 1 [D] [C]

BỘ MÔN KỸ THUẬT MÁY TÍNH - 43 -

Page 44: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

[B]

D: Hiển thị màn hình khi D=1 và ngược lại. Khi tắt hiển thị,

nội dung DDRAM không thay đổi.

C: Hiển thị con trỏ khi C=1 và ngược lại.

B: Nhấp nháy kí tự tại vị trí con trỏ khi B=1 và ngược lại.

Chu kì nhấp nháy khoảng 409,6ms khi mạch dao động nội

LCD là 250kHz.

Cursor

or

display

shift

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = 0 0 0 1 [S/C] [R/L] *

*

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị

sang trái mà không cần hành động ghi/đọc dữ liệu. Khi hiển thị kiểu 2 dòng,

con trỏ sẽ nhảy xuống dòng dưới khi dịch qua vị trí thứ 40 của hàng đầu tiên.

Dữ liệu hàng đầu và hàng 2 dịch cùng một lúc. Chi tiết sử dụng xem bảng bên

dưới:

S/C R/L Hoạt động

0 0 Dịch vị trí con trỏ sang trái (Nghĩa là giảm

AC một đơn vị).

0 1 Dịch vị trí con trỏ sang phải (Tăng AC lên 1

đơn vị).

1 0 Dịch toàn bộ nội dung hiển thị sang trái,

con trỏ cũng dịch theo.

1 1 Dịch toàn bộ nội dung hiển thị sang phải,

con trỏ cũng dịch theo.

Functio

n

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

BỘ MÔN KỸ THUẬT MÁY TÍNH - 44 -

Page 45: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

set DBx = 0 0 1 [DL] [N] [F] *

*

DL: Khi DL=1, LCD giao tiếp với MPU bằng giao thức 8 bit

(từ bit DB7 đến DB0). Ngược lại, giao thức giao tiếp là 4 bit (từ

bit DB7 đến bit DB0). Khi chọn giao thức 4 bit, dữ liệu được

truyền/nhận 2 lần liên tiếp. với 4 bit cao gởi/nhận trước, 4 bit thấp

gởi/nhận sau.

N : Thiết lập số hàng hiển thị. Khi N=0 : hiển thị 1 hàng, N=1:

hiển thị 2 hàng.

F : Thiết lập kiểu kí tự. Khi F=0: kiểu kí tự 5x8 điểm ảnh,

F=1: kiểu kí tự 5x10 điểm ảnh.

Set

CGRA

M

address

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = 0 1 [ACG][ACG][ACG][ACG]

[ACG][ACG]

Lệnh này ghi vào AC địa chỉ của CGRAM. Kí hiệu [ACG] chỉ

1 bit của chuỗi dữ liệu 6 bit. Ngay sau lệnh này là lệnh đọc/ghi dữ

liệu từ CGRAM tại địa chỉ đã được chỉ định.

Set

DDRA

M

address

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = 1 [AD] [AD] [AD] [AD] [AD] [AD]

[AD]

Lệnh này ghi vào AC địa chỉ của DDRAM, dùng khi cần thiết

lập tọa độ hiển thị

mong muốn. Ngay sau lệnh này là lệnh đọc/ghi dữ liệu từ

DDRAM tại địa chỉ đã được chỉ định.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 45 -

Page 46: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Khi ở chế độ hiển thị 1 hàng: địa chỉ có thể từ 00H đến 4FH.

Khi ở chế độ hiển thị 2 hàng, địa chỉ từ 00h đến 27H cho hàng thứ

nhất, và từ 40h đến 67h cho hàng thứ 2.

Read

BF

and

address

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC]

[AC] (RS=0,R/W=1)

Như đã đề cập trước đây, khi cờ BF bật, LCD đang làm việc

và lệnh tiếp theo (nếu có) sẽ bị bỏ qua nếu cờ BF chưa về mức

thấp. Cho nên, khi lập trình điều khiển, phải kiểm tra cờ BF trước

khi ghi dữ liệu vào LCD.

Khi đọc cờ BF, giá trị của AC cũng được xuất ra các bit [AC].

Nó là địa chỉ của

CG hay DDRAM là tùy thuộc vào lệnh trước đó.

Write

data to

CG or

DDRA

M

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

DB0

DBx = [Write

data] (RS=1, R/W=0)

Khi thiết lập RS=1, R/W=0, dữ liệu cần ghi được đưa vào các

chân DBx từ mạch

ngoài sẽ được LCD chuyển vào trong LCD tại địa chỉ được

xác định từ lệnh ghi địa chỉ trước đó (lệnh ghi địa chỉ cũng xác

định luôn vùng RAM cần ghi)

Sau khi ghi, bộ đếm địa chỉ AC tự động tăng/giảm 1 tùy theo

thiết lập Entry mode.

Read Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

BỘ MÔN KỸ THUẬT MÁY TÍNH - 46 -

Page 47: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

data

from

CG or

DDRA

M

DB0

DBx = [Read

data] (RS=1, R/W=1)

Khi thiết lập RS=1, R/W=1,dữ liệu từ CG/DDRAM được

chuyển ra MPU thông qua các chân DBx (địa chỉ và vùng RAM

đã được xác định bằng lệnh ghi địa chỉ trước đó).

Sau khi đọc, AC tự động tăng/giảm 1 tùy theo thiết lập Entry

mode, tuy nhiên nội dung hiển thị không bị dịch bất chấp chế độ

Entry mode.

5> Khởi tạo LCD:

Khởi tạo là việc thiết lập các thông số làm việc ban đầu. Đối với LCD, khởi

tạo giúp ta thiết lập các giao thức làm việc giữa LCD và MPU. Việc khởi tạo chỉ

được thực hiện 1 lần duy nhất ở đầu chương trình điều khiển LCD và bao gồm

các thiết lập sau :

• Display clear : Xóa/không xóa toàn bộ nội dung hiển thị trước đó.

• Function set : Kiểu giao tiếp 8bit/4bit, số hàng hiển thị 1hàng/2hàng, kiểu

kí tự 5x8/5x10.

• Display on/off control: Hiển thị/tắt màn hình, hiển thị/tắt con trỏ, nhấp

nháy/không nhấp nháy.

• Entry mode set : các thiết lập kiểu nhập kí tự như: Dịch/không dịch, tự

tăng/giảm (Increment).

a> Mạch khởi tạo bên trong chíp HD44780:

Mỗi khi được cấp nguồn, mạch khởi tạo bên trong LCD sẽ tự động khởi tạo

cho nó. Và trong thời gian khởi tạo này cờ BF bật lên 1, đến khi việc khởi tạo

hoàn tất cờ BF còn giữ trong khoảng 10ms sau khi Vcc đạt đến 4.5V (vì 2.7V thì

BỘ MÔN KỸ THUẬT MÁY TÍNH - 47 -

Page 48: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

LCD đã hoạt động). Mạch khởi tạo nội sẽ thiết lập các thông số làm việc

của LCD như sau:

• Display clear : Xóa toàn bộ nội dung hiển thị trước đó.

• Function set: DL=1 : 8bit; N=0 : 1 hàng; F=0 : 5x8

• Display on/off control: D=0 : Display off; C=0 : Cursor off; B=0 : Blinking

off.

• Entry mode set: I/D =1 : Tăng; S=0 : Không dịch.

Như vậy sau khi mở nguồn, bạn sẽ thấy màn hình LCD giống như chưa mở

nguồn do toàn bộ hiển thị tắt. Do đó, ta phải khởi tạo LCD bằng lệnh.

b> Khởi tạo bằng lệnh: (chuỗi lệnh)

Việc khởi tạo bằng lệnh phải tuân theo lưu đồ sau của nhà sản xuất :

BỘ MÔN KỸ THUẬT MÁY TÍNH - 48 -

Page 49: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

BỘ MÔN KỸ THUẬT MÁY TÍNH - 49 -

Page 50: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.22 lệnh khởi tạo LCD

Như đã đề cập ở trên, chế độ giao tiếp mặc định của LCD là 8bit (tự khởi tạo

lúc mới bật điện lên). Và khi kết nối mạch theo giao thức 4bit, 4 bit thấp từ DB0-

DB3 không được kết nối đến LCD, nên lệnh khởi tạo ban đầu (lệnh chọn giao

thức giao tiếp – function set 0010****) phải giao tiếp theo chế độ 8 bit (chỉ gởi 4

BỘ MÔN KỸ THUẬT MÁY TÍNH - 50 -

Page 51: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

bit cao một lần, bỏ qua 4 bit thấp). Từ lệnh sau trở đi, phải gởi/nhận lệnh theo 2

nibble.

Lưu ý là sau khi thiết lập function set, bạn không thể thay đổi function set

ngoại trừ thay đổi giao thức giao tiếp (4bit/8bit).

2.5.4 Trasitor

-Định nghĩa

Transistor được hình thành từ ba lớp bán dẫn ghép với nhau hình thành hai

mối tiếp giáp P-N ,nếu ghép theo thứ tự PNP ta được Transistor thuận , nếu ghép

theo thứ tự NPN ta được Transistor ngược. về phương diện cấu tạo Transistor

tương đương với hai Diode đấu ngược chiều nhau. Cấu trúc này được gọi là

Bipolar Junction Transitor (BJT) vì dòng điện chạy trong cấu trúc này bao gồm

cả hai loại điện tích âm và dương (Bipolar nghĩa là hai cực tính). Ba lớp bán dẫn

được nối ra thành ba cực, lớp giữa gọi là cực gốc ký hiệu là B (Base), lớp bán

dẫn B rất mỏng và có nồng độ tạp chất thấp. Hai lớp bán dẫn bên ngoài được nối

ra thành cực phát (Emitter) viết tắt là E, và cực thu hay cực góp (Collector) viết

tắt là C, vùng bán dẫn E và C có cùng loại bán dẫn (loại N hay P ) nhưng có kích

thước và nồng độ tạp chất khác nhau nên không hoán vị cho nhau được.

Hình 2.23 Hình ảnh transistor

-Nguyên tắc hoạt động của Transitor:

BỘ MÔN KỸ THUẬT MÁY TÍNH - 51 -

Page 52: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Trong chế độ tuyến tính hay còn gọi là chế độ khuyếch đại, Transitor là phần

tử khuyếch đại dòng điện với dòng Ic bằng β lần dòng bazo (dòng điều khiển )

Trong đó β là hệ số khuyếch đại dòng điện : IC = β.IB

2.5.5 Tụ điện

Tụ điện là linh kiện điện tử thụ động được sử dụng rất rộng rãi trong các

mạch điện tử, chúng được sử dụng trong các mạch lọc nguồn, lọc nhiễu, mạch

truyền tín hiệu xoay chiều, mạch tạo dao động.

Hình 2.24 Một số loại tụ điện

2.5.6 IC ổn áp LM7805

7805 là một mạch tích hợp bộ điều chỉnh điện áp. Đây là một dòng IC của họ 78xx

điều chỉnh điện áp tuyến tính cố định. Nguồn điện áp trong mạch có thể có biến động và sẽ

không cho lượng điện áp cố định. Các vi mạch điều chỉnh điện áp duy trì điện áp đầu ra tại

một giá trị không đổi. Các xx trong 78xx cho biết lượng điện áp cố định nó được thiết kế

để cung cấp: 7805 cung cấp nguồn +5 V...

BỘ MÔN KỸ THUẬT MÁY TÍNH - 52 -

Page 53: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.25 IC ổn áp 7805

2.6 Sơ đồ nguyên lý tổng thể

BỘ MÔN KỸ THUẬT MÁY TÍNH - 53 -

Page 54: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

R S

R S

+5 V

S C K

S C K

D A TA

R 41 0 k

C k 2

- +

D 3

D B 1 0 5

1

2

3

4

C K 1

R 2R

L D R

C 41 0 0 n F

D 7

D7

+5 V

C K 1

LD R

7 8 9 10 11 12 13 141 2 3 4 5 6

d0 d1 d2 d3 d4 d5 d6 d7vss

vdd

vee

rs rw e

G N D

R S T

D 4

G N D

C 2

3 3 p

G N D

+5 V

R 51 0 K

+ C 32 2 0 u F

U 1 5L M 7 8 0 5

1

2

3V I

GN

D

V O

C K 2

T1

2 2 0 V A C 5 0 H z in p u t

1 3

2 5

+5 V

U 1 4

s h t 7 1

sck

vdd

gnd

data

1 2 3 4

G N D

G N D

D6

A D C

D A TA

A D C

E

+5 V

D5

G N D

D 6

R 31 0 k

R S T

E

G N D

P V N 2

P I C 1 6 F 8 7 7 A

234567

3 33 43 53 63 73 83 94 0

1 51 61 71 82 32 42 52 6

1 92 02 12 22 72 82 93 0

1 3

1 4

3 21 1

3 11 2

1

891 0

R A 0 / A N 0R A 1 / A N 1R A 2 / A N 2 / V R E F -/ C V R E FR A 3 / A N 3 / V R E F +R A 4 / T0 C K I / C 1 O U TR A 5 / A N 4 / S S * / C 2 O U T

R B 0 / I N TR B 1R B 2

R B 3 / P G MR B 4R B 5

R B 6 / P G CR B 7 / P G D

R C 0 / T1 O S O / T1 C K IR C 1 / T1 O S I / C C P 2R C 2 / C C P 1R C 3 / S C K / S C LR C 4 / S D I / S D AR C 5 / S D OR C 6 / TX/ C KR C 7 / R X/ D T

R D 0 / P S P 0R D 1 / P S P 1R D 2 / P S P 2R D 3 / P S P 3R D 4 / P S P 4R D 5 / P S P 5R D 6 / P S P 6R D 7 / P S P 7

O S C 1 / C L K I N

O S C 2 / C L K O U T

V D DV D D

V S SV S S

M C L R * / V P P

R E 0 / R D * / A N 5R E 1 / W R * / A N 6R E 2 / C S * / A N 7

D4

C 1

3 3 pY 1

4 M H z

D 5

+5 V

Hình 2.26 sơ đồ nguyên lý tổng thể

2.7 Thuật toán điều khiển

- Chương trình có nhiệm vụ đọc thông số từ các cảm biến.

- Hiển thị ra màn hình LCD

BỘ MÔN KỸ THUẬT MÁY TÍNH - 54 -

Page 55: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

- Điều khiển các thiết bị truyền động

Giải thuật : chương trình điều khiển sử dụng ngắt INTERRUPT của vi

điều khiển. Chương trình chính chỉ thực hiện ngắt mạnh.

Dùng các hàm để thiết lập cho cảm biến kỹ thuật số SHT71 làm việc.

Nhận tín hiệu từ cảm biến sau đó tính toán và hiển thị,

Đọc dữ liệu từ cảm biến quang LDR tính toán chuyển đổi hiển thị lên

LCD

BỘ MÔN KỸ THUẬT MÁY TÍNH - 55 -

Page 56: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 2.27 sơ đồ giải thuật

BỘ MÔN KỸ THUẬT MÁY TÍNH - 56 -

Bắt đầu

Khởi tạo LCD,SHT, ADC

Chương trình chính

Thiết lập cho sensor SHT 71

Tính toán độ ẩm, nhiệt độ.

Hiển thị

Lấy dữ liệu từ sensor

Gửi dữ liệu ra senser

Đọc giá trị từ sensor SHT

Đọc dữ liệu từ LDR

Quay lại vòng lặp

Tính toán cường độ ánh sáng

Quay lại vòng lặp

Hiển thị nhiệt độ, độ ẩm tuyệt đối

Hiển thị cường độ ánh sáng

Page 57: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Chương trình nạp vào Vi điều khiển Pic 16F877A

Để viết chương trình điều khiển ta sử dụng ngôn ngữ C viết trên phần mềm

CCS4.114 và chạy mô phỏng trong Proteus7.7. Chương trình bao gồm chương

trình chính, chương trình con tính toán nhiệt độ, độ ẩm tuyệt đối, với cảm biến

SHt71. chương trình con làm việc với ADC, đọc dữ liệu và tính toán từ cảm biến

quang. Chương trình con hiển thị. Ngoài ra còn sử dụng các hàm comstart khởi

tạo cho SHT71, hàm comwrite sử dụng để ghi dữ liệu ra SHT71. hàm comread

đọc dữ liệu từ cảm biến SHT71 về vi sử lý. Hàm comwait chờ để đọc dữ liệu từ

SHT71,

Chương 3: xây dựng hệ thống

3.1 Thiết kế phần cứng

Với đồ án hệ thống nhúng thiết kế Hệ thống kiểm soát môi trường nhà vườn”

việc thiết kết phần cứng được chia ra làm 5 khối cơ bản:

-Khối nguồn

-xử lý trung tâm

-khối hiển thị

-khối cảm biến

3.2 Thiết kế phần mềm

* Mã lập trình

//

*****************************************************************

*********

BỘ MÔN KỸ THUẬT MÁY TÍNH - 57 -

Page 58: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

//************ chuong trinh tu dong hoa nha

kinh***************************

//************ su dung pic 16f877 cam bien SHT71 va

LDR*********************

#include <16F877.h>

#device ADC=10 // su dung 10bit adc

#fuses

XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NOD

EBUG,NOCPD // chi dan duoc dat vao MCU

#use delay (clock=4000000) // thiet lap tao tre

#include <benim_lcd.c> // kha bao fine thu vien LCD_lcd.c

#include <stdio.h>

#define sht_data_pin PIN_c1 //xac dinh chan du lieu cho sht71

#define sht_clk_pin PIN_c0 // chan xung dong ho cho sht71

#INT_AD // ham su ly ngat chuyen doi A/D

unsigned long int bilgi;

float voltaj;

float basinc;

float doam;

//*****khoi tao cho SHT71 *****

void comstart (void)

output_float(sht_data_pin); //xuat tin hieu o muc cao,

BỘ MÔN KỸ THUẬT MÁY TÍNH - 58 -

Page 59: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

output_bit(sht_clk_pin, 0); //xuat gia tri thap pin clk

delay_us(1); // tre

output_bit(sht_clk_pin, 1); // xuat gia tri cao chan clk

delay_us(1); // tre

output_bit(sht_data_pin, 0); // xuat gia tri thap pin data

delay_us(1); // tre 1us

output_bit(sht_clk_pin, 0); //xuat gia tri thap pin clk

delay_us(2);

output_bit(sht_clk_pin, 1); //xuat tin hiu mua cao chan clk

delay_us(1);

output_float(sht_data_pin); // tin hieu o muc cao

delay_us(1);

output_bit(sht_clk_pin, 0); //xuat gia tri thap pin clk

//*****sht71 thuc hien chuc nang ghi*****

int1 comwrite (int8 iobyte) // ham ghi du lieu ra sht và se tra ve sau no

int8 i, mask = 0x80; // khai bao

int1 ack;

delay_us(4);

for(i=0; i<8; i++)

output_bit(sht_clk_pin, 0); //

if((iobyte & mask) > 0) output_float(sht_data_pin);

BỘ MÔN KỸ THUẬT MÁY TÍNH - 59 -

Page 60: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

else output_bit(sht_data_pin, 0);

delay_us(1);

output_bit(sht_clk_pin, 1);

delay_us(1);

mask = mask >> 1;

output_bit(sht_clk_pin, 0);

delay_us(1);

ack = input(sht_data_pin);

output_bit(sht_clk_pin, 1);

delay_us(1);

output_bit(sht_clk_pin, 0);

return(ack);

//***** doc du lieu sht71 *****

int16 comread (void) // ham doc du lieu tu SHT

int8 i;

int16 iobyte = 0;

const int16 mask0 = 0x0000;

const int16 mask1 = 0x0001;

for(i=0; i<8; i++)

BỘ MÔN KỸ THUẬT MÁY TÍNH - 60 -

Page 61: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

iobyte = iobyte << 1;

output_bit(sht_clk_pin, 1);

delay_us(1);

if (input(sht_data_pin)) iobyte |= mask1;

else iobyte |= mask0;

output_bit(sht_clk_pin, 0);

delay_us(1);

output_bit(sht_data_pin, 0);

delay_us(1);

output_bit(sht_clk_pin, 1);

delay_us(2);

output_bit(sht_clk_pin, 0);

delay_us(1);

output_float(sht_data_pin);

for(i=0; i<8; i++)

iobyte = iobyte << 1;

output_bit(sht_clk_pin, 1);

delay_us(1);

if (input(sht_data_pin)) iobyte |= mask1;

else iobyte |= mask0;

output_bit(sht_clk_pin, 0);

BỘ MÔN KỸ THUẬT MÁY TÍNH - 61 -

Page 62: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

delay_us(1);

output_float(sht_data_pin);

delay_us(1);

output_bit(sht_clk_pin, 1);

delay_us(2);

output_bit(sht_clk_pin, 0);

return(iobyte);

//*****chuc nang cho de doc du lieu tu sht71 *****

void comwait (void)

int16 sht_delay;

output_float(sht_data_pin);

output_bit(sht_clk_pin, 0);

delay_us(1);

for(sht_delay=0; sht_delay<30000; sht_delay++)

if (!input(sht_data_pin)) break; // neu sht_data_pin o muc thap thi sht da

san sang

delay_us(10);

BỘ MÔN KỸ THUẬT MÁY TÍNH - 62 -

Page 63: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

//***** dat lai chuc nang truyen thong *****

void comreset (void)

int8 i;

output_float(sht_data_pin);//du lieu muc cao

output_bit(sht_clk_pin, 0); // du lieu muc thap

delay_us(2);

for(i=0; i<9; i++)

output_bit(sht_clk_pin, 1); // chuyen doi clk 9 lan

delay_us(2);

output_bit(sht_clk_pin, 0); //gui gia tri thap ra clk

delay_us(2); // tre 2us

comstart(); // thuc hien ham comstart

//***** reset lai sht71 *****

void sht_soft_reset (void)

comreset(); // goi ham comreset

BỘ MÔN KỸ THUẬT MÁY TÍNH - 63 -

Page 64: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

comwrite(0x1e); // gui sht lenh thiet lap lai

delay_ms(15); // tre 15 mini giay

//***** sht71 chuc nang do nhiet do *****

int16 measuretemp (void)

int1 ack; // kieu so nguyen 1 bit true or false

int16 iobyte; // iobyte kieu du lieu so nguyen 16 bit

comstart(); // loi goi ham comstart

ack = comwrite(0x03);// gui lenh tam thoi va doc du lieu tu ack

if(ack == 1) return; //ack==1 tro lai

comwait(); // doi sht do luong

iobyte = comread(); // doc du lieu tam thoi tu sht

return(iobyte); // tro lai

//***** chuc nang do do am *****

int16 measurehumid (void)

int1 ack; //so 1 bit true or false

int16 iobyte; //so nguyen 16 bit

comstart();

BỘ MÔN KỸ THUẬT MÁY TÍNH - 64 -

Page 65: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

ack = comwrite(0x05); // gui lenh va doc tinh trang RH,

if(ack == 1) return; // neu ack muc cao thi quay lai

comwait(); // cho doi

iobyte = comread(); // doc du lieu tam thoi

return(iobyte); //tro lai

//***** SHT71 chuc nang tinh toan tuong doi *****

void calculate_data (int16 temp, int16 humid, float & tc, float & rhlin, float

& rhtrue)

float rh; // so thuc 32 bit

tc = ((float) temp * 0.01) - 40.0; //tinh toan doc nhiet do

rh = (float) humid; //tinh toan do am thuc

rhlin = (rh * 0.0405) - (rh * rh * 0.0000028) - 4.0;

rhtrue = ((tc - 25.0) * (0.01 + (0.00008 * rh))) + rhlin; //do am phu thuoc

nhiet do

//***** SHT11 tinh toan *****

BỘ MÔN KỸ THUẬT MÁY TÍNH - 65 -

Page 66: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

//***** chuong trinh con tinh toan nhiet do, do am

void sht_rd (float & temp, float & truehumid)

int16 restemp, reshumid; // su dung bien so nguyen 16 bit

float realhumid; //bien so thuc 32 bit

restemp = 0; // restemp=0

truehumid = 0; // truehumid=0

restemp = measuretemp();

reshumid = measurehumid();

calculate_data (restemp, reshumid, temp, realhumid, truehumid); //tinh toan

//tam thoi

//***** SHT11 thiet lap lai *****

void sht_init (void)

comreset(); //reset SHT75

delay_ms(20); // tao tre

//***** ldr doc du lieu *****

void ldr_read()

set_adc_channel(0); // xac dinh chan ADC

BỘ MÔN KỸ THUẬT MÁY TÍNH - 66 -

Page 67: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

adc_start_and_read; // bat dau doc du lieu tu ADC

delay_us(20); // tre 20 us

bilgi=read_adc(); // doc gia tri va gan cho bien bilgi

voltaj=bilgi; // tinh toan chuyen doi dien ap.

basinc=500/((5*10)/(voltaj-5)); // tinh toan chuyen doi nhiet do

//********** chuong trinh chinh*******

void main()

float restemp, truehumid; //kieu du lieu 32 bit so thuc

int i=0,k=0; // mac dinh kieu du lieu nhu int8,

setup_CCP1(CCP_OFF); // tat ccp1,

setup_CCP2(CCP_OFF); // tat ccp2

set_tris_C(0xFF);

set_tris_E(0x0F);

set_tris_A(0x0F);

set_tris_D(0xFF);

setup_adc(adc_clock_div_32); // thoi gian lay mau ADC bang clock/32

setup_adc_ports(AN0); // su dung chan AN0 lam chan ADC

enable_interrupts(INT_AD); // cho phep ngat AD

enable_interrupts(GLOBAL); // ngat toan bo

BỘ MÔN KỸ THUẬT MÁY TÍNH - 67 -

Page 68: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

lcd_hienthi(); // thuc hien chuong trinh con lcd_hazirla

sht_init(); // chuong trinh sht_init

delay_ms(500); // cho khoi tao

lcd_hien_thi(0x01); // xoa man hinh

output_low(PIN_D7); // bat den len

printf(lcd_veri," lop k44 KDT"); // in len man hinh chu dtk0851030341

imlec(2,1);

printf(lcd_veri," DAMH HT NHUNG"); // dong hai

delay_ms(1500); // tre 1500 ms

lcd_hien_thi(0x01); // xoa man hinh

i=0;

while(1) // vong lap luon dung, vong lap vo han

sht_rd (restemp, truehumid); // goi ham sht_rd

ldr_read(); // goi ham ldr_read

if(i>8)

i=0;

imlec(2,15);

printf(lcd_veri,"->");

printf(lcd_veri,"xxxxxS%3.1fN%3.1fB%3.1fFxxxxx\

r",restemp,truehumid,basinc);

imlec(2,15);

printf(lcd_veri," ");

BỘ MÔN KỸ THUẬT MÁY TÍNH - 68 -

Page 69: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

imlec(1,1);

printf(lcd_veri,"T:%3.1f%cC R:%3.1f%%",restemp,223,truehumid);

imlec(2,1);

printf(lcd_veri,"I:%3.1f lux",basinc);

delay_ms(500);

i=i+1;

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

// benim_LCD.c //

// tap tin này ket noi lcd

//

// ket nói

// //

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

// RB0 D4

// RB1 D5

// RB2 D6

// RB3 D7

// RB4 RS

// RB5 E

// R/W

#define e pin_b4 // pin_b4 duoc ket noi E

BỘ MÔN KỸ THUẬT MÁY TÍNH - 69 -

Page 70: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

#define rs pin_b5 // pin_b5 duoc ket noi voi rs

//****** gui lenh ra man hinh LCD************//

void lcd_hien_thi(byte hien_thi)

output_b(hien_thi>>4); // lenh co gia tri cao 4bit

output_low(rs); // lenh thiet lap lcd

output_high(e); //

output_low(e);

delay_ms(2); // tre 2ms

output_b(hien_thi&0x0F); // gui gia tri thap 4bit

output_low(rs); // LCD thiet aap de nhan du lieu

output_high(e); //

output_low(e);

delay_ms(2); // tre 2 ms

//******* dinh vi con tro tren man hinh *******

void lcd_veri(byte veri)

output_b(veri>>4); // gui du lieu co gia tri cao 4 bit

output_high(rs); //

output_high(e); //

output_low(e);

delay_ms(1); //

BỘ MÔN KỸ THUẬT MÁY TÍNH - 70 -

Page 71: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

output_b(veri&0x0F); // gui gia tri thap 4 bit

output_high(rs); //

output_high(e); //

output_low(e);

delay_ms(1); //

//******* ********

void imlec(byte satir, byte sutun) // byte hang, byte cot

if (satir==1) // neu so hang bang 1

lcd_hien_thi(0x80|(sutun-1));

if (satir==2) // neu so hang bang 2

lcd_hien_thi(0x80|(0x40+(sutun-1)));

//********* cai dat ban dau*******//

void lcd_hienthi()

lcd_hien_thi(0x02);// man hinh lcd da san sang su dung

lcd_hien_thi(0x28);// 2 dong, 4 bit thong tin lien lac,5x8 dot matran duoc

su dung

lcd_hien_thi(0x08);// hien thi dong duoi cung va khong nhap nhay

lcd_hien_thi(0x0C);//

lcd_hien_thi(0x06);// moi du lieu duoc gi vao mot con tro

lcd_hien_thi(0x01);// xoa man hinh

BỘ MÔN KỸ THUẬT MÁY TÍNH - 71 -

Page 72: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

delay_ms(1); //

3.3 kết quả mô phỏng

Hình 3.1 bắt đầu chương trình

+ Khi mới khởi bắt đầu chương trình sẽ hiển thị lên chữ “lop k44KDT” ở dòng 1,

và chữ “DAMH HT NHUNG”

BỘ MÔN KỸ THUẬT MÁY TÍNH - 72 -

Page 73: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 3.2 in lên màn hình giá trị, nhiệt độ, độ ẩm, và cường độ ánh sáng.

+ Nhiệt độ và độ ẩm tương ứng là 28,8 oC và 70,8%

+ Chương trình in lên màn hình cường độ ánh sáng lớn nhất, tương ứng với giá

trị điện trở trên quang trở giảm xuống nhỏ nhất là 0,1 kΩ.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 73 -

Page 74: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

Hình 3.3 in lên màn hình giá trị, nhiệt độ, độ ẩm, và cường độ ánh sáng.

+ chương trình in lên màn hình nhiệt độ T:28.8 oC R:70,8 %

+ cường độ ánh sáng là I:3090.0 lux tương ứng với 50,1 KΩ.

3.4 Đánh giá và kết luân

3.4.1 Đánh giá

a. Ưu điểm :

1. cảm biến có độ nhạy cao và dễ dàng sử lý

BỘ MÔN KỸ THUẬT MÁY TÍNH - 74 -

Page 75: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

2. Hệ thống chi phí thấp, cung cấp tự động hóa tối đa

3. Thiết kế vòng khép kín ngăn ngừa bất kỳ cơ hội làm ảnh hưởng đến môi

trường nhà vườn

4. Bảo dưỡng thấp và tiêu thụ điện năng thấp.

5. Hệ thống nhỏ gọn hơn so với những cái hiện có, do đó có thể dễ dàng xách

tay.

6. Có thể được sử dụng cho các loài thực vật khác nhau bằng cách thay đổi

nhỏ trong các thông số môi trường xung quanh.

7. Có thể dễ dàng sửa đổi để cải thiện các thiết lập và thêm các tính năng

mới.

8. Cung cấp một giao diện thân thiện với người sử dụng do đó sẽ có một sự

chấp nhận của người lao động không có kỹ năng công nghệ.

9. Trục trặc của bộ cảm biến duy nhất sẽ không ảnh hưởng đến toàn bộ hệ

thống.

b. Nhược điểm:

1. không thể tự động phát hiện và tiêu diệt sâu bệnh trong nhà vườn.

2. Không có hệ thống tự động kiểm tra sự cố của cảm biến.

3. Yêu cầu cung cấp điện không bị gián đoạn.

4. Cơ sở giám sát nhà vườn từ xa là không đạt được.

c. Phạm vi cho phát triển thêm

1. Hiệu suất của hệ thống có thể được tiếp tục cải thiện về tốc độ hoạt động,

dung lượng bộ nhớ, Số lượng các kênh có thể được tăng lên đến giao diện số

lượng nhiều hơn các cảm biến mà có thể bằng cách sử dụng các phiên bản tiên

tiến của PIC.

BỘ MÔN KỸ THUẬT MÁY TÍNH - 75 -

Page 76: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

2. Một hệ thống báo động khi có sự thay đổi thông số trạng thái nhà vườn.

3. Hệ thống này có thể được kết nối với máy tính model để có thể theo dõi môi

trường nhà vường từ xa

4. thiết bị có thể được thực hiện để thực hiện tốt hơn bằng cách cung cấp các

nguồn cung cấp năng lượng với sự giúp đỡ của nguồn pin có thể sạc hoặc không

thể sạc lại, để giảm bớt các yêu cầu của nguồn AC chính.

5. Một hệ thống điều khiển có thể phát triển để điều khiển các thiết bị làm thay

đổi các thông số trạng thái nhà vườn theo ý muốn.

6. bằng những thay đổi nhỏ trong phần mềm, hệ thống có thể được ứng

dụng vào các trang trại chăn nuôi gà, và một số động vật khác.

3.4.2 Kết luận

Một cách tiếp cận bước từng bước trong việc thiết kế hệ thống dựa trên vi điều

khiển Pic đo lường (kiểm soát) các thông số cần thiết cho sự phát triển của thực

vật, tức là nhiệt độ, độ ẩm, và cường độ ánh sáng, đã được theo sau. Các kết quả

thu được từ phép đo đã chỉ ra rằng hiệu suất của hệ thống là khá đáng tin cậy và

chính xác.

Hệ thống này đã thành công vượt qua một vài thiếu sót của hệ thống hiện có bằng

cách giảm tiêu thụ điện năng, bảo trì và phức tạp, đồng thời cung cấp một hình

thức linh hoạt và chính xác của việc duy trì môi trường.

Các chi phí liên tục giảm của phần cứng và phần mềm, chấp nhận rộng lớn hơn

của hệ thống điện tử trong lĩnh vực nông nghiệp, và đang nổi lên hệ thống kiểm

soát ngành công nghiệp trong nông nghiệp một số khu vực sản xuất phát triền các

loài lan quý, sẽ dẫn đến hệ thống kiểm soát đáng tin cậy sẽ giải quyết một số khía

cạnh của chất lượng và số lượng sản xuất. Các cải thiện khác sẽ được thực hiện

BỘ MÔN KỸ THUẬT MÁY TÍNH - 76 -

Page 77: Do an Thiet Ke He Thong Giam Sat Moi Truong 23937

ĐỒ ÁN HỆ THỐNG NHÚNG GVHD NGUYỄN TIẾN DUY

như cảm biến đáng tin cậy hơn và ít tốn kém được phát triển để sử dụng trong sản

xuất nông nghiệp.

công nghệ này không phải là một nhiệm vụ khó khăn và có thể được thực hiện

thành công.

Tài liệu tham khảo

Bài giảng Hệ thống nhúng – Bộ môn Kỹ thuật Máy tính, ĐH Kỹ thuật Công

Nghiệp Thái Nguyên – 2010

Bài giảng Vi xử lý- Vi điều khiển – Bộ môn Kỹ thuật Máy tính – ĐH Kỹ

thuật Công Nghiệp Thái Nguyên – 2009

Họ vi điều khiển 8051– Tống Văn On, Hoàng Đức Hải -2009

Một số tài liệu khác trên mạng:

dientuvietnam.net

picvietnam.com

320volt.com

Alldatasheet.com

BỘ MÔN KỸ THUẬT MÁY TÍNH - 77 -