打印

怎么改变LCD1602里自定义字符的显示位置呢?

[复制链接]
3363|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
89cpu|  楼主 | 2007-12-8 09:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎么改变LCD1602里自定义字符的显示位置呢?

比如显示温度标记的C和它左边的那个小圆圈:

MAIN:ACALL INIT_LCD    ;初始化
     ACALL TEMP_BJ     ;显示温标C
     ACALL STORE_DATA  ;将自定义字符存入CGRAM
     MOV A, #0CBH      ;写入显示起始地址
     ACALL WR_COMM     ;写指令
     ACALL WR_DATA     ;写数据

TEMP_BJ:MOV A,#0CBH   ;设定第二行起始地址
        ACALL WR_COMM ;写指令
        MOV DPTR,#BJ  ;存代码表
        MOV R1,#0     ;指到表中第一个码
        MOV R0,#2
    TP1:MOV A,R1
        MOVC A,@A+DPTR 
        ACALL WR_DATA ;写数据
        ……

STORE_DATA:MOV A,#40H     ;指定CGRAM起始地址
           ACALL WR_COMM  ;写指令
           MOV R2,#08H    ;图形数据长度8个字节
           MOV DPTR,#TAB  ;存代码表
           MOV R3,#00H    ;使指针指到表中第一个码
       S_D:MOV A,R3
           MOVC A,@A+DPTR ;取码
           ACALL WR_DATA  ;写数据
           ......

上面有两处出现了MOV A,#0CBH, 我的理解是:
第一个的意思是确定自定义字符(那个小圆圈)的位置;
第二个的意思是确定温标C的位置;

可是:
一.我改了其中一个后,屏上就出现了一个小圆圈,还有小圆圈和C一起的摄氏度的
   符号.怎么改变LCD1602里自定义字符的显示位置呢?
二.这个小圆圈的位置我可以改到别处,但是那个C的左边一直有一个小圆圈啊!!!
   我没设定小圆圈就在C的左边一格的啊?! 没让它们粘在一起的啊?!
三.而且,程序里没看见说让显示自定义字符啊? 是STORE_DATA子程序么?
四.MOV A,#40H   ;指定CGRAM起始地址
   这一句是怎么回事啊? 为什么是#40H呢?!

怎么回事啊? 实在是弄不懂了!真的有些晕了!请大家帮忙看一看! 
程序是网上下载来的.

谢谢!

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

184

帖子

0

粉丝