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

bài tập lớn hệ thống đo độ ẩm đất ,với 89s52 (hoặc arduino) và cảm biến đo độ ẩm đất (hoặc cảm biến nhiệt độ ds18b20) truyền dữ liệu lên máy tính (sử dụng laview hoặc visual studio)

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.01 MB, 59 trang )

I : Các khả năng chính của LabVIEW
LabVIEW được dùng nhiều trong các phịng thí nghiệm, lĩnh vực khoa h ọc
kỹ thuật như tự động hóa, điều khiển, điện tử, cơ điện tử, hàng khơng, hóa
sinh, điện tử y sinh,... Hiện tại ngoài phiên bản LabVIEW cho các h ệ đi ều
hành Windows, Linux, Hãng NI đã phát triển các mô-đun LabVIEW cho máy
hỗ trợ cá nhân (PDA). Các chức năng chính của LabVIEW có th ể tóm tắt
như sau:
Thu thập tín hiệu từ các thiết bị bên ngồi như cảm biến nhiệt độ, hình
ảnh từ webcam, vận tốc của động cơ,...
Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp thông
qua các cổng giao tiếp: RS232, RS485, USB, PCI, Ethernet
Mô phỏng và xử lý các tín hiệu thu nhận được để phục vụ các mục đích
nghiên cứu hay mục đích của hệ thống mà người lập trình mong mu ốn
Xây dựng các giao diện người dùng một cách nhanh chóng và th ẩm mỹ h ơn
nhiều so với các ngôn ngữ khác như Visual Basic, Matlab,..
Cho phép thực hiện các thuật toán điều khiển như PID, Logic m ờ (Fuzzy
Logic), một cách nhanh chóng thơng qua các chức năng tích h ợp sẵn trong
LabVIEW.
Cho phép kết hợp với nhiều ngơn ngữ lập trình truy ền thống nh ư C, C++,...
1 : Các phiên bản LabVIEW
Từ khi ra đời đã có nhiều thay đổi và cải tiến, ngày nay bản m ới nh ất tính
tới tháng 4 năm 2007 là bản LabVIEW 8.2 với nhiều tính năng mới và các
mơ-đun cũ và mới tương thích với phiên bản này nh ư: mô-đun


mơ phỏng q trình, mơ-đun xử lý hình ảnh, điều khiển chuyển động, cơ
điện tử, cơng nghệ hóa sinh...
2 : Xu hướng của LabVIEW
Nhờ tính năng hỗ trợ mạnh và nhanh chóng cho các ứng dụng trong kỹ
thuật, lĩnh vực giáo dục nên LabVIEW được dùng nhiều trong các phòng thí
nghiệm và trung tâm nghiên cứu cũng như các hệ thống công nghiệp.


Nhiều trường đại học đã đưa LabVIEW trở thành một mơn học chính th ức.
II : ARDUINO là gì ?
Bây giờ, nếu bạn muốn bật tắt một bóng đèn một cách tự động, đảo
hướng một mô tơ một cách dễ dàng, đọc tín hiệu của các cảm biến thì bạn
cần một mạch Arduino. Hãy nghĩ một cách đơn giản, bạn muốn điều
khiển, quản lý, ... thứ gì liên quan đến điện t ử thì Arduino sẽ giúp b ạn r ất
nhiều!
Arduino hiện nay đã được biết đến một cách rộng rãi tại Việt Nam, và trên
thế giới thì nó đã quá phổ biến! Sức mạnh của chúng ngày càng được
chứng tỏ theo thời gian với vô vàn các ứng dụng mở (open source) độc đáo
được chia sẻ rộng rãi.
Với Arduino

bạn có thể ứng dụng

vào những

mạch đơn giản như

mạch cảm

biến ánh sáng bật tắt

đèn, mạch

điều khiển động cơ,...

hoặc cao

hơn nữa bạn có thể


làm những

sản phẩm như: máy in

3D, Robot,

