Bai thuc hanh LCD

Chia sẻ bởi Phạm Minh Tân | Ngày 19/03/2024 | 13

Chia sẻ tài liệu: bai thuc hanh LCD thuộc Công nghệ thông tin

Nội dung tài liệu:

Những vấn đề thảo luận.
I. Mô tả các chân của LCD.
II. Cách nối ghép LCD với 8051.
III. Các phương pháp gửi mã lệnh hoặc dữ liệu đến LCD.
IV. Bảng dữ liệu của LCD.
V . Lưu đồ thuật toán của LCD.
VI. Ví dụ.
I. Mô tả các chân của LCD.
LCD được nói trong
mục này có 14 chân, chức
năng của các chân được thể
hiện qua bảng bên. (Vị trí
của các chân được mô tả
trên bảng là cho nhiều LCD
khác nhau).

1. Chân VCC, VSS và VEE:
Các chân VCC, VSS :Cấp
dương nguồn - 5v và đất
tương ứng thì VEE được
dùng để điều khiển độ
tương phản của LCD.

Bảng 1.1: Mô tả các chân của LCD.
2.Chân chọn thanh ghi RS (Register Select).
Có hai thanh ghi rất quan trọng bên trong LCD, chân RS được dùng để
chọn các thanh ghi này như sau: Nếu RS = 0 thì thanh ghi mà lệnh được chọn
để cho phép người dùng gửi một lệnh chẳng hạn như xoá màn hình, đưa con trỏ
về đầu dòng v.v. Nếu RS = 1 thì thanh ghi dữ liệu được chọn cho phép người
dùng gửi dữ liệu cần hiển thị trên LCD.
3. Chân đọc/ ghi (R/W).
Đầu vào đọc/ ghi cho phép người dùng ghi thông tin lên LCD khi
R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1.
4. Chân cho phép E (Enable).
Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên
chân dữ liệu của nó. Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức
cao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân
dữ liêu. Xung này phải rộng tối thiểu là 450ns.
5. Chân D0 - D7:
Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên LCD hoặc đọc
nội dung của các thanh ghi trong LCD.
Để hiển thị các chữ cái và các con số, chúng ta gửi các mã ASCII của các
chữ cái từ A đến Z, a đến f và các con số từ 0 - 9 đến các chân này khi bật RS =1.
Cũng có các mã lệnh mà có thể được gửi đến LCD để xoá màn hình hoặc
đưa con trỏ về đầu dòng hoặc nhấp nháy con trỏ. Bảng 12.2 liệt kê các mã lênh.
Chúng ta cũng sử dụng RS = 0 để kiểm tra bít cờ bận để xem LCD có sẵn
sàng nhân thông tin. Cờ bận là D7 và có thể đượcđọc khi R/W = 1 và RS = 0 như
sau:
Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thì LCD bận bởi các công việc
bên trong và sẽ không nhận bất kỳ thông tin mới nào. Khi D7 = 0 thì LCD sẵn
sàng nhận thông tin mới. Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ
dữ liệu nào lên LCD.
II. Cách nối ghép LCD với 8051.
Để nối ghép LCD với 8051 ta thực hiện nối ghép như sau:
Chân P1.0 đến P1.7 được nối tới chân dữ dữ liệu D0 - D7 của LCD.
Chân P2.0 được nối tới chân RS của LCD.
Chân P2.1 được nối tới chân R/W của LCD.
Chân P2.2 được nối đến chân E của LCD.











Hình 1.2: Mô tả cách nối ghép LCD với 8051

III.Các phương pháp gửi mã lệnh hoặc dữ liệu đến LCD.
LCD và 8051 hoạt động không đồng bộ với nhau, 8051 xử lý nhanh hơn LCD, do đó sau khi ra một lệnh cho LCD, 8051 phải đợi LCD thực hiện xong lệnh trước đó mới được ra lệnh tiếp theo. Để chờ LCD thực hiện xong lệnh trước đó ta có 2 phương pháp được sử dụng để gửi mã lệnh hoặc dữ liệu đến LCD:
- Phương pháp 1: Gửi các lệnh và dữ liệu đến LCD với một độ trễ, tức là sau khi ra một lện, 8051 phải đợi một khoảng thời gian cố định, thời gian này phải dài hơn thời gian làm việc của LCD (do nhà sản xuất quy định khoảng từ 37 us đến 1,52 ms). Phương pháp này được mô tả bằng lưu đồ sau:



