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: