ktvxl 8c

20
1 Electrical Engineering Ghép nivi LCD TS NguynHng Quang Electrical Engineering 2 Mch hin thị LCD

Upload: ha-nguyen

Post on 10-Apr-2015

50 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: KTVXL 8c

1

1Electrical Engineering

Ghép nối với LCD

TS Nguyễn Hồng Quang

Electrical Engineering2

Mạch hiển thi LCD

Page 2: KTVXL 8c

2

Electrical Engineering3

Các loại LCD• Màn hình hiển thị tinh thể lỏng

– Tương thích với mạch HD44780(Hitachi) -KS0066U controller

– Có thể dễ dàng điều khiển các ký tự trên màn hình sửdụng các từ điều khiển

– Hiển thị mọi ký tự trong bảng ASCII– Có loại 2 x 16 , 4 x 16, 4 x 20

• Loại hiển thi đô họa (graphic-based)– Tương thích với chip Hitachi HD61202, Samsung

KS107– Kích thước 128x64 hoặc hơn nữa

Electrical Engineering4

Kết cấu phần cứng• Kết nối loại 8 bit hoặc

4 bit• Có đèn backlight hiện

thị màu nền• Lập trình cho LCD là

ví dụ về nói chuyệngiữa hai VXL vớinhau thông qua protocol xác địnhtrước

Page 3: KTVXL 8c

3

Electrical Engineering5

Mô tả chân LCD

Electrical Engineering6

Ví dụ ghép nối LCD theo địa chỉ bộ nhớ

Page 4: KTVXL 8c

4

Electrical Engineering7

DDRAM (display data RAM)

Electrical Engineering8

CGROM - Character Generator ROM

Bảng kỹ tự mã hóadạng 5x8 bit

Page 5: KTVXL 8c

5

Electrical Engineering9

Nguyên tắc điều khiển LCD• Đường EN

– Khởi động thì đặt mức 1– Sau khi kết thúc việc gửi dữ liệu thì trở về mức 0

• Đường RS– Khi RS mức 0, gửi lệnh đặc biệt, ví dụ như xóa màn

hình, trả con trỏ về đầu dòng– Khi RS mức 1, gửi dữ liệu cần hiển thị sẽ gửi vào bus

dữ liệu• Đường R/W

– Lệnh điều khiển đọc ghi– Khi R mức cao thì đọc từ LCD– Khi R mức thấp thì ghi vào LCD

Electrical Engineering10

Nguyên tắc xử lý cờ bận (busy flag)

• BF =1 khi LCD đang xử lý dữ liệu và BF = 0 khi kết thúc quá trình đó

• Để đọc cờ Busy Flag, đặt RS = 0 and R/W = 1 và bit cao nhất D7 của LCD nhận trạngthái của cờ.

• BF = 0 có nghĩa là LCD đã sẵn sàng cho nhận lệnh tiếp theo

Page 6: KTVXL 8c

6

Electrical Engineering11

Các lệnh cơ bản đối với LCD

• Thực hiện hàm cơ bản như định dạng dữliệu, loại dữ liệu …

• Đặt địa chỉ RAM trong• Truyền dữ liệu với RAM trong• Các hàm khác

Electrical Engineering12

Bảng lệnh

Page 7: KTVXL 8c

7

Electrical Engineering13

Các lệnh thông dụng

Electrical Engineering14

Lệnh reset LCD• Xóa màn hình• Hàm

– DL = 1; 8-bit interface dataN = 0; 1-line displayF = 0; 5 x 8 dot character font

• Display on/off control:D = 0; Display offC = 0; Cursor offB = 0; Blinking off

• Phụ thuộc vào nguồn với yêu cầu Ton, Toff

Page 8: KTVXL 8c

8

Electrical Engineering15

Khởi tạo LCD1) Gửi lệnh 0x30 - Using 8-bit interface2) Delay 20ms3) Gửi lệnh 0x30 - 8-bit interface4) Delay 20ms5) Gửi lệnh 0x30 - 8-bit interface6) Delay 20ms7) Gửi hàm điều khiển8) Gửi lệnh xóa màn hình9) Đặt entry mode

Electrical Engineering16

Mode nhập liệu (entry mode)

• a) I/D - Increment/Decrement bitb) S - Display shift.

• Tổ hợp 2 bit này tạo ra trạng thái lệnh0x04,0x05,0x06,0x07

• Bình thường, mode 0x06 được dùng cónghĩa là No shift và auto incremement.

Page 9: KTVXL 8c

9

Electrical Engineering17

Ví dụ sử dụng 8051

Electrical Engineering18

Đọc cờ chờ

Page 10: KTVXL 8c

10

Electrical Engineering19

Gửi lệnh tới LCD

Electrical Engineering20

Đặt vị trí con trỏ

• DDRAM bắt đầu từ địa chỉ 0x80.• Ví dụ cho 2 x 16 LCD. Địa chỉ là 0x80 - 0x8F và 0xC0 to

0xCF là nhìn thấy• Tập hợp 80 ký tự đều có thể hiển thị thông qua lệnh cuộn

LCD

Page 11: KTVXL 8c

11

Electrical Engineering21

Gửi dữ liệu ra LCD

Electrical Engineering22

Ví dụ về gửi xâu dữ liệu

Page 12: KTVXL 8c

12

Electrical Engineering23

Tạo ra ký tự riêng

• Sử dụng CGRAM để lưu trữ ký tự riêng bắt đầu từ địa chỉ 0x40

• Việc tạo ký tự hình thành bởi tập ma trận điểm 5x8

• Hàng cuối cùng dành cho hiển thị con trỏ

Electrical Engineering24

Vùng địa chỉ CGRAM

• Lệnh điều khiển được gửi tới địa chỉ tuyệtđối là địa chỉ tương đối + 0x40

Page 13: KTVXL 8c

13

Electrical Engineering25

Ví dụ phần mềm

Electrical Engineering26

LCD trong chế độ 4 bit

• Lý do chọn 4 bit để tiết kiệm số chân VXL

Page 14: KTVXL 8c

14

Electrical Engineering27

Phương pháp khởi tạo chế độ 4 bit• Trễ 20mS• Gửi lệnh (0x30)• Trễ 10mS• Gửi lệnh (0x30)• Trễ 1mS• Gửi lệnh (0x30)• Trễ 1mS• Chọn mode (0x30 - for 8-bit and 0x20 for 4-bit)• Trễ 1mS

Electrical Engineering28

Cờ busy• Trong chế độ 4bit người ta không đọc cờ

chờ vì phải đọc 2 lần 4 bit (4bit cao và 4 bit thấp).

• Thay vì đó, ta có thể trễ thời gian chờ từ300 to 600uS.

• Tùy thuộc vào loại LCD, thời gian chờ cóthể khác nhau, tuy vậy 400uS là hợp lý

Page 15: KTVXL 8c

15

Electrical Engineering29

Ví dụ về khởi tạo LCD 4bit

Electrical Engineering30

Tiếp

Page 16: KTVXL 8c

16

Electrical Engineering31

Tương tự về gửi lệnh

Electrical Engineering32

Gửi dữ liệu

Page 17: KTVXL 8c

17

Electrical Engineering33

Ví dụ sử dụng C

Electrical Engineering34

Graphical LCD – 128x64

Page 18: KTVXL 8c

18

Electrical Engineering35

Ghép nối với 8051

Electrical Engineering36

Chân tín hiệu cơ bản

Page 19: KTVXL 8c

19

Electrical Engineering37

Kết cấu trang màn hình

Electrical Engineering38

Cấu trúc chương trình

Page 20: KTVXL 8c

20

Electrical Engineering39

Ví dụ hiển thị

Electrical Engineering40

Tạo font sử dụng GLCDFontCreator2