Lưu đồ 1 Lưu đồ 2

DBx: các chân dữ liệu từ DB7 đến DB14
- Phương pháp 2: Gửi các lệnh và dữ liệu đến LCD có kiểm tra cờ bận (ở phương pháp này ta không cần phải đặt một độ trễ lớn trong quá trình xuất dữ liệu hay ra lệnh cho LCD mà chỉ cần hiện thị cờ bận (đọc cờ bận BF thông qua chân DB7) từ LCD trước khi xuất một lệnh hoặc dữ liệu tới LCD). Phương pháp này được mô tả bằng lưu đồ bên:



Lưu ý rằng ở bất kì phương pháp nào để gửi một lệnh bất kì tới LCD ta phải đưa chân RS về 0. Đối với dữ liệu thì bật RS =1 sau đó gửi một sườn xung cao xuống thấp đến chân E để cho phép chốt dữ liệu trong LCD.


IV. Bảng dữ liệu của LCD.
Trong LCD ta có thể đặt dữ liệu vào bất cứ chỗ nào. dưới đây là các vị trí địa chỉ và
cách chúng được truy cập.






Khi AAAAAAA = 0000000 đến 0100111 cho dòng lệnh 1 và AAAAAAA = 1100111
cho dòng lệnh2. (Thể hiện ở bảng sau)










Bảng 1.3: Đánh địa chỉ cho LCD.


Dải địa chỉ cao có thể là 0100111 cho LCD. 40 ký tự trong khi đối với CLD 20 ký tự
chỉ đến 010011 (19 thập phân = 10011 nhị phân). Để ý rằng dải trên 0100111
(nhịphân) = 39 thập phân ứng với vị trí 0 đến 39 cho LCD kích thước 40 ? 2.
Từ những điều nói ở trên đây ta có thể nhận được các địa chỉ của vị trí con trỏ có
các kích thước LCD khác nhau. Chú ý rằng tất cả mọi địa chỉ đều ở dạng số Hex.
Bảng 1.4: Các địa chỉ con trỏ đối với một số LCD.








H×nh 1.3: Ph©n khe thêi gian cña LCD.
Bảng 12.4: Danh sách liệt kê các lệnh và địa chỉ lệnh của LCD.
Ghi chú:
Thời gian thực là thời gian cực đại khi tần số fcp hoặc fosc là 250KHz
Thời gian thực thay đổi khi tần số thay đổi. Khi tần số fEP hay fosc Là 270kHz thì thời gian thực hiện được tính 250/270 ? 40 = 35?s v.v.
Bảng 1.2: Các mã lệnh LCD (Mở rộng của bảng 12.4)
V. Lưu đồ thuật toán của LCD.
Lưu đồ cho 1 chương trình
chạy LCD.
Lưu đồ cho chương trình gửi mã lệnh cho LCD.
Cờ bận
= 1?
đúnge
sai
Lưu đồ cho chương trình gửi dữ liệu cho LCD.
BEGIN
KHOI TAO
VIETHOAN
GIU CHAM
XUANHOANG
GIU CHAM
END
MOV DPTR,#VIETHOAN
MOV R0,#0
LOOP1:
CJNE R0,#10,CAME1
SJMP STOP2
CAME1:
MOV A,R0
MOVC A,@A+DPTR
LCALL SENT_DATA
MOV A,#06H
LCALL SENT_COMMAN
INC R0
SJMP LOOP1
RET
LCALL DELAY
MOV DPTR,#XUANHOANG
MOV R0,#0
LOOP1:
CJNE R0,#10,CAME1
SJMP STOP2
CAME1:
MOV A,R0
MOVC A,@A+DPTR
LCALL SENT_DATA
MOV A,#06H
LCALL SENT_COMMAN
INC R0
SJMP LOOP1
RET
LCALL DELAY
BàI Tập :
Viết chương trình hiển thị tên từng thành viên nhóm 12.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Phạm Minh Tân
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)