论坛风格切换切换到宽版
  • 5352阅读
  • 25回复

字符点阵型液晶模块FM1602C应用求助 [复制链接]

上一主题 下一主题
离线madswan
 
发帖
453
只看楼主 倒序阅读 0楼 发表于: 2004-11-17
我买了块16*2的液晶模块(型号fm1602c),但是没有相关资料。不知道是不是和网上应用实例很多的dm162兼容。
fm1602c为16引脚,
dm162为14引脚。

还有哪位高手有用过的一定要帮我这个新手。

qq:6670742
离线madswan
发帖
453
只看该作者 1楼 发表于: 2004-11-17
另外,有没有简单的方法测试lcd的好坏
离线bg6qbv
发帖
5837
只看该作者 2楼 发表于: 2004-11-17
'
我买了块16*2的液晶模块(型号fm1602c),但是没有相关资料。不知道是不是和网上应用实例很多的dm162兼容。
fm1602c为16引脚,
dm162为14引脚。
还有哪位高手有用过的一定要帮我这个新手。
qq:6670742
'
应该是一样的吧, 多了电源的两个引脚????
离线madswan
发帖
453
只看该作者 3楼 发表于: 2004-11-18
另外,有没有简单的方法测试lcd的好坏
离线madswan
发帖
453
只看该作者 4楼 发表于: 2004-11-18
谢谢,已经搞定,原来是对比度没有调好,呵呵
离线madswan
发帖
453
只看该作者 5楼 发表于: 2004-11-20
我在网上找到了dm-162的显示模块的应用实例
http://www.xie-gang.com/yjmk.htm
按照图连线之后,加载网页提供的程序后,怎么没有要求的显示a字符?
后来仔细看了一下程序,发现有以下几个疑惑的地方:
1.程序中“mov p1,#00111000b ;设置显示模式:8位2行5x7点阵 “,但按照前面的介绍,8位2行5x7点阵 应该为指令6:00101000b
2.我如果按照网页给的程序,则只有上面一行16个字符点亮(具体表现为每个字符的每个点都变黑,形成一个方块),而下面一排则无显示
难道是dm-162和我所用的fm1602c不兼容,虽然大家都是16*2的
这个网站给的程序也是一样的问题
http://www.51c51.com/yejin/1603.htm

还有就是delay程序是如何实现判断液晶显示器是否忙的。


请高手指教
离线bg6qbv
发帖
5837
只看该作者 6楼 发表于: 2004-11-20
'
我在网上找到了dm-162的显示模块的应用实例
http://www.xie-gang.com/yjmk.htm
按照图连线之后,加载网页提供的程序后,怎么没有要求的显示a字符?
后来仔细看了一下程序,发现有以下几个疑惑的地方:
1.程序中“mov p1,#00111000b ;设置显示模式:8位2行5x7点阵 “,但按照前面的介绍,8位2行5x7点阵 应该为指令6:00101000b
2.我如果按照网页给的程序,则只有上面一行16个字符点亮(具体表现为每个字符的每个点都变黑,形成一个方块),而下面一排则无显示
难道是dm-162和我所用的fm1602c不兼容,虽然大家都是16*2的
这个网站给的程序也是一样的问题
http://www.51c51.com/yejin/1603.htm
还有就是delay程序是如何实现判断液晶显示器是否忙的。
请高手指教
'


我是新手,才学习不久,你说的问题我碰到过!
1. 如果把#38h改成#28h的话,显示屏是四位总线方式工作!
2.的确1602显示屏有不同,例如有的支持5×7有的就不支持5×10。

那个程序我当时跑不通,后来单步调试,发现e脉冲太短,只要给个短延时就可以了。你试试!
离线madswan
发帖
453
只看该作者 7楼 发表于: 2004-11-21
'
我是新手,才学习不久,你说的问题我碰到过!
1. 如果把#38h改成#28h的话,显示屏是四位总线方式工作!
2.的确1602显示屏有不同,例如有的支持5×7有的就不支持5×10。
那个程序我当时跑不通,后来单步调试,发现e脉冲太短,只要给个短延时就可以了。你试试!
'
谢谢,刚才我把程序改了一下,果然是e脉冲不够。我在e脉冲后每个都加了一个空操作nop,现在搞定了,再次表示感谢。
我现在用的晶振是6m的,估计换成3m的,不用加空指令也可以了
第一个问题可能就是网页前面关于液晶模块关于指令6的介绍搞反了
离线madswan
发帖
453
只看该作者 8楼 发表于: 2004-11-24
再有一个问题请教:
上面网站的程序是显示一个字符的,我要想显示2个甚至更多的字符,是不是只要添以下命令:
mov p1,xxh(该字符的代码)
setb rs
clr rw
clr e
acall delay
就可以了?????
发帖
427
只看该作者 9楼 发表于: 2004-12-25
一般都是兼容的
离线bg4jj
发帖
5094
只看该作者 10楼 发表于: 2004-12-26
'
谢谢,刚才我把程序改了一下,果然是e脉冲不够。我在e脉冲后每个都加了一个空操作nop,现在搞定了,再次表示感谢。
我现在用的晶振是6m的,估计换成3m的,不用加空指令也可以了
第一个问题可能就是网页前面关于液晶模块关于指令6的介绍搞反了 [表情]
'

e脉冲是正脉冲还是负脉冲?写个完整的程序把
网页上的程序初始化部分好像不太规范
离线BD7RC
发帖
3283
只看该作者 11楼 发表于: 2004-12-31
是的。一般你定位好要显示的字符的第一个位置并显示后,第二个字符你不用定位它就自动的显示在前面那个之后,除非你重新定位。


'
再有一个问题请教:
上面网站的程序是显示一个字符的,我要想显示2个甚至更多的字符,是不是只要添以下命令:
mov p1,xxh(该字符的代码)
setb rs
clr rw
clr e
acall delay
就可以了?????
'
离线madswan
发帖
453
只看该作者 12楼 发表于: 2005-01-08
现在还有几个问题:
1.  现在单个数字显示已经搞定,但对于显示数字的2位数很疑惑,比如显示98,是不是要98/10分别得到9和余数8,然后分别显示???
2.  如果要显示大于256的数那应该怎么处理,毕竟c51单片机是8位的,最大的数值为256,大于这个值就溢出了,怎么进行加减乘除???
离线BG4UVR
发帖
11287
只看该作者 13楼 发表于: 2005-01-08
'
现在还有几个问题:
1.  现在单个数字显示已经搞定,但对于显示数字的2位数很疑惑,比如显示98,是不是要98/10分别得到9和余数8,然后分别显示???
2.  如果要显示大于256的数那应该怎么处理,毕竟c51单片机是8位的,最大的数值为256,大于这个值就溢出了,怎么进行加减乘除???
'

你送到显示器的,是ASCII码,必须在0xff以内。显示数字,比如98,你需要先把9转换成ascii码"9"送显示器显示,然后再把"8"送显示器显示。显示1000,就是分别送"1"、"0"、"0"、"0"到显示器。
离线zyf_90302
发帖
336
只看该作者 14楼 发表于: 2005-01-08
'
现在还有几个问题:
1.  现在单个数字显示已经搞定,但对于显示数字的2位数很疑惑,比如显示98,是不是要98/10分别得到9和余数8,然后分别显示???
2.  如果要显示大于256的数那应该怎么处理,毕竟c51单片机是8位的,最大的数值为256,大于这个值就溢出了,怎么进行加减乘除???
'
用双字节整数。。。。。。。。。。。。
离线madswan
发帖
453
只看该作者 15楼 发表于: 2005-01-08
楼上的朋友能不能说详细点,我还是不懂,就拿第一个问题来说,我把98拆开成9和8之后分别查表,然后送显示对吧??
但1000怎么拆开成1,0,0,0??
离线BG4UVR
发帖
11287
只看该作者 16楼 发表于: 2005-01-08
'
楼上的朋友能不能说详细点,我还是不懂,就拿第一个问题来说,我把98拆开成9和8之后分别查表,然后送显示对吧??
但1000怎么拆开成1,0,0,0??
'

编个程序来完成计算,不过我不会
离线madswan
发帖
453
只看该作者 17楼 发表于: 2005-01-08
'
编个程序来完成计算,不过我不会 [表情]
'
我显示的数字是不定的,从a/d芯片采集的数据送给单片机完成显示,所以这个数最大是5000,最小到0。
离线bg4jj
发帖
5094
只看该作者 18楼 发表于: 2005-01-10
时序的作用大于脉冲延时
我把所有的nop指令都去掉了
在12mhz得时钟下,依然运行正常!
离线madswan
发帖
453
只看该作者 19楼 发表于: 2005-01-10
'
时序的作用大于脉冲延时
我把所有的nop指令都去掉了
在12mhz得时钟下,依然运行正常!
'

那能不能把你的程序给我看看,我来比较一下,让我学习学习