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

đồ án gọi món ăn nhanh trong nhà hàng sử dụng esp8266

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.41 MB, 54 trang )

1

MỤC LỤC


2

DANH MỤC HÌNH ẢNH

Bảng 2. 1
Bảng 2. 2: chức năng từng chân của LCD
Bảng 2. 3: Sơ đồ khối của HD44780
Bảng 2. 4: Chức năng chân RS và R/W theo mục đích riêng
Bảng 2. 8 Bảng mã kí tự (ROM code A00)
Bảng 2. 9 Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM,
và mã kí tự.
Bảng 2. 10: Chức năng từng lệnh
Bảng 2. 11: maximum rating
Bảng 2. 12: Miền làm việc bình thường
Bảng 2. 13: bảng bus timing
Bảng 2. 14: khởi tạo LCD
Bảng 2. 15:Khởi động chế độ 4 bit


3

DANH MỤC TỪ VIẾT TẮT
STT

Từ viết tắt


Tiếng anh

Tiếng việt

1

RFID

Radio Frequency
Identification

Nhận dạng qua tần số vô
tuyến

2

CPU

Central Processing Unit

Bộ xử lý trung tâm

3

IC

Integrated circuit

Vi mạch tích hợp


4

USB

Universal serial bus

Giao tiếp USB

5

IDE

Integrated Development
Environment

Mơi trường tích hợp
dùng để viết Code và
phát triển ứng dụng

6

SRAM

Static random-access
memory

Bộ nhớ truy cập ngẫu
nhiên tĩnh

EEPROM


Electrically Erasable
Programmable Read-Only
Memory

Bộ nhớ không mất dữ
liệu khi ngừng cung cấp
điện

7


4

CHƯƠNG 1:
1.1

TỔNG QUAN HỆ THỐNG

Lý do chọn dề tài

– Khi thực khách đã ngồi vào bàn thì nhân viên lễ tân hoặc phục vụ mang thực
đơn đến cho khách. Lưu ý: nếu nhà hàng có thực đơn món ăn và đồ uống riêng
thì mang cả hai đến trình cho khách. Tốt nhất, bao nhiêu khách thì mang bấy
nhiêu thực đơn hoặc mang số lượng vừa đủ để khách xem thoải mái, hạn chế
tình trạng khách phải chờ đợi để thay phiên xem.
– Trong thời gian khách xem thực đơn, nhân viên nên chuẩn bị giấy bút, giấy
sẵn sàng để nhận order. Đây cũng là thời điểm thích hợp để nhân viên có thể gợi
ý các món ăn, đồ uống đặc sắc, nổi bật trong ngày hay những món khơng sẵn có
trong ngày, thậm chí là các chương trình khuyến mãi…

– Nếu khách đi đông hoặc cần nhiều thời gian để gọi món thì người phục vụ có
thể gợi ý khách order thức uống trước để dùng trước.
– Nhân viên tiếp nhận order từ khách và ghi chú cẩn thận lên giấy order về số
bàn, số lượng khách, tên món, số lượng món ăn, thức uống và các yêu cầu đặc
biệt của khách (như: thịt bị tái hay chín, lẩu ít cay hay cay nhiều, yêu cầu lên
món nhanh hay chậm…). Đặc biệt, trên phiếu phải ghi đầy đủ các thông tin nhận
biết cơ bản như: số bàn, tên người nhân viên thực hiện order, ngày, giờ).
– Nếu khách cần sự trợ giúp, tư vấn chọn món thì người phục vụ có thể giới
thiệu các món ăn, loại thức uống phù hợp với sở thích cũng như hỏi thăm các
nguyên liệu, thực phẩm mà có thể gây dị ứng cho khách để tránh,
– Ngồi ra, nếu khách có bất kỳ thắc mắc nào về quy trình, nguyên liệu chế biến
thì nhân viên phục vụ có trách nhiệm giải đáp, giới thiệu cho họ.


5
– Sau khi tiếp nhận order thì người nhân viên xin phép lập lại order để kiểm tra
tính chính xác và nhờ khách xác nhận.
– Người phục vụ xin phép khách thu lại thực đơn (nếu khách muốn tham khảo
thêm thì có thể để lại 1 cái), cảm ơn và chúc khách có bữa ăn ngon miệng.
– Nhân viên phục vụ tách các liên trên giấy order đưa cho thu ngân và các bộ
phận liên quan (bếp, quầy bar). Nếu tờ order có 3 liên thì liên cịn lại thì nhân
viên giữ để theo dõi.

