编一个程序,在LCD上显示汉字

编一个程序,在LCD上显示汉字,第1张

你这个问题太笼统了,你准备用在什么地方吖,控制器是什么吖,准备用哪类程序编吖,我给你一个用51单片机控制RT12864M汉字图形点阵液晶显示模块的简单程序,这个不是用C语言的,是汇编语言。
;定义 12864的地址
W_C_GLCD XDATA 0008H
W_D_GLCD XDATA 0009H
R_B_GLCD XDATA 000AH
R_D_GLCD XDATA 000BH
;LCD显示的变量定义
DATA1 DATA 20H ; 点阵显示的变量1
N DATA 21H ; 行数变量
ADDR DATA 22H ; 起始的显示位置
ADDR1 DATA 23H ; 起始的显示位置临时变量
N1 DATA 24H ; 行数的临时变量
;
;全速运行程序
ORG 0000H
BEGIN:
MOV SP, #60H ; 设置堆栈
CALL INITIAL_GLCD ; 调用LCD初试化
LOOP:
CALL GUDINGSHOW ; 固定汉字显示
LJMP LOOP;
;
;设定汉字的显示行: 第一行开始地址为00H~07H
;每行可以显示8个汉字: 第二行开始地址为10H~17H
; 第三行开始地址为08H~0FH
; 第四行开始地址为18H~1FH
;
;固定显示
GUDINGSHOW:
MOV ADDR1, #00H ; 第一行显示
MOV N1, #08H ;数量 8 个
MOV DPTR, #DHZTAB1 ; 需要显示的汉字位置
LCALL DHZ ; 调用汉字显示子程序
MOV ADDR1, #10H ; 第二行显示
MOV N1, #08H ;数量 8 个
MOV DPTR, #DHZTAB2 ; 需要显示的汉字位置
LCALL DHZ ; 调用汉字显示子程序
MOV ADDR1, #08H ; 第三行显示
MOV N1, #08 ;数量 8 个
MOV DPTR, #DHZTAB3 ; 需要显示的汉字(一个汉字占2字符)
LCALL DHZ
MOV ADDR1, #18H ; 第四行显示
MOV N1, #08H ; 数量 8 个
MOV DPTR, #DHZTAB4 ; 需要显示的汉字位置
LCALL DHZ ; 调用汉字显示子程序
RET; ;北京革新科技公司 谢谢使用
DHZTAB1: DB "北京革新科技公司";
DHZTAB2: DB "单片机教学实验议";
DHZTAB3: DB "选择实验序号: "
DHZTAB4: DB "!!!!谢谢使用!!!!";
;--------------------------------------------------------------------
;显示16X16点阵汉字
DHZ:
PUSH DPH
PUSH DPL
PUSH ACC
MOV ADDR,ADDR1 ; 开始行位置
MOV B,N1 ; 显示数量
DHZ1: MOV A,ADDR;
ORL A,#80H ; 送显示地址
LCALL COMMAND_GLCD ;调写命令子程序
DHZ2: CLR A
MOVC A,@A+DPTR ; 查找汉字的高位码
INC DPTR
LCALL WRITE_GLCD ; 送显示
CLR A
MOVC A,@A+DPTR ; 查找汉字的低位码
INC DPTR
LCALL WRITE_GLCD ; 送显示
DJNZ B,DHZ2
POP ACC
POP DPL
POP DPH
RET;
;
;将 ACC 内容,以ASC码显示
HEX_LCD:
PUSH DPH
PUSH DPL
PUSH ACC
PUSH ACC
SWAP A ;高低四位元交换
ANL A,#0FH ;留下低四位元
MOV DPTR,#ASCII_CODE ;DPTR 指到 ASCII_CODE
MOVC A,@A+DPTR ;取得 ASCII 码
CALL WRITE_GLCD ;写到 LCD
POP ACC
ANL A,#0FH ;留下低四位元
MOVC A,@A+DPTR ;取得 ASCII 码
CALL WRITE_GLCD ;写到 LCD
POP ACC
POP DPL
POP DPH
RET
ASCII_CODE: DB '0123456789ABCDEF'
;
;执行 LCD 初始化工作
INITIAL_GLCD:
PUSH ACC
MOV A,#30H ;功能设定
CALL COMMAND_GLCD
MOV A,#04H ;显示器控制:游标不显示,
CALL COMMAND_GLCD ;但是字会闪烁
MOV A,#01H ;清屏
CALL COMMAND_GLCD
MOV A,#0FH ;进入模式设定
CALL COMMAND_GLCD
POP ACC
RET
;
;检查 GLCD 忙碌标
CHKBUSY_GLCD:
PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR, #R_B_GLCD ;
CHK: MOVX A, @DPTR
JB ACC7, CHK ;
POP ACC
POP DPL
POP DPH
RET
;
;写命令到 GLCD
COMMAND_GLCD:
PUSH DPH
PUSH DPL
CALL CHKBUSY_GLCD ;检测忙碌标志BF
MOV DPTR,#W_C_GLCD
MOVX @DPTR,A
POP DPL
POP DPH
RET
;
;写资料到 GLCD
WRITE_GLCD:
PUSH DPH
PUSH DPL
CALL CHKBUSY_GLCD ;检测忙碌标志BF
MOV DPTR,#W_D_GLCD
MOVX @DPTR,A
POP DPL
POP DPH
RET
;
;清除 LCD 的显示幕
CLEAR_GLCD:
PUSH ACC
MOV A,#01H ;清除显示器
CALL COMMAND_GLCD
POP ACC
RET
END
这个液晶上显示的字就是
北京革新科技公司
单片机教学实验议
选择实验序号:
!!!!谢谢使用!!!!

以上就是关于编一个程序,在LCD上显示汉字全部的内容,包括:编一个程序,在LCD上显示汉字、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10116988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存