永发信息网

单片机LCD1602液晶显示的汇编程序

答案:2  悬赏:0  手机版
解决时间 2021-11-14 16:16
  • 提问者网友:精神病院里
  • 2021-11-13 22:39
单片机LCD1602液晶显示的汇编程序
最佳答案
  • 五星知识达人网友:青尢
  • 2021-11-13 23:52
也没去理解AC,只知道第一行第1点的地址是80H,第二行第1 点是C0H。
下面就是你要的程序,仅供参考
RS BIT P1.2 ;这3位是液晶屏的控制信号,连接方式由具体硬件而定
RW BIT P1.1
E BIT P1.0
ORG 00H
AJMP MAIN
ORG 30H
MAIN: 
mov R0,#24
ACALL INITIAL
ACALL DISPLAY;调用液晶显示子程序
AJMP MAIN
;-------液晶显示---------------------------------------
DISPLAY:   
MOV A,#80H  ;第一行第1 个点
ACALL WR_CMD
MOV DPTR, #LINE1
ACALL PR_STR
ACALL WR_DATA
DISP1:
MOV A,#1CH         ;字符左移命令(注:实物中左移命令字为18H)
ACALL WR_CMD
ACALL D05S
DJNZ R0,DISP1
RET
;---液晶屏初始化-------------------------------------------------
INITIAL:     
MOV A, #01H
ACALL WR_CMD
MOV A, #38H
ACALL WR_CMD
MOV A, #0CH
ACALL WR_CMD
MOV A, #06H
ACALL WR_CMD
RET
;----写液晶指令的子程序------------------------------------------
WR_CMD: 
MOV P3, A
CLR RS ;写入控制命令
CLR RW
CLR E
ACALL DELAY
SETB E
RET
;----写液晶数据---------------------------------------------
WR_DATA: 
MOV P3, A
SETB RS ;写入数据
CLR RW
CLR E
ACALL DELAY ;判断液晶模块是否忙?
SETB E
RET
;-----写行字符---------------------------------------------------------------
PR_STR:
CLR   A
MOVC A, @A+DPTR
JZ    END_PR
ACALL WR_DATA
INC   DPTR
AJMP PR_STR
END_PR:     
RET
;----查看液晶忙碌信号---------------------------------------------------------
DELAY: 
MOV P3,#0FFH ;判断液晶显示器是否忙的子程序
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P3.7,DELAY ;如果P3.7为高电平表示忙就循环等待
RET
 
;----0.5S延时(按12MHZ算)-----------------------------------------------------------------
D05S: 
MOV R6,#25
MOV R5,#100
MOV R4,#100
DJNZ R4,$
DJNZ R5,$-4
DJNZ R6,$-8
RET
;--------------------------------------------------------------------------------------
LINE1:
DB ' ZHU NI YI SHENG PING AN',00H
END
 

 
 

全部回答
  • 1楼网友:洎扰庸人
  • 2021-11-14 00:49
懂C,不是很了解汇编!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