[8051 TUTORIAL] BÀI 9 Chương trình điều khiển LCD 16x2
Sơ đồ mạch điện:
Chương trình mẫu:
DOWNLOAD CODE+MÔ PHỎNG
(Bấm vào link đợi 5s, sau đó bấm "Skip Ad" sẽ ra link download, pass giải nén: phamtandatx)
Chương trình mẫu:
RS BIT P2.0
EN BIT P2.1
;*************************************************
;===================================
;*************************************************
ORG 000H
CLR EN ;LCD KO DUOC GIAO TIEP VDK
CALL KHOITAO_LCD
;++++++++++++++++++++++++++
MOV R0,#0
MOV DPTR,#STRING1
LOOP1:
MOV A,R0
MOVC A,@A+DPTR
CALL WRITE_DATA
INC R0
CJNE R0,#15,LOOP1
;++++++++++++++++++++++++++
MOV A,#0C0H
CALL WRITE_COMMAND ; DUA CON TRO LCD VE DAU DONG THU 2
MOV R0,#0
MOV DPTR,#STRING2
LOOP2:
MOV A,R0
MOVC A,@A+DPTR
CALL WRITE_DATA
INC R0
CJNE R0,#21,LOOP2
JMP $
;*************************************************
KHOITAO_LCD:
MOV A,#38H ;KHOI TAO HANG 1 + 2
CALL WRITE_COMMAND
MOV A,#38H ;KHOI TAO HANG 1 + 2
CALL WRITE_COMMAND
MOV A,#0CH ;BAT MAN HINH LCD
CALL WRITE_COMMAND
MOV A,#01H ;XOA MAN HINH LCD
CALL WRITE_COMMAND
RET
;*************************************************
WRITE_COMMAND:
MOV P0,A
CLR RS ;DU LIEU DUA VAO THANH GHI LENH LCD
SETB EN
CLR EN
CALL DELAY_41ms
RET
;*************************************************
WRITE_DATA:
MOV P0,A
SETB RS
SETB EN
CLR EN
CALL DELAY_100us
RET
;*************************************************
DELAY_41ms:
MOV 50H,#41
DEL:
MOV 51H,#100
DJNZ 51H,$
DJNZ 50H,DEL
RET
;*************************************************
DELAY_100us:
MOV 50H,#100
DJNZ 50H,$
RET
;*************************************************
STRING1: DB ' Welcome '
STRING2: DB ' phamtandatx'
END
DOWNLOAD CODE+MÔ PHỎNG
(Bấm vào link đợi 5s, sau đó bấm "Skip Ad" sẽ ra link download, pass giải nén: phamtandatx)
No comments