📄 我的小车lcd程序.asm
字号:
;----------------------------
;LCD.ASM TEST 8051 LCD 8 BIT
;----------------------------
RS EQU P2.5 ;LCD RS引脚定义
RW EQU P2.6 ;LCD RW引脚定义
EN EQU P2.7 ;LCD EN引脚定义
;---------------------------
ORG 0000H
AJMP MAIN
ORG 0080H
MAIN: MOV SP,#60H
CLR RS
CLR RW
CLR EN
MOV R5,#3
LCALL DELAY
LCALL DATACOM
LCALL INT_LCD ;LCD初始化
MOV R5,#3
LCALL DELAY
MOV P0,#82H ;设置LCD第一行地址
LCALL EN1
MOV R3,#13
LCALL PRINT_LCD
AJMP MAIN
;-------------------------------- 初始化LCD
INT_LCD: MOV P0,#38H ;启动8位接口指令
LCALL EN1 ;RS=0 R/W=0 D7~D4=0010
MOV P0,#38H
LCALL EN1
MOV P0,#38H ;启动8位接口指令
LCALL EN1 ;RS=0 R/W=0 D7~D4=0010
MOV P0,#38H
LCALL EN1
MOV P0,#0CH
LCALL EN1
MOV P0,#06H
LCALL EN1
MOV P0,#01H
LCALL EN1
RET
;--------------------------------初始化数据区
DATACOM: MOV 40H,#'3'
MOV 41H,#'9'
MOV 42H,#'7'
MOV 43H,#6DH
MOV 44H,#73H
MOV 45H,#20H
MOV 46H,#'5'
MOV 47H,#6BH
MOV 48H,#20H
MOV 49H,#'9'
MOV 4AH,#'0'
MOV 4BH,#73H
RET
;---------------------------------显示
PRINT_LCD: MOV R0,#40H
PRINT: MOV A,@R0
DJNZ R3,L1
RET
L1: MOV P0,A
SETB RS
LCALL EN1
CLR RS
INC R0
AJMP PRINT
;---------------------------------延时R5*0.5ms
DELAY: MOV R6,#50
D1: MOV R7,#10
D2: DJNZ R7,D2
DJNZ R6,D1
DJNZ R5,DELAY
RET
;---------------------------------短脉冲
EN1: SETB EN
LCALL DE
CLR EN
LCALL DE
RET
DE: MOV R7,#100
DE1: DJNZ R7,DE1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -