đồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàngđồ án gọi món ăn nhanh trong nhà hàng
Trang 1MỤC LỤC
Trang 2DANH 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,
Trang 3DANH MỤC TỪ VIẾT TẮT
1 RFID Radio FrequencyIdentification Nhận dạng qua tần số vôtuyến
2 CPU Central Processing Unit Bộ xử lý trung tâm
5 IDE Integrated DevelopmentEnvironment
Môi trường tích hợpdùng để viết Code vàphát triển ứng dụng
6 SRAM Static random-accessmemory Bộ nhớ truy cập ngẫunhiên tĩnh
Electrically ErasableProgrammable Read-Only
Memory
Bộ nhớ không mất dữliệu khi ngừng cung cấp
điện
Trang 4CHƯƠNG 1: TỔNG QUAN HỆ THỐNG 1.1 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êngthì mang cả hai đến trình cho khách Tốt nhất, bao nhiêu khách thì mang bấynhiê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ấysẵ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 đặcbiệ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ênmón nhanh hay chậm…) Đặc biệt, trên phiếu phải ghi đầy đủ các thông tin nhậnbiế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ớithiệ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ácnguyên liệu, thực phẩm mà có thể gây dị ứng cho khách để tránh,
– Ngoà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ếnthì nhân viên phục vụ có trách nhiệm giải đáp, giới thiệu cho họ
Trang 55– Sau khi tiếp nhận order thì người nhân viên xin phép lập lại order để kiểm tratí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ảothê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ânviê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 conngườ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ờigian hơn:
- Khách hàng khi vào quán sẽ phải xếp hàng ở quầy và đợi đến lượtmình gọi món Khi gọi xong khách có thể phải thnah toán trước rồi
Trang 6ra 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àngdụ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ốngnên có thể giảm thiểu số lượng nhân viên, tiết kiệm chi phí vận hànhquán Nhược điểm là sẽ khiến khách hàng phải xếp hàng chờ lâu khiquán đông khách, phục vụ có thể không rõ vị trí của khách hàngtrong trường hợp khách đông Mô hình này phù hợp với những quántrà, 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ọimón ăn Món ăn sẽ được truyền trực tiếp đến nhà bếp thông qua ứngdụ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ảichờ 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ảicài đặt thêm ứng dụng vào điện thoại của mình, gây ra bỡ ngỡ khimới sử dụng
- Cuối cùng là phương pháp mà em đang hướng tới đó là sử dụngmenu điện tử Trên mỗi bàn sẽ có menu riêng với giao diện đượcthiế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 đưalên màn hình của nhà bếp Khi chuẩn bị xong, món ăn có thể đượcnhận viên phục vụ mang đến đúng bàn khách hàng đang ngồi hoặc
Trang 77thô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 giaodiệ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í thuê 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
Trang 8CHƯƠNG 2: SƠ SỞ LÝ THUYẾT2.1 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 12bit, ba bộ đếm thời gian 16 bit chung với một bộ hẹn giờ PWM, cũng như cácgiao 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ượngtoà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ẩmSTM32F103xx hoà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 vikhá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ấtSTM32F103xx 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
Trang 99dù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 quá 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
Trang 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
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 dohãng Motorola đề xuất Đây là kiểu truyền thông Master - Slave, trong đó có 1chip Master điều phối quá trình tuyền thông và các chip Slaves được điều khiểnbởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave SPI là một cáchtruyề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 “4dâ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 (SlaveSelect) SPI viết tắt của Serial Peripheral Interface, SPI bus – Giao diện ngoại vinói tiếp, bus SPI Chuẩn SPI được phát triển bởi Motorola Đây là một chuẩn
Trang 1111đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full- duplex)tức trong cùng một thời điểm có thể xảy ra đồng thời quá 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óavớ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ủaMaster và các Slaves được nối trực tiếp với nhau MOSI - MasterOutput / Slave Input: nếu là chip Master thì đây là đường Output cònnế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 quá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 chipSlave đườ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 Slavenhưng có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vàothiết kế của người dùng
+ MISO - Mang các dữ liệu từ các thiết bị SPI về STM32
Trang 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
Cứ mỗi của xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bittrong 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 quaMaster trên đường MISO Config tín hiệu có thể đồng bộ clock theo sườn, theomứ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
Trang 13Hình 2 3 Các molel cơ bảnCự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ạngthá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) theoxung 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ạnhxuố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ệcchọ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
Trang 14Trong vi điều khiển STM32, khối SPI (Serial Peripheral Interface) đượctí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ănghiệ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ộ quá 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ởiMaster
- 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ụngtrong 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ácdạ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à
Trang 15Hình 2 5: Sơ đồ chân của LCD
Trang 162.2.3 Chức năng các chân
Trang 1717Bảng 2 1
Bảng 2 2: chức năng từng chân của LCD
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 thanhghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặcnối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” -read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanhghi 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ấpnhận khi có 1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCDchuyển vào(chấp nhận) thanh ghi bên trong nó khiphát hiện một xung (high-to-low transition) của tínhiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất raDB0-DB7 khi phát hiện cạnh lên (low-to-hightransition) ở chân E và được LCD giữ ở bus đến khinào chân E xuống mức thấp
Trang 18* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thôngqua các chân DBx.
Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCDthô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
Trang 19mã 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
(ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM này gởi ra choMPU (ở chế độ đọc) Nghĩa là, khi MPU ghi thông tin vào DR, mạch nội bêntrong chíp sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM Hoặckhi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùngRAM 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
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
Trang 201 0 Ghi vào thanh ghi DR
Bảng 2 4: Chức năng chân RS và R/W theo mục đích riêng
2.2.4.2 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ộtkhoả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 giaotiế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
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ốivới 2 vùng RAM theo kiểu rẽ nhánh Khi một địa chỉ lệnh được nạp vào thanhghi IR, thông tin được nối trực tiếp cho 2 vùng RAM nhưng việc chọn lựavù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ìnhhiển thị, bạn phải delay một khoảng tADD khoảng 4uS-5uS (ngay sau khiBF=1) trước khi nạp dữ liệu mới Xem thêm hình bên dưới
Trang 21Hì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ủaLCD
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
Trang 222.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ườidù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ữaDDRAM 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”
Trang 23Bả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
Trang 24vù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ếpvới LCD :
Trang 25* 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ệnhghi 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
Trang 26I/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.
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.
Trang 270 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
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í