khinh khí cầu, máy bay
khơng người lái,...


Arduino là một nền tảng mà mọi thiết bị phần
cứng đều được làm sẵn và chuẩn hóa, người dùng chỉ việc chọn những thứ
mình cần, ráp lại là có thể chạy được. Bạn muốn làm xe điều khi ển t ừ xa ?
Arduino cung cấp cho bạn module điều khiển động cơ có sẵn, m ạch đi ều
khiển có sẵn, mạch thu phát sóng khơng dây có sẵn,… Bạn sẽ không c ần
phải động não thiết kế mạch điện cho chiếc xe bởi đơn giản là m ọi th ứ
đều có sẵn.
Giống như một con người với “thể xác” đã được xây dựng sẵn, m ột hệ
thống Arduino phải có “tâm hồn” để có thể “sống”. Và tơi gọi việc t ạo ra
“tâm hồn” ấy là “Lập trình”. Tuy nhiên bạn sẽ khơng ph ải lập trình t ừ A
đến Z. Mỗi thứ phần cứng gắn mác “Arduino” đều có những đoạn lệnh đã
được viết sẵn (gọi là thư viện) do cộng đồng người dùng Arduino cùng
phát triển. Bạn chỉ việc bưng vào và xào nấu lại theo ý muốn của mình
Chính vì tính tiện lợi và đơn giản cho người sử dụng mà Arduino đã tr ở
thành một hiện tượng trong làng điện tử thế giới. Những sản phẩm của
cộng đồng người dùng Arduino cũng như những thiết bị hỗ trợ Arduino
lớn đến mức không thể thống kê được. Nó phát triển đến mức mà ta có
thể gọi nó là một hệ sinh thái đa dạng như tiêu đề - giống nh ư Windows
hay Android.



1 : Arduino có thể kết nối với những gì ?
Một hệ thống Arduino có thể cung cấp cho bạn rất nhiều sự t ương tác v ới
môi trường xung quanh với:
 Hệ

thống cảm biến

đa

dạng về chủng

loại

(đo đạc nhiệt độ,

độ

ẩm, gia tốc, vận

tốc,

cường độ ánh

sáng,

màu sắc vật thể,

lư u


lượng nước, phát

hiện

chuyển động,

phát hiện kim loại, khí độc,…),…
 Các thiết bị hiển thị (màn hình LCD, đèn LED,…).
 Các module chức năng (shield) hỗ trợ kêt nối có dây v ới các thiết bị
khác hoặc các kết nối không dây thông dụng (3G, GPRS, Wifi,
Bluetooth, 315/433Mhz, 2.4Ghz,…), …
 Định vị GPS, nhắn tin SMS,…
 … và nhiều thứ thú vị khác đang chờ bạn khám phá.

III : Đo độ ẩm và nhiệt độ


 1. Khái niệm:
 Độ ẩm của đất là lượng nước trong mẫu đất bị mất đi khi m ẫu đất
bị đốt nóng đến nhiệt độ 105°C. Độ ẩm thường được biểu diễn theo
% của khối lượng đất khô.
 Chú ý:
a) Đối với đất có chứa thạch cao và đất hữu cơ thì chỉ nên sấy khơ ở
nhiệt độ 60°C (theo ASTM) hoặc ở nhiệt độ 80°C (theo TCVN).
b) Đối với đất có chứa muối, mẫu đất cần được xử lý đặc biệt tr ước
khi thí nghiệm xác định độ ẩm.
 Nước trong đất thường được chia thành 5 lớp với các tính chất khác
nhau:



 (Nguồn: Manual of Soil Laboratory Testing, Vol. 1, K.H. Head)
 Lớp 1
  lớp nước liên kết chặt với hạt đất, không thể
 Lớp 2



mất đi khi sấy khô mẫu đất ở nhiệt độ 105°C
 lớp nước không bị mất đi khi mẫu đất để khơ
gió nhưng sẽ bị mất đi khi mẫu đất được sấy

 Lớp 3



