10932_Robot dò line điều khiển qua điện thoại

luận văn tốt nghiệp

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÀ RỊA VŨNG TÀU
VIỆN CNTT – ĐIỆN – ĐIỆN TỬ

Đ
ĐỒ

Á
ÁN
N
T
TỐ
ỐT
T
N
NG
GH
HI
IỆ
ỆP
P

Đ
ĐỀ

T

ÀI
I:
:

ROBOT DÒ LINE ĐIỀU KHIỂN QUA ĐIỆN
THOẠI

H
Họ

v

à
t

ên
n
G
GV
VH
HD
D
:
:
T
Th
hS
S.
.
N
Ng
gu
uy
yễ
ễn
n
L
L.
.T
Th
ha
an
nh
h
T

ùn
ng
g

H
Họ

v

à
t

ên
n
S
SV
V

:
:

N
Ng
gu
uy
yễ
ễn
n
Q
Qu
uố
ốc
c
A
An
n

C
Ch
hu
uy

ên
n
n
ng

àn
nh
h

:
:

Đ
Đi
iệ
ện
n


Đ
Đi
iệ
ện
n
t
tử

L
Lớ
ớp
p

:
:

D
DH
H1
13
3D
DD
D

K
Kh

óa
a

:
:
2
20
01
13
3


2
20
01
17
7

T
Tr

ìn
nh
h
đ
độ

đ
đà
ào
o
t
tạ
ạo
o
:
:
Đ
Đạ
ại
i
h
họ
ọc
c

V

ũn
ng
g
T

àu
u,
,
t
th

án
ng
g

7
7
n

ăm
m
2
20
01
17
7

Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 2

TRƢỜNG ĐẠI HỌC BÀ RỊA-VŨNG
TÀU
KHOA ĐIỆN-ĐIỆN TỬ
CỘNG HOÀ XÃ HỘI CHỦ
NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
——o0o—–
PHIẾU GIAO ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP
(Đính kèm Quy định về việc tổ chức, quản lý các hình thức tốt nghiệp ĐH, CĐ ban
hành kèm theo Quyết định số 585/QĐ-ĐHBRVT ngày 16/7/2013 của Hiệu trưởng
Trường Đại học BR-VT)

Họ và tên sinh viên: Nguyễn Quốc An

MSSV
: 13030712 Lớp: DH13DD
Trình độ đào tạo
: Đại học
Hệ đào tạo
: Chính quy
Ngành
: Công nghệ kỹ thuật điện-điện tử
Chuyên ngành
: Kỹ thuật điện-điện tử
1. Tên đề tài: Robot dò line điều khiển qua điện thoại.
2. Giảng viên hƣớng dẫn: Th.S. Nguyễn Lƣơng Thanh Tùng
4. Ngày hoàn thành đồ án/ khoá luận tốt nghiệp: 6/2017

Bà Rịa-Vũng Tàu, ngày tháng năm 2017
GIẢNG VIÊN HƢỚNG DẪN SINH VIÊN THỰC HIỆN
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

TRƢỞNG BỘ MÔN TRƢỞNG KHOA
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 3

LỜI CAM ĐOAN

Tôi xin cam đoan đồ án này tổng quát lại kết quả quá trình nghiên cứu của
tôi. Các số liệu, hình ảnh, thông tin trong đồ án đều trung thực, do tôi tìm hiểu, tham
khảo từ nhiều nguồn tƣ liệu. Đồ án này không sao chép các đồ án đã có từ trƣớc.

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về
nội dung đề tài của mình. Trƣờng đại học BÀ RỊA-VŨNG TÀU không liên quan
đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện
(nếu có).

Vũng Tàu, ngày…., tháng …., năm 2017

Ngƣời cam đoan:

Nguyễn Quốc An
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 4

Nhận xét giáo viên hƣớng dẫn
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

Vũng Tàu, ngày … ,tháng 07, năm 2017