Hình 1. 1: Phương thức gọi món ăn
Khoa học cơng nghệ phát triển cộng thêm sự sáng tạo vô hạn của con
người, các cách thức gọi món cũng trở nên phong phú và giúp tiết kiệm thời
gian hơn:
- Khách hàng khi vào quán sẽ phải xếp hàng ở quầy và đợi đến lượt
mình gọi món. Khi gọi xong khách có thể phải thnah tốn trước rồi



6
ra ngồi đợi tại bàn ăn. Các món ăn đó sẽ được gọi chuyển qua nhà
bếp thơng qua máy tính của nhà hàng và sau đó được phục vụ đưa
đến vị trí của khách. Một số sơ hình phục vụ sẽ đưa cho khách hàng
dụng cụ báo hiệu khi đồ của khách hàng xong sẽ tự phát ra tín hiệu
và kahcsh hàng phải tự phục vụ. Ưu điểm của phương thức này là
tiết kiệm được thời gian nhân viên phải đứng chờ khách gọi món ăn,
giảm khối lượng nhân viên phục vụ so với phương thức truyền thống
nên có thể giảm thiểu số lượng nhân viên, tiết kiệm chi phí vận hành
quán. Nhược điểm là sẽ khiến khách hàng phải xếp hàng chờ lâu khi
qn đơng khách, phục vụ có thể khơng rõ vị trí của khách hàng
trong trường hợp khách đơng. Mơ hình này phù hợp với những qn
trà, café vừa và nhỏ với số lượng khách hàng không quá đông.
- Phương thức tiếp theo áp dụng công nghệ là khách hàng sẽ phải sử
dụng ứng dụng của nhà hàng thơng qua smart phone của mình để gọi
món ăn. Món ăn sẽ được truyền trực tiếp đến nhà bếp thông qua ứng
dụng riêng và được mang ra cho khách hàng khi đã chuẩn bị xong.
Phương pháp này giúp các nhà hàng tiết kiệm chi phí nhân viên, tạo
ra sự nhanh chóng và thoải mái cho khách hàng khi họ khơng phải
chờ lâu để đến lượt mình được chọn món. Tuy nhiên, đó có thể là sự
bất tiện đối với những thực khách lần đầu đến vói nhà hàng khi phải
cài đặt thêm ứng dụng vào điện thoại của mình, gây ra bỡ ngỡ khi
mới sử dụng.
- Cuối cùng là phương pháp mà em đang hướng tới đó là sử dụng
menu điện tử. Trên mỗi bàn sẽ có menu riêng với giao diện được
thiết kế tùy ý, dễ sử dụng. Khách hàng đến khi ngồi vào bàn có thể tự
lựa chọn món ăn của mình. Khi chọn xong món ăn được gửi lên hệ
thống thông qua các đường truyền không dây hoặc có dây nối đưa
lên màn hình của nhà bếp. Khi chuẩn bị xong, món ăn có thể được

nhận viên phục vụ mang đến đúng bàn khách hàng đang ngồi hoặc


7
thơng báo tín hiệu ra menu để khách hàng tự phục vụ. Cách thức này
có thể gây tốn chi phí đầu tư ban đầu nhưng đổi lại nhà hàng sẽ giảm
được số lượng nhân viên hàng tháng, đồng thời có thể thay đổi giao
diện, hệ thống món ăn mà khơng cần đổi mới thiết bị.

1.2

Các đặc điểm của hệ thống

1.2.1 Ưu điểm nổi bật:
-

Giá thành rẻ dễ đầu tư vào dự án thực tế.
Tốc độ trễ cực thấp.
Khơng có độ sai mã sản phẩm trong khi gửi món ăn tới máy chủ
Khơng mất thêm phí th người về làm tiếp tân hay khách hàng mà
giờ đây được thay hết bằng hệ thống máy móc tự động

1.2.2 Điểm hạn chế:
- Hệ thống phục vụ chưa ổn định.
- Để loại bỏ khái niệm về phong cách ăn truyền thống cũng cần thời
gian và tốn kém.

1.3

Kết luận chương 1