khô ở nhiệt độ 105°C
 lớp nước liên kết với hạt đất bằng sức căng
bề mặt, sẽ mất đi khi mẫu đất được để khô

 Lớp 4
 Lớp 5



gió (tương đương với nhiệt độ khoảng 60°C)
 lớp nước chảy tự do giữa các lỗ rỗng trong




đất
 lớp nước nằm trong cấu trúc tinh thể của hạt


đất. Lớp nước này không bị mất đi khi sấy
khô mẫu đất ở nhiệt độ 105°C (ngoại trừ


thạch cao và một số loại sét vùng nhiệt đới).
Như vậy, khi mẫu đất được đốt nóng đến nhiệt độ 105°C, chỉ có lớp
nước 2, 3 và 4 sẽ bị mất đi; lớp nước 1 vẫn còn bám quanh h ạt đ ất.

 2. Cơng thức tính:

 trong đó:
 W
 mw

 độ ẩm của đất (%)
 khối lượng nước trong mẫu đất (g)
Khối lượng nước trong mẫu đất được xác định
bằng độ chênh lệch khối lượng của mẫu đất

trước và sau khi sấy khô ở nhiệt độ 105°C
 md
 khối lượng đất khô trong mẫu đất (g)
 3. Phương pháp:
 Để thực hiện thí nghiệm xác định độ ẩm của mẫu đất, bạn đọc nên
tham khảo các tiêu chuẩn sau:
 a) ASTM D2216 : Phương pháp xác định độ ẩm của mẫu đất và đá

bằng tủ sấy
 b) ASTM D4643 : Phương pháp xác định độ ẩm của mẫu đất bằng lị
vi sóng
 c) ASTM D4944 : Phương pháp xác định nhanh độ ẩm của mẫu đất
tại hiện trường bằng phương pháp đo áp suất khí CaC 2
 d) ASTM D4959 : Phương pháp xác định độ ẩm của mẫu đất và đá
bằng phương pháp đốt trực tiếp
 e) K.H. Head (2006). Manual of Soil Laboratory Testing, Volume 1: Soil
Classification and Compaction Tests. Whittles Publishing


 4. Độ phân tán của dữ liệu:
 Theo ASTM D2216, kết quả thí nghiệm độ ẩm do một người thực
hiện trong những điều kiện thí nghiệm giống nhau có hệ số biến
động là 2.7% ; còn kết quả do các phịng thí nghiệm khác nhau th ực
hiện có hệ số biến động là 5.0%.
 Như vậy, hai kết quả thí nghiệm độ ẩm xem như tương tự nhau nếu
chúng không khác biệt quá giới hạn cho phép trong bảng sau:
 Mức chênh lệch cho phép giữa hai giá trị độ ẩm
 Điều kiện thí
nghiệm

của một mẫu đất
(so với trị trung bình của chúng)
 ASTM D2216
 TCVN 4196

 Cùng một người
thực hiện
 Hai phịng thí


 7.8%

 10%

 14%

 ?

IV : Mạch cảm biến nhiệt độ 18b20
Mạch cảm biến nhiệt độ 18B20 hiển thị led sử dụng IC cảm biến nhiệt độ
18B20, nhiệt độ đo được hiển thị bằng led 7 đoạn, ngõ ra 3 chân relay NC COM - NO. Mạch được thiết kế nhỏ gọn với 3 nút nhấn để cài đ ặt 5 ch ế đ ộ
hoạt động, phù hợp với hầu hết các nhu cầu sử dụng.
1 : Thông số kỹ thuật:
 IC nhiệt độ: DS18B20
 Nguồn cấp nuôi board: 12VDC
 Dải nhiệt độ đo: -40°C ~ +125°C
 Dịng khơng tải: 20mA


 Dòng tải thường: 50mA
 Ngõ ra: 3 cổng relay NC - COM - NO (AC 220V 10A, DC 30V 10A)
 Kích thước: 65 x 39mm