Giáo viên hƣớng dẫn

Nguyễn Lƣơng Thanh Tùng

Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 5

Nhận xét giáo viên phản biện
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
Vũng Tàu, ngày …, tháng 07, năm 2017

Giáo viên phản biện

Phạm Chí Hiếu

Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 6

LỜI MỞ ĐẦU
Ngày nay, sự phát triển mạnh mẽ của khoa học đời sống, cuộc sống của con
ngƣời đã thay đổi ngày một tốt hơn, với những trang thiết bị hiện đại phục vụ trong
công cuộc công nghiệp hóa, hiện đại hóa. Đặc biệt góp phần không nhỏ đó là ngành
kĩ thuật điện – điện tử trong sự nghiệp xây dựng đất nƣớc. Những thiết bị điện, điện
tử đƣợc phát triển và ứng dụng rộng rãi trong đời sống hằng ngày. Từ những thời
gian đầu phát triển vi xử lý đã cho thấy sự ƣu việt của nó và cho tới ngày nay tính
ƣu việt đó ngày càng đƣợc khẳng định thêm. Những thành tựu của nó đã có thể biến
đƣợc những cái tƣởng chừng nhƣ không thể thành những cái có thể, góp phần nâng
cao đời sống vật chất và tinh thần cho con ngƣời.
Để góp phần làm sáng tỏ hiệu quả của những ứng dụng trong thực tế của
môn vi xử lý, sau một thời gian học tập đƣợc các thầy cô trong khoa giảng dạy về
các kiến thức chuyên ngành, đồng thời đƣợc sự giúp đỡ nhiệt tình của các thầy cô
trong khoa Điện-Điện tử, cùng với sự lỗ lực của bản thân, em đã “ Thiết kế robot
dò line điều khiển qua điện thoại” nhƣng do thời gian, kiến thức và kinh nghiệm
của em còn có hạn nên sẽ không thể tránh khỏi những sai sót . Em rất mong đƣợc sự
giúp đỡ và tham khảo ý kiến của thầy cô và các bạn nhằm đóng góp phát triển thêm
đề tài.

SVTH
Nguyễn Quốc An
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 7

LỜI CÁM ƠN
Lời đầu tiên em xin chân thành cảm ơn đến thầy Nguyễn Lƣơng Thanh Tùng
đã giúp em rất nhiều trong quá trình thực hiện đồ án này.
Trong quá trình thực hiện đồ án, đƣợc sự giúp đỡ tận tình của thầy Nguyễn
Lƣơng Thanh Tùng em đã thu đƣợc nhiều kiến thức quý báu giúp em rất nhiều
trong quá trình học và làm việc trong tƣơng lai: đƣợc tiếp xúc với Arduino, Module
Bluetooth, Module L298 và thi công mạch in, . . .
Trong quá trình thực hiện đồ án do em chƣa có nhiều kinh nghiệm nên không
tránh khỏi sai sót. Mong nhận đƣợc sự góp ý của các thầy để hoàn thiện hơn.
Một lần nữa em xin chân thành cảm ơn sự giúp đỡ của các quý thầy trong
quá trình thực hiện đồ án để em hoàn thành đồ án này.

SVTH

Nguyễn Quốc An
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 8

MỤC LỤC
Đề mục