Hiện giờ đề tài hệ thống chăm sóc thú cưng tự động giúp bảo vệ nguồn

nước, nguồn thức ăn được thay mới liên tục giúp cho chúng ta có được sự thuận
tiện và sự an nhàn.


8

CHƯƠNG 2:
2.1

SƠ SỞ LÝ THUYẾT

Vi điều kiển stm32f103c8t6

2.1.1 Lịch sử phát triển stm32f103c8t6
Dòng sản phẩm STM32F103xx [2] kết hợp lõi ARM Cortex - M3 32 bit
có hiệu suất cao hoạt động với tần số 72 MHz, bộ nhớ nhúng tốc độ cao (bộ nhớ
Flash lên đến 128 Kbytes và SRAM lên đến 20 Kbytes). Bộ chuyển đổi ADC 12
bit, ba bộ đếm thời gian 16 bit chung với một bộ hẹn giờ PWM, cũng như các
giao diện truyền thông tiêu chuẩn, hai bộ I2Cs và SPIs, ba USARTs, USB và
CAN. STM32F103xx hoạt động trong khoảng nhiệt độ − 40°C đến + 105°C, từ
nguồn cung cấp điện từ 2,0 V đến 3,6 V. Một bộ chế độ tiết kiệm năng lượng
toàn diện cho phép thiết kế các ứng dụng năng lượng thấp. Dịng sản phẩm
STM32F103xx hồn chỉnh bao gồm các thiết bị trong 4 loại gói khác nhau: từ
48 chân đến 100 chân. Tùy thuộc vào thiết bị được chọn, các bộ thiết bị ngoại vi
khác nhau được bao gồm, mô tả dưới đây cho biết tổng quan về các thiết bị
ngoại vi. Các tính năng này làm cho dịng vi điều khiển dòng hiệu suất
STM32F103xx phù hợp với nhiều ứng dụng:
+ Điều khiển động cơ và ứng dụng.

+ Thiết bị y tế và thiết bị cầm tay.
+ Các thiết bị ngoại vi máy tính cá nhân và các nền tảng GPS.
+ Các ứng dụng công nghiệp: PLC, máy in, máy in và máy quét.
+ Hệ thống báo động, Intercom video, và HVAC.
a) IC STM32F103C8T6
- ARM 32-bit Cortex M3 với clock mã là 72Mhz. - Bộ nhớ: 64 kbytes bộ nhớ Flash(bộ
nhớ lập trình). 20kbytes SRAM. - Clock, reset và quản lý nguồn. Điện áp hoạt động
2.0V → 3.6 V. Power on reset (POR), power down reset (PDR) và programmable
voltage detecor (PVD). Sử dụng thạch anh ngoài từ 4Mhz → 20Mhz. Thạch anh nội


9
dùng dao động RC ở mode 8Mhz hoặc 40Khz. 2 bộ ADC 12 bit với 9 kênh cho mỗi
bộ. Khoảng giá trị chuyển đổi từ 0 – 3.6V. Lấy mẫu nhiều kênh hoặc một kênh. Có
cảm biến nhiệt độ nội. DMA: bộ chuyển đổi này giúp tăng tốc độ xử lý do khơng có sự
can thiệp q sâu của CPU. 7 kênh DMA. Hỗ trợ DMA cho ADC, I2C, SPI, UART. - 7
timer: 3 timer 16 bit hỗ trợ các mode IC/OC/PWM.14 + timer 16 bit hỗ trợ để điều
khiển động cơ với các mode bảo vệ nhƣ ngắt input, dead-time… + watdog timer dùng
để bảo vệ và kiểm tra lỗi. 1 systick timer 24 bit đếm xuống dùng cho các ứng dụng
như hàm delay... - Hỗ trợ 9 kênh giao tiếp bao gồm: 2 bộ I2C (SMBus/PMBus). 3 bộ
USART (ISO 7816 interface, LIN, IrDA capability, modem, control). 2 SPIs
(18Mbit/s). 1 bộ CAN interface (2.0B Active). USB 2.0 full-speed interface. - kiểm tra
lỗi CRC và 96-bit ID.
b) Sơ đồ chân ICSTM32F103C8T6

Hình 2. 1: IC STM32F103C8T6
+ Thơng số kỹ thuật:
-

Loại: Mạch tích hợp (ICs).


-

Loại: STM32f1 32-bit MCU.


10
-

Bộ lõi xử lý: STM32.

-

Tần số tối đa 72MHz, tốc độ 1,25 DMIPS / MHz.

-

Bộ nhớ Flash: 64 Kbytes và 20 Kbytes của SRAM.

-

Kết nối: CAN, IrDA, LIN, SPI, I2C, UART / USART, USB.

-

Thiết bị ngoại vi: DMA, PWM, PDR, POR, PVD, WDT.

-

Số chân giao tiếp I / O: 37 chân.


-

Kích thước RAM: 20K.

-

Điện áp – Cung cấp: 2V – 3,6V.

-

2 bộ I2C.

-

3 kênh USART.

-

2 SPIs.

-

Kích thước bộ nhớ chương trình: 64KB (64K x 8).

-

Nhiệt độ hoạt động: - 40°C ~ 105°C.

-


Tích hợp thạch anh 8MHz và 32.768MHz.
Cổng JTAG tương thích với các debugger: ST-Link
c) Chuẩn giao tiếp SPI

-

SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do
hãng Motorola đề xuất. Đây là kiểu truyền thơng Master - Slave, trong đó có 1
chip Master điều phối q trình tuyền thơng và các chip Slaves được điều khiển
bởi Master vì thế truyền thơng chỉ xảy ra giữa Master và Slave. SPI là một cách
truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền
và nhận có thể xảy ra đồng thời. SPI đơi khi được gọi là chuẩn truyền thơng “4
dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO
(Master Input Slave Output), MOSI (Master Ouput Slave Input) và SS (Slave
Select). SPI viết tắt của Serial Peripheral Interface, SPI bus – Giao diện ngoại vi
nói tiếp, bus SPI. Chuẩn SPI được phát triển bởi Motorola. Đây là một chuẩn


11
đồng bộ nối tiếp để truyền dữ liệu ở chế độ song cơng tồn phần (full- duplex)
tức trong cùng một thời điểm có thể xảy ra đồng thời q trình truyền và nhận.
Đơi khi SPI cịn được gọi là chuẩn giao tiếp 4 dây (Four-wire).
- SPI là giao diện đồng bộ, bất cứ quá trình truyền nào cũng được đồng bộ hóa
với tín hiệu clock chung. Tín hiệu này sinh ra bởi master.
- Trong giao diện SPI có bốn tín hiệu số:
+ MOSI hay SI – cổng ra của bên Master ( Master Out Slave IN). Đây là

chân dành cho việc truyền tín hiệu từ thiết bị chủ động đến thiết bị bị
động.

+ MISO - Master Input / Slave Output: nếu là chip Master thì đây là

đường Input cịn nếu là chip Slave thì MISO lại là Output. MISO của
Master và các Slaves được nối trực tiếp với nhau. MOSI - Master
Output / Slave Input: nếu là chip Master thì đây là đường Output cịn
nếu là chip Slave thì MOSI là Input. MOSI của Master và các Slaves
được nối trực tiếp với nhau.
+ SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ

nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu
đến hoặc đi. Đây là điểm khác biệt với truyền thông không đồng bộ mà
chúng ta đã biết trong chuẩn UART. Sự tồn tại của chân SCK giúp q
trình tuyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao.
Xung nhịp chỉ được tạo ra bởi chip Master.
+ SS - Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip

Slave đường SS sẽ ở mức cao khi không làm việc. Nếu chip Master kéo
đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ
xảy ra giữa Master và Slave đó. Chỉ có 1 đường SS trên mỗi Slave
nhưng có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vào
thiết kế của người dùng.
+ MISO - Mang các dữ liệu từ các thiết bị SPI về STM32.


12
+ MOSI - Mang các dữ liệu từ STM32 đến các thiết bị SPI.
+ SS - Chọn thiết bị SPI cần làm việc.
+ SCK - Dòng đồng bộ .

- Đối với STM32F103VET6 các chân giao tiếp SPI Lần lượt là SS-A3; SCKC5; MOSI-C6; MISO-C7.

 Nguyên lý hoạt động:

Để bắt đầu hoạt động thì kéo chân SS xuống thấp và kích hoạt clock ở cả
Maser và Slave.