a : Hướng dẫn sử dụng:
 Nhấn nút K1 để chọn cài đặt nhiệt độ T1, sử dụng nút K2 và K3 để
tăng - giảm thông số đến mức cài đặt T1 mong muốn.
 Sau đó tiếp tục nhấn nút K1 để chọn cài đặt nhiệt độ T2, s ử dụng
nút K2 và K3 để tăng - giảm thông số đến mức cài đặt T2 mong
muốn.
 Tiếp tục nhất nút K1 để kết thúc quá trình cài đặt nhiệt độ T1 và T2,

lúc này màn hình led 7 đoạn sẽ hiển thị nhiệt độ th ực tế đo đ ược.
 Trong quá trình sử dụng ta có thể tắt màn hình hiển thị bằng cách
nhấn nút K3.
b : Các chế độ hoạt động:
 Nhấn và giữ nút K1 đến khi màn hình hiển thị P--x (x là giá tr ị t ừ
1,2,3,4,5), sử dụng nút K2 và K3 để chọn chế đ ộ mong muốn.
 Chế độ P1: Ở chế độ này, khi nhiệt độ đo được bằng nhiệt độ cài
đặt T1 thì relay sẽ đóng và relay chỉ tắt khi nhiệt độ tăng lêni bằng
nhiệt độ cài đặt T2.
 Chế độ P2: Ở chế độ này, khi nhiệt độ đo được bằng nhiệt độ cài
đặt T2 thì relay sẽ đóng và relay chỉ tắt khi nhiệt độ hạ xuống bằng
nhiệt độ cài đặt T1.


 Chế độ P3: Ở chế độ này relay sẽ đóng khi ở trong dải nhiệt độ cài
đặt T1vi này.
 Chế độ P4: Ở chế độ này relay sẽ đóng khi ở ngồi dải nhiệt độ cài
đặt t <T1 hoặc t >T2 (t là nhiệt độ đo được), và relay ngắt khi ở
ngoài phạm vi này.
 Chế độ P5: Chế độ này chỉ cho phép cài đặt 1 m ức nhi ệt đ ộ và khi
nhiệt độ đo được thấp hơn nhiệt độ cài đặt thì relay sẽ đóng và relay
ngắt khi nhiệt độ đo được cao hơn nhiệt độ cài đặt.
V : Giới thiệu cơ bản về LCD 18B20
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 Qt 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 hình 1 là loại LCD thơng
dụng.


Hình 1 : 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 : Sơ đồ chân của LCD

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


Chân



Mô tả

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 nào chân E xuống mức thấp.
7-

DB0


Tám đường của bus dữ liệu dùng để trao đổi

14

-

thông tin với MPU. Có 2 chế độ sử dụng 8 đường

DB7

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

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


Hình 3 : 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)


- 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


0

1

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

1

0

Ghi vào thanh ghi DR

1

1

Đọc dữ liệu từ DR


Bảng 2 : 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 ngồ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 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 4 : 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 :


Hình 4 : 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.


Hình 5 : 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ảng 3 : Bảng mã kí tự (ROM code A00)


f> Vùng RAM chứa kí tự đồ họa CGRAM : (Character Generator RAM)
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.


Hình 6 : 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 :
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 để hồ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

Hoạt động

lệnh
Clear

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

Display

DBx = 0

0

0

0

0

0

0


1

Lệnh Clear Display (xóa hiển thị) sẽ ghi một khoảng trốngblank (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

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

home

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


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

on/off
control

DBx = 0

0

0

0

1

[D] [C] [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

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

or

display
shift

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

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


n
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
CGRAM

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

1 [ACG][ACG][ACG][ACG][ACG][ACG]

address 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
DDRAM


Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 1 [AD] [AD] [AD] [AD] [AD] [AD] [AD]

address 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.
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 Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
and
address

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

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


data to
CG or
DDRAM

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 DB0

data
from CG
or

DBx =

[Read data]


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

(RS=1,


×