Trang
Nhận xét giáo viên hƣớng dẫn …………………………………………………………………………
4
Nhận xét giáo viên phản biện
…………………………………………………………………………..
5
MỤC LỤC
…………………………………………………………………………………………………….
8
Chƣơng 1:
……………………………………………………………………………………………………
10
MỞ ĐẦU
…………………………………………………………………………………………………….
10
1.1 Giới thiệu đề tài …………………………………………………………………………………..
10
1.2 Mục đích đề tài ……………………………………………………………………………………
10
1.3 Sơ lƣợc các bƣớc thực hiện …………………………………………………………………..
10
Chƣơng 2:
……………………………………………………………………………………………………
11
GIỚI THIỆU ARDUINO VÀ CÁC THÀNH PHẦN CỦA MẠCH ……………………
11
2.1 Giới thiệu về ARDUINO
………………………………………………………………………
11
2.1.1 Sơ Lƣợc về ARDUINO NANO ……………………………………………………….
11
2.1.2 Một vài thông số của Arduino Nano …………………………………………………
12
2.1.3 Cổng kết nối với Arduino Nano ……………………………………………………….
13
2.1.4 Lập trình cho Arduino Nano ……………………………………………………………
13
2.2 Các thành phần của mạch: LCD 16×2 …………………………………………………….
15
2.2.1 Hình dáng và kích thƣớc …………………………………………………………………
15
2.2.2 Chức năng của các chân ………………………………………………………………….
16
2.2.3 Sơ đồ khối của HD44780 ………………………………………………………………..
17
2.2.4.Tập lệnh của LCD 16×2 ………………………………………………………………….
22
2.2.5 Giao tiếp giữa LCD và MCU …………………………………………………………..
24
2.2.6 Khởi tạo LCD ………………………………………………………………………………..
25
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 9

2.3 Các thành phần của mạch: MODULE L298N
………………………………………….
27
2.3.1 Thông số kỹ thuật …………………………………………………………………………..
27
2.3.2 Nối mạch ………………………………………………………………………………………
31
2.3.1 Sơ đồ chân …………………………………………………………………………………….
32
2.3.2 Giao tiếp với Module Bluetooth HC05 ……………………………………………..
33
2.3.3 Module bluetooth HC05
………………………………………………………………….
35
Chƣơng 3:
……………………………………………………………………………………………………
36
GIẢI THUẬT VÀ CHƢƠNG TRÌNH ĐIỀU KHIỂN ………………………………………
36
3.1 Nguyên lý tổng quát
……………………………………………………………………………..
36
3.2 Mạch cảm biến dò line
………………………………………………………………………….
37
3.2.1 Nguyên Lý …………………………………………………………………………………….
37
3.2.2 Layout:
………………………………………………………………………………………….
38
3.2.3 Mạch in
…………………………………………………………………………………………
38
3.2.4 Mạch hoàng chỉnh ………………………………………………………………………….
38
3.3 Sản phẩm sau khi hoàn thiện: ………………………………………………………………..
39
3.4 Giải thuật code …………………………………………………………………………………….
42
Chƣơng 4:
……………………………………………………………………………………………………
51
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ……………………………………………………….
51
4.1 Kết quả
……………………………………………………………………………………………….
51
4.2 Hƣớng phát triển ………………………………………………………………………………….
51
TÀI LIỆU THAM KHẢO
……………………………………………………………………………..
52

Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 10

