文号
t32212
阅读
6047
回复
10
收藏
7
关于12864液晶编程问题
2011/02/17
IP:浙江
这几天在搞12864液晶模块带字库,我使用汇编。在网上看了很多资料,很多都是在查表处的表格中书写直接的汉字如下
HZ: DB  '我爱单片机'
但是这样的数据表格汇编后显示:  I 0000I  
    
我直接在表格内输入12864液晶说明书上的十六进制代码如:
HZ: DB  0B0H ,0D0H, 0B0H ,0D1H, 0B0H ,0D2H,0B0H ,0D3H,0B0H ,0D4H  
汇编后显示正常,是对应的汉字
请问为什么第一种方法不行啊。
15年11个月前IP:未同步
282756
1楼
我觉得是编译器的问题
引用
评论
15年11个月前IP:未同步
282757
2楼
回 1楼(我说要有光) 的帖子
呃。。应该是 没用某个头文件吧
引用
评论
15年11个月前IP:未同步
282793
3楼
编译器问题
引用
评论
15年11个月前IP:未同步
282852
4楼
也可能是源码保存格式不对,通常而言。。。液晶屏里的字库应该不会是UTF8的。。。

所以LZ应该把源码的保存格式换成GBK
引用
评论
15年11个月前IP:未同步
282873
5楼
在表格中输入的字符和数字都能正确显示,那么如果是汇编格式问题的话该如何解决啊。我用的是KEIL汇编软件。
引用
评论
15年11个月前IP:未同步
290195
6楼
12864带字库汇编遇到问题
程序如下,显示不正确,表格中汉字不能显示,出现IOOOOOOI,字符可以YUN DA,如果数字的话也正常
;*******************************
;下列为LCD主程序
;*******************************
LCD_CSH:MOV A,#30H   开显示,初始化
    LCALL SEND_ZL
    MOV A,#30H   开显示
    LCALL SEND_ZL
    MOV A,#01H  
    LCALL SEND_ZL
    MOV A,#06H  
    LCALL SEND_ZL
    MOV A,#0CH  
    LCALL SEND_ZL
    
;*******************************
;      汉字显示程序
;*******************************
LCD:MOV A,#90H
LCALL SEND_ZL
    MOV R2,#10H
MOV DPTR,#HZ
LCD1:CLR A
MOVC A,@A+DPTR
INC DPTR
LCALL SEND_SJ   ;;发送汉字
DJNZ R2,LCD1
LJMP LCD

;       ;
;*********************************
;        发送指令       ;
;*********************************
SEND_ZL[s:10]CALL BUSY   ;;检测是否忙
  CLR RS     准备
  CLR RW     ;
  MOV P0,A    送数据到总线
  SETB E     ;
  NOP      
  NOP      ;
  NOP      
  NOP      
  CLR E     ;传送
        
  RET      
;;
;*********************************
;        发送数据       ;
;*********************************        
SEND_SJ[s:10]CALL BUSY     检测是否忙
  SETB RS     ;;检测是否忙
  CLR RW   ;
  MOV P0,A  ;送数据到总线
  SETB E    
  NOP     ;
  NOP     ;
  NOP    
  NOP    
  CLR E   ;;传送
       ;;
  RET     ;
;
;*********************************
;        查询是否忙       ;
;*********************************
BUSY:MOV P0,#0FFH    送P0为高电平
  CLR   RS     准备
  SETB  RW     ;准备读内部状态
  SETB  E     ;读取内部状态
  JB  P0.7,$   ;检测是否空闲
  CLR E     ;恢复使能端

  RET            

HZ: DB   ' 我爱电子 YUN DAO'
引用
评论
15年11个月前IP:未同步
282905
7楼
汇编...........尔等只能围观。C的话还能秋秋
引用
评论
15年9个月前IP:未同步
290147
8楼
12864至今没能点亮的路过。
先检查发的命令是否都对,然后用仿真器看运行是否符合要求。
“汉字显示程序”这里,MOV R2,#10H是给12864发字模数据么?如果是字模数据,应该是MOV R2,#32才对(每次读1字节,循环32次,得到1*8*32=256的点阵数据)。这块屏已经带字库了应该不需要了吧。
引用
评论
15年9个月前IP:未同步
290150
9楼
这不是编译器问题。
LZ应该写成双引号的形式:
HZ: DB  "我爱单片机"
汇编的语法是这么规定的。
引用
评论
15年9个月前IP:未同步
290266
10楼
带字库的显示屏,应该跟编码没关系,是你汉字的地址搞错了吧。。。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的