yczhang的笔记 https://passport2.21ic.com/?435073 [收藏] [复制] [RSS]

日志

液晶模块JHD529的汇编程序的编写

已有 805 次阅读2010-9-9 12:07 |系统分类:单片机| 液晶模块, JHD529, 汇编程序

昨天,我开始给一液晶模块JHD529写程序.按照我的经验,液晶模块厂家给的资料通常只是大概写一些模块尺寸,模块引脚,供电情况等一些参数,他们给的资料通常都很不详细.如果想给此模块写与之通信单片机的程序,最好是看液晶模块的控制器的资料手册。可是控制器的资料通常都是英文的,我现在要看的ST7920也不例外。真是搞不懂台湾的IC公司提供的资料为什么只有英文而没有中文的!所以我开始就看ST7920的数据手册。


在读了三分之一的ST7920的数据手册后,忽然感觉这资料有些亲切感。仔细一想,原来我以前看过类似资料的,唉,记性真是不好。我以前用过青云创新的一个液晶模块,用的也是ST7920的控制器。青云创新的液晶模块资料还是要详细一些的。但当时我用青云创新液晶模块时,我是用C语言写的代码,而我现在是想用汇编来写代码,所以需要将以前的C语言转换成汇编语言。


本来觉着将C代码翻译成汇编代码不是很费事,结果也让我搞了半天。(幸亏我可以用C代码将液晶模块点亮,这样省的我写汇编代码不成功时去查硬件)。起先是在循环里只用CLR SCLK,而忘了用SETB SCLK,后来发现“清显示”指令后的延时不够,还有液晶模块的初始化指令也没写好。但是在把这些地方都做好之后,我还是不能写出让淮晶屏点亮的程序来。这时,我只好无奈的对程序进行软件仿真,但是也没有仿真出错误。不过这时我发现了自己写的一条语句:MOV  SDI,ACC.7。我怎么看着这条语句有点怪怪的呢?这条语句有问题吧?我用伟福软件在编译程序时明明没出现错误啊?然后我去拿单片机的书看了一下单片机的指令,果然51单片机里没有mov bit,bit这种格式的指令,位变量的MOV指令都是要跟C相关的。这下好了,我把这个地方改好之后,就可以给液晶模块写出字来了!!


通过这次调试,要记住的是51单片机里没有MOV BIT,BIT这种格式的指令,且伟福也编译不出错误来。当然这说明调试程序一定要认真,要有足够的耐心去寻找错误。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)