Chƣơng 1:
MỞ ĐẦU
1.1 Giới thiệu đề tài
Ngày nay, robotic đã đạt đƣợc những thành tựu to lớn trong sản xuất công
nghiệp cũng nhƣ trong đời sống. Sản xuất robot là nghành công nghiệp trị giá hàng
tỉ USD và ngày càng phát triển mạnh, trong các họ robot chúng ta không thể không
nhắc tới mobile robot với những đặc thù riêng mà các loại robot khác không có.
Mobile robot có thể di chuyển một cách rất linh hoạt, do đó tạo nên không
gian hoạt động lớn và cho đến nay nó đã dần khẳng định vai trò quan trọng không
thể thiếu trong nhiều lĩnh vực, thu hút đƣợc rất nhiều sự đầu tƣ và nghiên cứu.
Mobile robot cũng đƣợc chia ra làm nhiều loại: robot học đƣờng đi, robot dò đƣờng
line, robot tránh vật cản, robot tìm đƣờng cho mê cung,…trong số đó robot dò
đƣờng line, tránh vật cản dễ dàng ứng dụng nhiều trong cuộc sống. Việc phát triển
loại robot này sẽ phục vụ rất đắc lực cho con ngƣời.
1.2 Mục đích đề tài
Robot dò line vừa có nhiều ứng dụng trong thực tế vừa dễ dàng để sinh viên
vận dụng những kiến thức tiếp thu đƣợc trên giảng đƣờng vào nó. Với những kết
cấu cơ khí đơn giản nhƣng lại có thể kết hợp đƣợc với khá nhiều thành phần điện tử
(encoder, sensor xác định đƣờng line, sensor đo khoảng cách…) nên những Robot
này rất phù hợp để sinh viên học tập và nghiên cứu thêm về ngành Tự động hóa một
cách cụ thể.
1.3 Sơ lƣợc các bƣớc thực hiện
– Trƣớc tiên ta phải chế tạo đƣợc khung xe của robot. Khung xe phải đảm
bảo bền chắc và đạt độ chính xác nhất định về việc bố trí các bánh xe và động cơ
thông qua việc vẽ trên phần mềm và cắt CNC.
-Và cuối cùng là công đoạn lập trình dựa trên những kiến thức đã học đƣợc.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 11

Chƣơng 2:
GIỚI THIỆU ARDUINO VÀ CÁC THÀNH PHẦN CỦA MẠCH
2.1 Giới thiệu về ARDUINO
2.1.1 Sơ Lƣợc về ARDUINO NANO
Khi tiếp xúc với Arduino Nano đó là sự tiện dụng, đơn giản, có thể lập trình
trực tiếp bằng máy tính (nhƣ Arduino Uno R3) và đặc biệt hơn cả đó là kích thƣớc
của nó. Kích thƣớc của Arduino Nano cực kì nhỏ chỉ tƣơng đƣơng đồng 2 nghìn
gấp lại 2 lần thôi (1.85cm x 4.3cm), rất thích hợp cho các bạn bắt đầu học vì giá rẻ
hơn Arduino Uno nhƣng dùng đƣợc tất cả các thƣ việt của mạch này. Bài này nhằm
mục đích giới thiệu về mạch Arduino Nano và các thông số kĩ thuật, cùng với đó là
những gợi ý ứng dụng khi bắt đầu với mạch này.

Hình 2.1 Arduino Nano
Các thông số kĩ thuật của Arduino Nano hầu nhƣ giống hoàn Arduino Uno
R3, vì vậy các thƣ viện trên Arduino Uno đều hoạt động tốt trên Arduino Uno. Tuy
nhiên, ở Nano có một lợi thế cực kì quan trọng, nhờ đó Arduino Nano đã đƣợc ứng
dụng rất nhiều trong các dự án DIY, đó chính là kích thƣớc của nó. Dòng mạch
Arduino phổ biến, khi mới bắt đầu làm quen, lập trình với Arduino thì mạch
Arduino thƣờng nói tới chính là dòng Arduino UNO.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 12

2.1.2 Một vài thông số của Arduino Nano
Bảng 2.1. Thông số Arduino Nano
Vi Điều khiển
ATmega328 (họ 8bit)
Điện áp hoạt động
5V – DC
Tần số hoạt động
16 MHz
Dòng tiêu thụ
30mA
Điện áp vào khuyên dùng
7-12V – DC
Điện áp vào giới hạn
6-20V – DC
Số chân Digital I/O
14 (6 chân PWM)
Số chân Analog
8 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O
40 mA
Dòng ra tối đa (5V)
500 mA
Dòng ra tối đa (3.3V)
50 mA
Bộ nhớ flash
32 KB (ATmega328) với 2KB dùng bởi
bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Kích thƣớc
1.85cm x 4.3cm

