MAÏCH ÑIEÀU KHIEÅN LCD MAÏCH ÑIEÀU KHIEÅN LCD

Một phần của tài liệu vi xử lý hệ thống điều khiển lcd (Trang 32 - 35)

MAÏCH ÑIEÀU KHIEÅN LCD MAÏCH ÑIEÀU KHIEÅN LCD MAÏCH ÑIEÀU KHIEÅN LCD

D 7 1 4 D 6 1 3 D 5 1 2 D 4 1 1 D 3 1 0 D 2 9 D 1 8 D 0 7 E 6 R W 5 R S 4 V S S 1 V D D 2 V E E 3 LCD1

ALPHANUMERIC LCD 16 CHAR x 2 LINE

RV1

10K+5V +5V

Bài 4: Chương trình điều khiển LCD hiển thị dòng chữ “> KHOA DIEN TU <” và 8 ký tự người dùng tạo ra (ký tự không được thiết kế sẵn trên LCD) trên hai dòng của màn hình LCD. (ký tự không được thiết kế sẵn trên LCD) trên hai dòng của màn hình LCD.

1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.

;***************************************************

;CHUONG TRINH DIEU KHIEN LCD HIEN THI 2 DONG CHU DUNG YEN ;DONG THU NHAT HIEN THI "> KHOA DIEN TU <"

;DONG THU HAI HIEN THI CAC KY TU DO NGUOI SU DUNG TAO RA (8 KY TU) ;***************************************************

;RS -> P0.0, RW -> P0.1, E -> P0.2 ;DATA BUS -> PORT 1

;*************************************************** EN BIT P0.2 RW BIT P0.1 RS BIT P0.0 DATABUS EQU P1 ;*************************************************** ORG 00H MAIN:

ACALL LCDINIT ;KHOI TAO LCD

ACALL CGRAM ;DINH NGHIA (THIET KE) CAC KIEU KY TU NGUOI DUNG ACALL DISP_FLINE ;HIEN THI DONG 1

ACALL DISP_SLINE ;HIEN THI DONG 2 SJMP $

;*************************************************** LCDINIT: ;CTC KHOI TAO LCD

CLR RS ;RS = 0 - GUI LENH

CLR RW ;RW = 0 - WRITE LCD MODE

SETB EN ;E = 1 - ENABLE

MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD

Bài 4: Chương trình điều khiển LCD hiển thị dòng chữ “> KHOA DIEN TU <” và 8 ký tự người dùng tạo ra (ký tự không được thiết kế sẵn trên LCD) trên hai dòng của màn hình LCD. (ký tự không được thiết kế sẵn trên LCD) trên hai dòng của màn hình LCD.

MOV TL0,#LOW(-4100)

ACALL DELAY ;DELAY 4.1MS

MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD

MOV TH0,#HIGH(-100) MOV TL0,#LOW(-100)

ACALL DELAY ;DELAY 100US

MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD

MOV DATABUS,#0CH ;CODE = 0CH - CHO PHEP LCD HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD

MOV DATABUS,#01H ;CODE = 01H - XOA LCD ACALL SENDCOMMAND ;GUI LENH RA LCD

MOV DATABUS,#06H ;CODE = 06H - TU TANG DIA CHI HIEN THI, TAT DICH CHUYEN HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD

RET

;***************************************************

SENDCOMMAND: ;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD

CLR RS ;RS = 0 - GUI LENH

SJMP PULSE_EN SENDDATA:

SETB RS ;RS = 1 - GUI DU LIEU

NOP

PULSE_EN: ;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD

CLR RW ;RW = 0 - WRITE LCD MODE

CLR EN ;EN = 0

NOP

SETB EN ;EN = 1 - XUNG ENABLE

NOP

;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;*************************************************************

;MOV TH0,#HIGH(-1000) ;DOAN LENH NAY DUOC THAY THE CHO DOAN LENH KIEM TRA DUOI DAY

;MOV TL0,#LOW(-1000) ;KHI CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW

;ACALL DELAY

;*************************************************************

MOV DATABUS,#0FFH ;CAU HINH PORT 1 CHO CHE DO PORT NHAP

SETB RW ;RW = 1 - READ LCD MODE

CLR RS ;RS = 0 - GUI LENH

CLR EN ;EN = 0

NOP

SETB EN ;EN = 1 - XUNG ENABLE