Hình 2. 2 Giản đồ xung
Giản đồ xung của vi điều khiển được trình bày hình 2.3. Mỗi chip Master
hay Slave có một thanh ghi dữ liệu 8 bits.
Cứ mỗi của xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit
trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI,
đồng thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền qua
Master trên đường MISO. Config tín hiệu có thể đồng bộ clock theo sườn, theo
mức.
Hiện tại có 4 mode cơ bản (mode 0,1,2,3) của SPI dựa vào config SCLK.
Các model cơ bản được thể hiện trong hình 2.4.


13

Hình 2. 3 Các molel cơ bản
Cực của xung giữ nhịp, phase và các chế độ hoạt động cực của xung giữ
nhịp (Clock Polarity) được gọi tắt là CPOL .Đây là khái niệm dùng chỉ trạng
thái của chân SCK ở trạng thái nghỉ.
Ở trạng thái nghỉ (Idle), chân SCK có thể được giữ ở mức cao (CPOL=1)
hoặc thấp (CPOL=0).
Phase (CPHA) dùng để chỉ cách mà dữ liệu được lấy mẫu (sample) theo
xung giữ nhịp.
Dữ liệu có thể được lấy mẫu ở cạnh lên của SCK (CPHA=0) hoặc cạnh
xuống (CPHA=1).
Sự kết hợp của SPOL và CPHA làm nên 4 chế độ hoạt động của SPI. Việc

chọn 1 trong 4 chế độ này không ảnh hưởng đến chất lượng truyền thông mà chỉ
cốt sao cho có sự tương thích giữa Master và Slave.
Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng thời nên quá trình truyền
dữ liệu này được gọi là “song công”.

 Chức năng


14
Trong vi điều khiển STM32, khối SPI (Serial Peripheral Interface) được
tích hợp sẵn bên trong và nằm trên bus truyền dữ liệu ngoại vi tối ưu để tăng
hiệu suất truyền dữ liệu và tối ưu khả năng tiêu thụ công suất.
SPI sử dụng phương thức truyền: Nối tiếp – Đồng bộ – Song công.
- Nối tiếp: truyền một bit dữ liệu trên mỗi nhịp truyền.
- Đồng bộ: có xung nhịp đồng bộ q trình truyền.
- Song cơng: cho phép gửi, nhận đồng thời.
- SPI là giao thức Master – Slave.
- Thiết bị đóng vai trị Master điều khiển xung đồng bộ (SCK).
- Tất cả các thiết bị slave bị điều khiển bởi xung đồng bộ phát ra bởi

Master.
- SPI là giao thức trao đổi dữ liệu (Data Exchange): một bit được gửi ra sẽ

có một bit khác được nhận về.
2.1.2 Ứng dụng
+ Điều khiển động cơ và ứng dụng.
+ Thiết bị y tế và thiết bị cầm tay.
+ Các thiết bị ngoại vi máy tính cá nhân và các nền tảng GPS.
+ Các ứng dụng công nghiệp: PLC, máy in, máy in và máy quét.
+ Hệ thống báo động, Intercom video, và HVAC.


2.2

LCD 16x2:

2.2.1 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à


15
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ẽ …
2.2.2 Tổng Qt Về LCD HD44780
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 LCD

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



16
2.2.3 Chức năng các chân


Chân



Mô tả

hiệu
1

17
Vss

Bảng 2. 1
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
khicủaphát
Bảng 2. 2: chức năng
từng chân
LCDhiệ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 :


18

* 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.
2.2.4 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ảng 2. 3: Sơ đồ khối của HD44780


19
2.2.4.1

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

RS

hai

chân

RS



R/W

theo


mục

đích

giao

tiếp.

R/

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ỉ ở

W

DB0-DB6


20

1
1
2.2.4.2

0

Ghi vào thanh ghi DR

1
Đọc dữ liệu từ DR
Bảng 2. 4: Chức năng chân RS và R/W theo mục đích riêng
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.
2.2.4.3

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.


21

Hình 2. 6: Giản đồ xung cập nhập A
2.2.4.4

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


22
2.2.4.5


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 2. 8: 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”.


23

Bảng 2. 5 Bảng mã kí tự (ROM code A00)
2.2.4.6

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


24

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ảng 2. 6 Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM, và
mã kí tự.

2.2.4.7

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 :


25
* 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


×