Các thông số kĩ thuật của Arduino Nano hầu nhƣ giống hoàn Arduino Uno
R3, vì vậy các thƣ viện trên Arduino Uno đều hoạt động tốt trên Arduino Uno. Tuy
nhiên, ở Nano có một lợi thế cực kì quan trọng, nhờ đó Arduino Nano đã đƣợc ứng
dụng rất nhiều trong các dự án DIY, đó chính là kích thƣớc của nó.
Đồng thời Nano còn số lƣợng chân Analog nhiều hơn Uno (2 chân A6, A7 chỉ
dùng để đọc) cùng với dùng ra tối đa của mỗi chân IO lên đến 40mA. Nhƣng, có
một điểm trừ nhẹ cho Nano, đó là mạch này Nano cần đến 2KB bộ nhớ cho
bootloader (ở Uno là 0.5KB).
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 13

Tuy nhiên, bạn đừng lo lắng, bạn còn đến tận 30KB bộ nhớ flash để lập trình,
để dùng hết đƣợc 30KB này với tôi, đó là cả “một vấn đề lập trình”.
2.1.3 Cổng kết nối với Arduino Nano
Khác với Arduino Nano sử dụng cổng USB Type B, Nano lại sử dụng một
cổng nhỏ hơn có tên là mini USB.
Vì sử dụng cổng này nên kích thƣớc board (vê chiều cao) cũng giảm đi khá
nhiều, ngoài ra bạn có thể lập trình thẳng trực tiếp cho Nano từ máy tính – điều này
tạo nhiều điện thuận lợi cho các bạn mới học.
2.1.4 Lập trình cho Arduino Nano
Cũng tƣơng tự nhƣ bên Arduino Uno R3, Arduino Nano sử dụng chƣơng trình
Arduino IDE để lập trình, và ngôn ngữ lập trình cho Arduino cũng tên là Arduino
(đƣợc xây dựng trên ngôn ngữ C).
Tuy nhiên, nếu muốn lập trình cho Arduino Nano, bạn cần phải thực hiện một
số thao tác trên máy tính. Sau đây, tôi sẽ hƣớng dẫn bạn từng bƣớc để có thể lập
trình cho Arduino Nano.
Đầu tiên, bạn cần cài Driver của Arduino Nano và tải về bản Arduino IDE mới
nhất cho máy tính, các bƣớc cài đặt hoàn toàn tƣơng tự nhƣ Arduino Uno R3, bạn
có thể tham khảo.
Sau khi cài đặt, bạn sẽ thấy một thông báo dạng “Cổng COMx đã đƣợc cài đặt
thành công” (chữ “x” này sẽ đƣợc thay bằng một số nguyên dƣơng, bạn hãy nhớ lấy
số này, vì sau này bạn sẽ dùng cổng COMx này để lập trình cho Arduino Nano).
Mạch Arduino Nano là dòng mạch Arduino phổ biến, khi mới bắt đầu làm
quen, lập trình với Arduino thì mạch Arduino thƣờng nói tới chính là dòng Arduino
Nano. Hiện dòng mạch này đã phát triển tới thế hệ thứ 3.
Arduino Nano là dòng cơ bản, linh hoạt, thƣờng đƣợc sử dụng cho ngƣời mới
bắt đầu. Bạn có thể sử dụng các dòng Arduino khác nhƣ: Arduino Mega, Arduino
Nano, Arduino Micro… Nhƣng với những ứng dụng cơ bản thì mạch Arduino Nano
là lựa chọn phù hợp nhất.

Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 14

Hình 2.2 Chọn Board Arduino

Hình 2.3 Chọn cổng Arduino
Sau đó, bạn cần lại loại board và cổng Serial mới nhƣ hình sau là đƣợc. Lƣu ý,
cổng COM trong hình dƣới đây là chỉ là hình minh họa trong máy tính của mình
thôi nhé.
Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ
hiểu. Nếu học tốt chƣơng trình Tin học 11 thì việc lập trình Arduino sẽ rất dễ thở
đối với bạn.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 15