NOP

BUSY: ;BUSY = 0 -> HOAN TAT, BUSY = 1 -> DANG THUC HIEN MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY ;KIEM TRA CO BUSY BUSY2: ;KIEM TRA CO BAO BAN (BUSY FLAG) LAN THU HAI

MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY2 ;KIEM TRA CO BUSY LAN 2

CLR RW ;RW = 0 - WRITE LCD MODE

;************************************************************* RET

;***************************************************

CGRAM: ;CTC DAT DIA CHI BAT DAU CUA BO NHO CGRAM (VUNG NHO CHUA CAC KY TU DO NGUOI SU DUNG TAO RA). MOV DATABUS,#40H ;CODE = 40H - DAT CGRAM CO DIA CHI BAT DAU LA 00H

ACALL SENDCOMMAND ;GUI LENH RA LCD

MOV DPTR,#CGRAM_DATA ;NAP DIA CHI VUNG DU LIEU CUA CAC KY TU DO NGUOI DUNG THIET KE RA. ACALL WRITE ;GUI VUNG DU LIEU SANG LCD

RET

;***************************************************

DISP_FLINE: ;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD

MOV DPTR,#FLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD

RET

;***************************************************

DISP_SLINE: ;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM MOV DATABUS,#0C0H ;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H ACALL SENDCOMMAND ;GUI LENH RA LCD

Bài 4: Chương trình điều khiển LCD hiển thị dòng chữ “> KHOA DIEN TU <” và 8 ký tự người dùng tạo ra (ký tự không được thiết kế sẵn trên LCD) trên hai dòng của màn hình LCD. (ký tự không được thiết kế sẵn trên LCD) trên hai dòng của màn hình LCD.

MOV DPTR,#SLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 2 CUA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD

RET

;***************************************************

WRITE: ;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H

MOV A,#0 ;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR

MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU

CJNE A,#99H,WRITE_CONT ;KIEM TRA LAY HET DU LIEU TRONG VUNG DU LIEU - 99H RET

WRITE_CONT: ;KHONG PHAI LA DU LIEU KET THUC - CHUA LAY HET DU LIEU MOV DATABUS,A ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD

ACALL SENDDATA ;GUI DU LIEU RA LCD

INC DPTR ;CHUYEN SANG DU LIEU KE TIEP SJMP WRITE ;QUAY TRO VE DE GUI DU LIEU KE TIEP ;*************************************************** DELAY: MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET ;*************************************************** FLINE_DATA: ;DU LIEU HIEN THI DONG 1

DB '> KHOA DIEN TU <'

DB 99H ;MA KET THUC DONG (TU CHON) SLINE_DATA: ;DU LIEU HIEN THI DONG 2

DB 00H,01H,02H,03H,04H,05H,06H,07H

DB 99H ;MA KET THUC DONG (TU CHON)

CGRAM_DATA: ;DU LIEU HIEN THI CAC KY TU DAC BIET (DO NGUOI SU DUNG TU QUI DINH) FONT1:

DB 0AH,15H,11H,11H,0AH,04H,00H,00H ;HINH TRAI TIM XUOI. FONT2:

DB 04H,0AH,11H,11H,15H,0AH,00H,00H ;HINH TRAI TIM NGUOC. FONT3:

DB 04H,0EH,15H,04H,04H,04H,04H,00H ;HINH MUI TEN HUONG LEN. FONT4:

DB 04H,04H,04H,04H,15H,0EH,04H,00H ;HINH MUI TEN HUONG XUONG. FONT5:

DB 18H,18H,1FH,1FH,1FH,18H,18H,00H ;HINH CHU T NAM NGANG. FONT6:

DB 1FH,1FH,03H,03H,03H,1FH,1FH,00H ;HINH CHU U NAM NGANG. FONT7:

DB 0AH,15H,0AH,15H,0AH,15H,0AH,00H ;HINH CARO 1. FONT8:

DB 15H,0AH,15H,0AH,15H,0AH,15H,00H ;HINH CARÒ 2. DB 99H ;MA KET THUC (TU CHON)

END

1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên. 2 Bài tập: 2 Bài tập:

Một phần của tài liệu vi xử lý hệ thống điều khiển lcd (Trang 32 - 35)

Tải bản đầy đủ (PDF)

(35 trang)