找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2851|回复: 0
收起左侧

51单片机液晶显示汉字汇编程序

[复制链接]
ID:564281 发表于 2019-6-18 08:38 来自手机 | 显示全部楼层 |阅读模式
实验名称
LCD显示汉字
实验目的
用LCD 和8051显示任意汉字
实验原理
LCD显示汉字
LCD元器件:

引脚说明:VCC:电源
                  CV:液晶显示器对比度调整端
                  GND:电源接地
                  E:使能端,下降沿有效,对RS和DATA进行取样和执行操作
                            RS:数据命令选择端,高电平:数据;低电平:指令。
                  RW:读写。高电平:读;低电平:写。
                  D7-D0:输入数据或指令。
由P1口把信号传送到D7-D0。
当E使能端由高电平跳成低电平时,LCD执行命令。
由P3.4、P3.5接LCD的控制引脚RS和RW,输送指令。
其中01H代表清空显示;RS高、RW低,代表写入D7-D0的数据;RS高、RW高,代表读出D7-D0的数据;
液晶显示模块需要在执行每一个指令之前要确认忙标志为低电平。否则指令失效。
显示字符要先输入地址。
实验步骤
初始化控制使能信号,使LCD工作。
设置总线方式,清屏
设置显示方式
取一个数并显示
延时
若没有显示完16个字符,则继续4步,否则结束程序。
实验代码

ORG 0000H                        ;程序初始地址
RS  EQU  P3.3                ;赋值操作,初始化控制接口
RW  EQU  P3.4
E   EQU  P3.5
COM EQU  20H                ;命令字暂存单元
CLR RS                                ;复位控制接口
CLR RW
MOV P1,#30H                        ;向LCD写入3条30H指令,使之复位
MOV R7,#03H
INT: SETB  E
        CLR E
        ACALL DELAY                        ;调用延时程序
        DJNZ  R7,INT
        MOV   P1,#38H                ;设置8位数据总线方式
        SETB  E                                ;控制使能端,产生下降沿
        CLR   E
        MOV   COM,#01H                ;清空屏幕指令01H
        ACALL PR1                        ;调用写指令程序
        MOV   COM,#06H                ;设置输入方式:AC+1计数,光标右移一个字符
        ACALL PR1                        ;调用写指令程序
        MOV   COM,#0FH                ;设置显示方式:开显示,光标显示,闪烁
        ACALL PR1                        ;调用写指令程序
        MOV   R6,#16H                ;用R6作为字符计数器,即满16个字符即停止
        MOV   DPTR,#DATA1        ;调用DATA表中的字符
        MOV   R4,#0                        ;由R4作为指针
DISPLY:
        ACALL DELAY                        ;调用判断忙程序
        MOV   A,R4                        ;将表中要显示的字符取到A中
        MOVC  A,@A+DPTR
        SETB  RS                                ;RS高,RW低,代表要写入数据
        CLR   RW
        MOV   P1,A                        ;将字符输出到P1口
        SETB  E                                ;控制使能端,执行指令
        CLR   E
        INC   R4                                ;指针下移,指向下一个字符
        DJNZ  R6,DISPLY                 ;只有显示完16个字符即可退出
        SJMP  $                                ;循环,直至出现中断
PR1:                                                ;写指令程序
        ACALL DELAY                        ;调用延时/判断忙程序
        CLR   RW                        ;设置读写接口为低电平,即进行写操作
        MOV   P1,COM                ;将命令字暂存的COM值赋给P1接口,实现输出
        SETB  E                                ;控制使能端,执行指令
        CLR   E
        RET
DELAY:MOV   R1,#04H                ;延时程序
DLY1:DJNZ  R1,DLY1
        RET
DATA1: DB 0C6H
       DB 0FAH        ;要写入的字符
END


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表