:Tập lệnh của LCD

Một phần của tài liệu (LUẬN văn THẠC sĩ) thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thở (Trang 32 - 37)

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 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ỏ đổ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 hinh 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.

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. Chi tiết sử dụng

xem bảng dưới đây:

S/ C R / L Hoạt động

0 0 Dịch vị trí con trỏ sang trái 0 1 Dịch vị trí con trỏ sang phải

1 0 Dịch toàn bộ nội dung hiển thị sang trái, con trỏ cũng dịch theo 1 1 Dịch toàn bộ nội dung hiển thị sang phải, con trỏ cũng dịch theo

Function set Mã lệnh DB x DB 7 DB 6 DB5 DB4 DB 3 DB2 DB1 DB0 DB x 0 0 0 [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 bít DB0). Khi chọn giao thức 4 bít, dữ liệu được truyền / nhận 2 lần liên tiếp, với 4 bít cao gởi/nhận trước, 4 bít thấp gởi/nhận sau. N: Thiết lập hàng hiển thị. F: Thiết lập kiểu ký tự. Set CGRA M 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 [AGG] 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.

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]

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, bạn phải kiểm tra cờ BF trước khi ghi dữ liệu vào LCD.

Khi đọc cờ BF, giá trị AC cũng được xuất ra các bit [AC]. Nó là địa chỉ của CGRAM hay DDRAM là tùy thuộc vào lệnh trước đó Write data to CGRAM or DDRAM Mã lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = [Write data]

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

Sau khi ghi, bộ đếm địa chỉ AC tự động tăng/giảm 1 tùy theo thiết lập entry mode.

Write data to CGRAM or DDRAM Mã lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = [Write data]

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

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 CGRAM or DDRAM Mã lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = [Read data]

Khi thiết lập RS=1, R/W=1, dữ liệu từ CGRAM/DDRAM được chuyển ra MPU thông qua các chân DBx. 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.

2.4. Giới thiệu về Module thời gian thực DS13307

Hình 2.9:Module thời gian thực DS13307

DS1307 là chip thời gian thực hay RTC (Read time clock). Đây là một IC tích hợp cho thời gian bởi vì tính chính xác về thời gian: Thứ, ngày,tháng, năm, giờ, phút, giây. DS1307 được chế tạo bởi Dallas. Chip này có 7 thanh ghi 8 bit mỗi thanh ghi này chứa : Thứ , ngày, tháng, năm, giờ , phút, giây. Ngoài ra DS1307 còn chứa 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống các thanh ghi này có thể dùng như là RAM. DS1307 được đọc thơng qua chuẩn truyền thơng I2C nên do đó để đọc được và ghi từ DS1307 thông qua chuẩn truyền thông này. Do nó được giao tiếp chuẩn I2C nên cấu tạo bên ngồi nó rất đơn giản. Ví dụ 1 dạng đóng vỏ của DS1307 như sau :

Trên là hai dạng cấu tạo của DS1307. Chip này có 8 chân và chúng ta hay dùng là dạng Dip và các chân nó được mơ tả như sau :

+ X1 và X2 là đầu vào dao động cho DS1307. Cần dao động thạch anh

32.768Khz.

+ Vbat là nguồn nuôi cho chip. Nguồn này từ ( 2V- 3.5V) ta lấy pin có

nguồn 3V. Đây là nguồn cho chip hoạt động liên tục khi khơng có nguồn Vcc mà DS1307 vẫn hoạt động theo thời gian

+ Vcc là nguồn cho giao tiếp I2C. Điện áp cung cấp là 5V chuẩn và được

dùng chung với vi xử lý. Nếu mà Vcc khơng có mà Vbat có thì DS1307 vẫn hoạt động bình thường nhưng mà không ghi và đọc được dữ liệu.

+ GND là nguồn Mass chung cho cả Vcc và Vbat

+ SCL và SDA là hai bus dữ liệu của DS1307. Thông tin truyền và ghi đều

được truyền qua 2 đường truyền này theo chuẩn I2C

2.4.1. Ghép nối DS1307 với vi điều khiển

Do DS1307 giao tiếp chuẩn I2C nên việc ghép nối nó với vi điều khiển khá đơn giản và theo datasheet đưa ra sơ đồ sau:

Hình 2.10: Ghép nối DS1307 với Arduino

Ds1307 chỉ giao tiếp với vi điều khiển với 2 đường truyền SCL và SDA nên do đó trên vi xử lý cần phải xác định chân nào trên vi xử lý có SCL và SDA để nối với DS1307

2.4.2. Tổ chức thanh ghi trong DS1307.

Cấu tạo bên trong của DS1307 bao gồm mạch nguồn, dao động, logic và con trỏ ,thanh ghi thực hiện việc ghi đọc. Do trong các bài toán chúng ta thường sử dụng DS1307 cho đồng hồ thời gian thực nên do đó chúng ta chỉ quan tâm đến việc ghi đọc các thanh ghi cần thiết (sec, min, hour…)

Trong bộ nhớ của DS1307 có tất cả 64 thanh ghi địa chỉ từ 0 đến 63 và được bắt đầu từ 0x00 đến 0x3F nhưng trong đó chỉ có 8 thanh ghi đầu là thanh

ghi thời gian thực nên sẽ đi sâu vào 8 thanh ghi (chức năng và địa chỉ thanh ghi thời gian thực này). Nhìn vào bảng thanh ghi trong datasheet ta sẽ thấy như sau :

Mạch ghi đọc thẻ Micro SD card

 Tương thích với cả nguồn 5V và 3.3V.  Hỗ trợ khe cắm Micro SD.

 Hỗ trợ việc ghi âm và phát lại cho lượng âm thanh lớn.

 Giao tiếp thông qua chuẩn SPI (4 Pin): MOSI, SCK, MISO và SS. Đây là các thanh ghi giữ thời gian của DS1307, chúng ta sẽ dựa vào bảng này

để đọc/ghi IC DS1307 qua I2C.

Một phần của tài liệu (LUẬN văn THẠC sĩ) thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thở (Trang 32 - 37)