Professional Documents
Culture Documents
Nghiên cứu cách thức hiển thị với LCD 16x2 và lập trình GPIO
với Arduino trong trường hợp Output
NHÓM 5 LỚP 03
Hà Nội - 2022
Bài tập nhóm Internet và các giao thức
1
Nhóm 5
Bài tập nhóm Internet và các giao thức
MỤC LỤC
2
Nhóm 5
Bài tập nhóm Internet và các giao thức
3
Nhóm 5
Bài tập nhóm Internet và các giao thức
a. Sơ đồ LCD 16x2
LCD 16x2 là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị các dòng chữ hoặc
số trong bảng mã ASCII. Gồm 2 dòng và 16 ký tự mỗi dòng.
4
Nhóm 5
Bài tập nhóm Internet và các giao thức
Chân số 5 (R/W) chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0” để
ghi hoặc nối với logic “1” đọc.
Chân số 6 (EN) 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
này như sau:
Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên
trong 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ân số 7 đến 14 8 đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2
(D0 đến D7) chế độ sử dụng 8 đường bus này là chế độ 8 bit (dữ liệu được truyền
trên cả 8 đường, với bit MSB là bit DB7) và chế độ 4 bit (dữ liệu
được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7).
Chân số 15 (A) nguồn dương cho đèn nền.
Chân số 16 (K) nguồn âm cho đèn nền.
Cấu tạo của LCD 16x2: Sử dụng chip HD44780U gồm 2 thanh ghi 8 bit nối với các
đường dữ liệu
▪ Thanh ghi lệnh 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ỉ cần cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR.
▪ Thanh ghi dữ liệu DR: Dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM DDRAM
hoặc CGRAM(ở chế độ ghi) hoặc để chứa dữ liệu từ 2 vùng RAM này gửi ra cho
MPU (ở chế độ đọc)
▪ 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.
▪ 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.
▪ Có 3 loại bộ nhớ là: DDRAM, CGROM, CGRAM
▪ DDRAM: là bộ nhớ tạm chứa các ký tự cần hiển thị lên LCD gồm 80 ô, chỉ có 32
ô nhớ tại 1 thời điểm là hiển thị trên màn hình, những ký tự còn lại có thể sử dụng
cho những mục đích khác (không bị mất đi).
5
Nhóm 5
Bài tập nhóm Internet và các giao thức
▪ CGROM: Là vùng nhớ cố định chứa định nghĩa font cho các ký tự. Địa chỉ của
mỗi ký tự vùng nhớ CGROM chính là ASCII của ký tự đó.
▪ CGRAM: Là vùng nhớ chứa các Symbol do người dùng tự định nghĩa, mỗi symbol
có kích thước 5x8 và dành cho 8 ô nhớ 8bit.
b. Thông số kỹ thuật
▪ Điện áp MAX : 7V
▪ Điện áp MIN : - 0,3V
▪ Hoạt động ổn định : 2.7-5.5V
▪ Điện áp ra mức cao : > 2.4
6
Nhóm 5
Bài tập nhóm Internet và các giao thức
Arduino nền tảng mã nguồn mở giúp con người xây dựng các ứng dụng điện tử có khả
năng liên kết, tương tác với nhau tốt hơn. Nó có thể xem như là một chiếc máy tính thu
nhỏ vậy, nó giúp người dùng lập trình, thực hiện các dự án điện tử mà không cần dùng
tới công cụ chuyên biệt phục vụ cho quá trình nạp code của người dùng.
7
Nhóm 5
Bài tập nhóm Internet và các giao thức
8
Nhóm 5
Bài tập nhóm Internet và các giao thức
▪ Điều khiển thiết bị thông qua internet ( IoT) Kết nối mạng không có thì truyền
thông qua INternet kiểu gì ? Vẫn có thể đk thiết bị qua internet được nhưng phải
thông qua wireless các giao tiếp không dây. (VD: Bluetooth…)
▪ Nhận biết và xử lý và cảnh báo các vấn đề nguy hiểm như báo cháy, Nồng độ hóa
chất, Khí ga độc hại, thông qua cảm biến.
▪ Điều khiển thiết bị tắt bật đơn giản, Cảm biến âm thanh, ánh sáng....
Mặt trước của LCD 1602 Mặt sau của LCD 1602
9
Nhóm 5
Bài tập nhóm Internet và các giao thức
a. Ưu điểm
▪ Có thể điều chỉnh đèn nền cho LCD 16x2 để tiết kiệm điện năng.
▪ Hiển thị kí tự đa dạng, trực quan (chữ, số và ký tự đồ họa).
▪ Có thể tạo một vài hiệu ứng trên LCD 16x2 như là chữ chạy, nhấp nháy, chữ
cuộn.
▪ Có thể sử dụng ở chế độ 4 bit hoặc 8 bit.
▪ Dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức khác nhau.
▪ Tốn rất ít tài nguyên hệ thống.
▪ Giá thành rẻ.
b. Nhược điểm
▪ Tốn nhiều chân kết nối (có thể sử dụng module I2C để tiết kiệm chân cho vi
điều khiển).
▪ Hạn chế khi hiển thị dãy ký tự dài.
a. Ưu điểm
▪ Có thể sử dụng ngay: Bạn không cần phải suy nghĩ về các kết nối lập trình hoặc
bất kỳ giao diện nào khác. Chỉ cần cắm nó vào cổng USB của máy tính.
▪ Các mẫu có sẵn: Thư viện các mẫu có sẵn trong phần mềm Arduino.
▪ Các chức năng giúp đơn giản hóa công việc: Khả năng chuyển đổi đơn vị tự động
của nó.
▪ Cộng đồng lớn: Có rất nhiều diễn đàn trên internet nói về Arduino. Kỹ sư và các
chuyên gia đang thực hiện dự án của họ thông qua Arduino. Bạn có thể dễ dàng
tìm thấy mọi thông tin về arduino.
b. Nhược điểm
▪ Cấu trúc: Trong khi xây dựng một dự án bạn phải làm cho kích thước của nó càng
nhỏ càng tốt
▪ Chi phí: Đây là vấn đề mà mọi người kỹ sư hoặc chuyên gia phải đối mặt. Lúc này
chúng ta phải xem chi phí cho Arduino có hiệu quả hay không.
▪ Dễ sử dụng: Nếu bạn bắt đầu vi điều khiển với Arduino thì sẽ rất khó cho bạn khi
làm các mạch thông minh phức tạp trong tương lai. Vì phần cứng và phần mềm
10
Nhóm 5
Bài tập nhóm Internet và các giao thức
của Arduino dễ sử dụng nên bạn sẽ không biết những điều cơ bản như giao tiếp nối
tiếp, ADC, I2C…
▪ Kiến trúc: Số lượng chân giao tiếp còn hạn chế ( Chỉ có 1 số ít chân) Cũng bởi vì
chip arduino là chip 8 bit.
▪ LCD 16x2 có 16 chân, 2 chân cấp nguồn (Anot nối với 5V, Catot nối với đất,
chân nối với Anot nên dùng thêm điện trở khoảng vài chục Ohm)
▪ 3 chân VSS, VDD, VEF để điều chỉnh độ sáng đèn nền thông qua biến trở.
▪ 3 chân RS, RW, EN để điều khiển cho phép thao tác với lệnh hay là thao tác
qua data.
▪ D0- D7 là 8 chân dữ liệu cho phép kết nối với vi điều khiển để truyền dữ liệu
hoặc lệnh. Nếu sử dụng chế độ 4bit thì bỏ qua kết nối với D0- D3 (Chế độ 8 bit
cho tốc độ đọc và ghi nhanh hơn)
Một số mã lệnh hay dùng của LCD: Địa chỉ lệnh được nạp vào thanh ghi IR thông
qua các chân D0-D7 hoặc D4-D7( chế độ 8 bit hoặc 4 bit), chíp HD44780U sẽ tra
bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó.
11
Nhóm 5
Bài tập nhóm Internet và các giao thức
void setup() {
// toàn bộ đoạn code nằm trong hàm này chỉ được chạy duy nhất một lần khi
chạy chương trình
// Nhằm mục đích khai báo sử dụng , cấu hình cho ngoại vi, set up các thư viện
và configuration cho peripheral.
}
void loop() {
// lặp lại mãi mãi sau khi chạy xong setup()
12
Nhóm 5
Bài tập nhóm Internet và các giao thức
// Thực thi liên tục các câu lênh. Chạy xong 1 lượt và chạy lại lần nữa. Nếu
không có tín hiệu kết thúc chương trình lặp thì nó sẽ lặp cho đến khi mà kit hỏng
thì thôi.
Các kết nối được thực hiện cho màn hình LCD 16×2 được đưa ra dưới đây:
▪ Bốn chân dữ liệu D4 đến D7 được kết nối với bốn chân (0 đến 3) của Arduino.
▪ Chân chọn thanh ghi RS (Register Select) và chân cho E (Enable) chân được kết
nối với chân 4 và chân 5 của Arduino.
▪ Chân VSS của màn hình LCD được nối đất trong khi chân VDD được kết nối với
nguồn điện áp 5V.
▪ V0 của LCD được kết nối với biến trở 10KΩ để thay đổi độ sáng của màn hình
LCD. Nếu không cần chỉnh độ tương phản của LCD thì chân này được nối đất.
▪ Chân RW được kết nối với mặt đất.
13
Nhóm 5
Bài tập nhóm Internet và các giao thức
Arduino cho phép người dùng sử dụng LCD ở chế độ 4 bit. Loại giao tiếp này cho phép
người dùng giảm số chân sử dụng trên Arduino, không giống như các vi điều khiển
khác, ARDUINO không cần lập trình riêng để sử dụng nó ở chế độ 4 bit vì theo mặc
định Arduino được thiết lập để giao tiếp ở chế độ 4 bit. Trong sơ đồ mạch bên trên bạn
có thể thấy tôi đã sử dụng giao tiếp 4 bit (D4-D7).
➔Tóm lại, với sơ đồ mạch được kết nối như trên, người dùng có thể kết nối 6 chân của
LCD để điều khiển, trong đó 4 chân là chân dữ liệu còn 2 chân còn lại là chân điều
khiển.
14
Nhóm 5
Bài tập nhóm Internet và các giao thức
15
Nhóm 5
Bài tập nhóm Internet và các giao thức
Hình 3.2: Kết quả xuất chữ ra LCD, bật tắt màn hình
16
Nhóm 5
Bài tập nhóm Internet và các giao thức
17
Nhóm 5
Bài tập nhóm Internet và các giao thức
Hình 3.4 Kết quả nhấp nháy con trỏ trên LCD
18
Nhóm 5
Bài tập nhóm Internet và các giao thức
https://dientusangtaovn.com
https://mesidas.com
https://thutemplate2115.blogspot.com/2015/08/d.html?fbclid=IwAR0WE6r48OSNUY
Zc2u2RO5jQJuysvg90oqBSYWQFzTtXJnVmnUdzg1_E0V0
https://suachualaptop24h.com/linh-kien-laptop/tim-hieu-thong-so-ki-thuat-cua-lcd-
1602n5212.html?fbclid=IwAR3FqNC4nPxbvXZwv0N2CZR3mB2Isok3R44j4ZsVzgi
MIo_BBggmf5TbcPg
19
Nhóm 5