2.2 Các thành phần của mạch: LCD 16×2
2.2.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 2.4 : 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.5 : Sơ đồ chân của LCD
Ở 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.
Chế độ 4 bit : Dữ liệu đƣợc truyền trên 4 đƣờng từ DB4 tới DB7, bit MSB là
DB7.
Chế độ 8 bit : Dữ liệu đƣợc truyền trên cả 8 đƣờng, với bit MSB là bit DB7.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 16

2.2.2 Chức năng của các chân
Bảng 2.2 Chức năng các chân của LCD
Chân

hiệu
Mô tả
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.
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.
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 :
15

Nguồn dƣơng cho đèn nền
16

GND cho đèn nền

* 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.
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.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 17

2.2.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 2.6 : 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 Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 18

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 2.3 : Chức năng chân RS và R/W theo mục đích sử dụng
RS
RW
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ỉ DB0-DB6
1
0
Ghi vào thanh ghi DR
1
1
Đọc dữ liệu từ DR

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ỉ : (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.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 19

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 2.7 : 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 2.8 : 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ó 80×8 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
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 20

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 5×8 hoặc 5×10 điểm ảnh/kí tự,
và định địa chỉ bằng 8 bit.
Tuy nhiên, nó chỉ có 208 mẫu kí tự 5×8 và 32 mẫu kí tự kiểu 5×10 (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 2.9 : 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”.
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.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 21

F. Vùng RAM chứa kí tự đồ họa CGRAM
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 5×8 điểm ảnh, hoặc 4 kí tự loại 5×10 điểm
ảnh.
Để ghi vào CGRAM, hãy xem hình 6 bên dƣới.

Hình 2.9 : Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM, và mã kí tự.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 22

2.2.4.Tập lệnh của LCD 16×2
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 2.5 : 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
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]

Display
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 23

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

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.
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.
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 24

2.2.5 Giao tiếp giữa LCD và MCU
A.
Đặc tính điện của các chân giao tiếp
LCD sẽ bị hỏng nghiêm trọng, hoặc hoạt động sai lệch nếu bạn vi phạm
khoảng đặc tính điện sau đây:
Bảng 2.6 : Maximun Rating
Đặc tính điện làm việc điển hình: (Đo trong điều kiện hoạt động Vcc = 4.5V
đến 5.5V, T = -30 đến +75C)
Chân cấp nguồn Vcc-GND
2.7V đến 5.5V
Điện áp vào mức cao VIH
2.2V đến Vcc
Điện áp vào mức thấp VIL
-0.3V đến 0.6V
Điện áp ra mức cao (DB0-DB7)
Min 2.4V (khi IOH = -0.205mA)
Điện áp ra mức thấp (DB0-DB7)
Max 0.4V (khi IOL = 1.2mA)
Dòng điện ngõ vào (input leakage current) ILI
-1uA đến 1uA (khi VIN = 0 đến Vcc)
Dòng điện cấp nguồn ICC
350uA(typ.) đến 600uA
Bảng2.7: Miền làm việc bình thường
B.
Sơ đồ nối mạch điển hình
– Sơ đồ mạch kết nối giữa mô đun LCD và VĐK 89S52 (8 bit).
– Sơ đồ mạch kết nối giữa môđun LCD và VĐK (4 bit).
Chân cấp nguồn (Vcc-GND)
Min:-0.3V , Max+7V
Các chân ngõ vào (DBx,E,…)
Min:-0.3V , Max:(Vcc+0.3V)
Nhiệt độ hoạt động
Min:-30C , Max:+75C
Nhiệt độ bảo quản
Min:-55C , Max:+125C
Đồ Án Tốt Nghiệp

Trƣờng ĐH BR – VT

SVTH: Nguyễn Quốc An
Page 25

C. Bus Timing

Hình 2.10 Bus Timing
2.2.6 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ự 5×8/5×10.
• 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.

Đánh giá post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *