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.
Chân
|
Ký 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.
+ 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 – 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
|
* 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ó.
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ỉ ở DB0-DB6
|
1
|
0
|
Ghi vào thanh ghi DR
|
1
|
1
|
Đọc dữ liệu từ DR
|
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]
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]
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:
|
|||||||||||||||
Function
set
|
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
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ự 5×8 điểm ảnh, F=1: kiểu kí tự 5×10 điểm ảnh.
|
|||||||||||||||
Set
CGRAM
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
DDRAM
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.
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
DDRAM
|
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
data
from CG or
DDRAM
|
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 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.
|
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
|
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
|
Tần số dao động nội fOSC
|
190kHz đến 350kHz (điển hình là 270kHz)
|
=================================================
Tham khảo một bài viết về LCD trên một trang nước ngoài chuyển sang tiếng việt bằng google translate dưới đây về LCD:
NxN (8×1, 8×2, 10×2, 16×1, 16×2, 16×2, 20×2, 20×4, 24×2, 30×2, 32×2, 40×2) Làm việc với ký tự, Pinout và mô tả
Các nhân vật của LCD có nhiều kích thước 8×1, 8×2, 10×2, 16×1, 16×2, 16×4, 20×2, 20×4, 24×2, 30×2, 32×2, 40×2 vv Nhiều công ty đa quốc gia như Philips, Hitachi, Panasonic đã tạo ra các loại nhân vật tùy chỉnh của riêng mình để sử dụng trong sản phẩm của họ. Tất cả các nhân vật lcd thực hiện các chức năng tương tự (hiển thị các ký tự số nhân vật đặc biệt, ascii ký tự vv) .Các lập trình của họ cũng giống nhau và tất cả chúng đều có 14 pins (0-13) hoặc 16 pins (0 đến 15).
Trong một mxn lcd. M thể hiện số coulomb và n đại diện cho số hàng. Giống như nếu LCD được biểu thị bởi 16×2 nó có nghĩa là nó có 16 coulombs và 2 hàng. Dưới đây là một vài ví dụ. Màn hình 16×2, 8×1 và 8×2 được hiển thị trong hình dưới đây. Lưu ý sự khác biệt trong các hàng và coulombs.
Trên một nhân vật lcd một nhân vật được tạo ra trong một ma trận 5×8 hoặc 5×7. Trong đó 5 đại diện cho số coulomb và 7/8 đại diện cho số hàng. Kích thước tối đa của ma trận là 5×8. Bạn không thể hiển thị ký tự lớn hơn ma trận kích thước 5×8. Thông thường, chúng tôi hiển thị một ký tự trong ma trận 5×7 và để lại dòng thứ tám cho con trỏ. Nếu chúng ta sử dụng hàng thứ 8 của ma trận để hiển thị ký tự, thì chúng sẽ không có chỗ cho con trỏ. Hình ảnh ở phía bên phải cho thấy sự sắp xếp các điểm ảnh ma trận 5×8 chấm.
Để hiển thị ký tự lớn hơn kích thước này, bạn phải chuyển sang đồ họa của lcd. Để tìm hiểu về lcds đồ họa ở đây là một hướng dẫn tốt Lcd đồ họa làm việc và Pin ra. |
Rs (Đăng ký chọn)
Đăng ký lựa chọn chọn đăng ký bộ điều khiển HD44780. Nó chuyển đổi giữa các lệnh và đăng ký dữ liệu.
- Đăng ký lệnh
- Đăng ký dữ liệu
Đăng ký lệnh
Khi chúng ta gửi lệnh cho lcd các lệnh này đi đến Command register và được xử lý. Các lệnh với mô tả đầy đủ được đưa ra trong hình dưới đây. Khi đăng ký lệnh Rs = 0 được chọn.
Đăng ký dữ liệu
Khi chúng tôi gửi dữ liệu đến LCD nó đi vào đăng ký dữ liệu và được xử lý của họ. Khi Rs = 1 thanh ghi dữ liệu được chọn.
Rw (Đọc – Viết)
Pin Rw được sử dụng để đọc và ghi dữ liệu vào dữ liệu HD44780 và các thanh ghi lệnh. Khi Rw = 1 chúng ta có thể đọc dữ liệu từ lcd. Khi Rw = 0 chúng ta có thể ghi vào lcd.
En (Bật tín hiệu)
Khi chúng ta chọn Rs đăng ký (Command and Data) và đặt Rw (đọc – ghi) và đặt giá trị nguyên trên 8 dòng dữ liệu, bây giờ là thời gian để thực hiện lệnh. Theo lệnh tôi có nghĩa là dữ liệu 8-bit hoặc lệnh 8-bit có trên các dòng dữ liệu của LCD. Để gửi dữ liệu / lệnh cuối cùng có trong dòng dữ liệu, chúng ta sử dụng lệnh enable pin. Thông thường nó vẫn còn en = 0 và khi chúng ta muốn thực hiện lệnh chúng ta làm cho nó cao en = 1 đối với một số nhà máy giây. Sau đó chúng ta lại làm cho nó đất en = 0
V0 (Đặt độ tương phản Lcd)
Để đặt độ sắc nét màn hình lcd sử dụng pin này. Cách tốt nhất là sử dụng điện trở biến như Potentiometer một biến hiện nay làm cho sự tương phản nhân vật sắc nét. Kết nối đầu ra của Potentiometer với chân này.Xoay núm Potentiometer về phía trước và ngược lại để điều chỉnh độ tương phản lcd.
Các lệnh Lcd Chuẩn với các chức năng của chúng được mô tả với các chức năng dưới đây.
- Lệnh 0x38 có nghĩa là chúng ta đang thiết lập chế độ 8-bit lcd có hai dòng và hình dạng nhân vật giữa ma trận 5×7.
- Lệnh 0x20 có nghĩa là chúng ta đang thiết lập chế độ 4-bit lcd có 1 dòng và ký tự giữa 5×7 ma trận.
- Lệnh 0x28 có nghĩa là chúng ta đang thiết lập chế độ 4-bit lcd có 2 dòng và dạng ký tự giữa ma trận 5×7.
- Lệnh 0x06 là chế độ nhập cảnh nó nói với lcd mà chúng ta sẽ sử dụng.
- Lệnh 0x08 hiển thị con trỏ và hiển thị nhưng với nội dung thanh toán bù trừ DDRAM.
- Lệnh 0x0E hiển thị con trỏ trên và hiển thị trên.
- Lệnh 0x0c hiển thị trên con trỏ tắt (hiển thị con trỏ tắt nhưng văn bản sẽ xuất hiện trên LCD)
- Lệnh 0x0F hiển thị trên con trỏ nhấp nháy (văn bản sẽ xuất hiện trên màn hình và con trỏ sẽ nhấp nháy).
- Lệnh 0x18 shift toàn bộ hiển thị trái (thay đổi toàn bộ văn bản trên một dòng cụ thể sang trái).
- Lệnh 0x1C chuyển toàn bộ phải sang phải (thay đổi toàn bộ văn bản trên một dòng cụ thể sang phải).
- Lệnh 0x10 Di chuyển con trỏ một bước sang trái hoặc di chuyển con trỏ trên bước từ đầu sang trái khi ký tự mới xuất hiện trên màn hình.
- Lệnh 0x14 Di chuyển con trỏ sang một bên phải hoặc di chuyển con trỏ trên bước đầu để righ khi nhân vật mới xuất hiện trên màn hình.
- Lệnh 0x01 xóa tất cả các nội dung của DDRAM và cũng xóa lcd loại bỏ tất cả các văn bản từ màn hình.
- Lệnh 0x80 khởi tạo con trỏ đến vị trí đầu tiên có nghĩa là ma trận đầu tiên dòng đầu tiên (điểm bắt đầu) bây giờ nếu chúng ta thêm 1 vào 0x80 + 1 = 0x81 con trỏ di chuyển đến ma trận thứ hai.
LƯU Ý: Bạn có thể gửi các lệnh trong hệ thập lục phân hoặc thập phân mà bạn thích kết quả là giống nhau vì bộ vi điều khiển dịch lệnh với giá trị nhị phân 8 bit và gửi nó đến LCD.
Sự khác nhau giữa chế độ LCD 4-bit và 8-bit
Aukcje internetowe dla Twojej strony!
Đối với chế độ 8-bit, điều này được thực hiện như sau:
1. Chờ hơn 15 mill secs sau khi điện được áp dụng.
2. Viết lệnh 0x30 đến LCD và chờ 5 milli giây để được hướng dẫn hoàn thành.
3. Viết lệnh 0x30 lên màn hình LCD và đợi 160 micro giây để được hướng dẫn hoàn thành.
4. Viết lệnh 0x30 AGAIN lên màn hình LCD và đợi 160 phút vi hoặc Thăm dò cờ bận rộn.
Trong chế độ 4-bit, nibble cao được gửi trước khi nibble thấp và pin En được bật mỗi lần bốn bit được gửi tới màn hình LCD. Để khởi tạo ở chế độ 4-bit:
1. Chờ hơn 15 mill secs sau khi điện được áp dụng.
2. Viết lệnh 0x03 lên màn hình LCD và chờ 5 msecs để hoàn thành hướng dẫn.
3. Viết lệnh 0x03 lên màn hình LCD và đợi 160 usecs để được hướng dẫn hoàn thành.
4. Viết lệnh 0x03 AGAIN vào màn hình LCD và đợi 160 usecs (hoặc bỏ phiếu Busy Flag).
Viết 0x02 vào màn hình LCD để kích hoạt chế độ 4-Bit
Để tìm hiểu thêm về sự khác biệt giữa chế độ lcd 4-bit và 8-bit và hoạt động với ví dụ minh họa, hãy truy cập liên kết hướng dẫn dưới đây. Ví dụ trình diễn rất dễ hiểu và người ta có thể thay đổi một cách dễ dàng trong mã. Xin vui lòng cung cấp cho chúng tôi nguồn cấp dữ liệu của bạn trở lại trên bài đăng.