论坛风格切换切换到宽版
  • 7633阅读
  • 35回复

请教关于4位数据线LCD1602编程的问题 [复制链接]

上一主题 下一主题
离线adsldy
发帖
1216
只看该作者 20楼 发表于: 2005-12-07
[quote=radiolee]多谢!我是en,rs,rw乱填的,呵呵。等下试试[/quote呵呵,谢谢了
离线radiolee
发帖
6050
只看该作者 21楼 发表于: 2005-12-07
'
估计不难,可能程序上有小错误。
我们不懂的问题,可能是某些人“不屑”的问题 [表情]
'


跑原版demo程序,如图,计算机cpu占用100%
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
在线BG4UVR
发帖
11284
只看该作者 22楼 发表于: 2005-12-08
经过努力,终于搞定LCM1602的4BIT模式
原来问题竟然是出在一个低级错误上了。

我写的程序是在明浩的8bit程序上改写的,问题是明浩写的这个8bit程序存在了一个潜在的大bug,在8bit时看不出来,4bit时就有问题了。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线radiolee
发帖
6050
只看该作者 23楼 发表于: 2005-12-08
建议贴个8bit和4bit的最小系统demo版!最好每句能加上注释,非常感谢!
离线radiolee
发帖
6050
只看该作者 24楼 发表于: 2005-12-08
'

我们不懂的问题,可能是某些人“不屑”的问题 [表情]
'


感谢!!                             
在线BG4UVR
发帖
11284
只看该作者 25楼 发表于: 2005-12-08
'
建议贴个8bit和4bit的最小系统demo版!最好每句能加上注释,非常感谢!
'

4bit的我在我的网页上帖出来了,请看:

http://www.bestcfan.net/blogview.asp?logid=229
离线ding
发帖
3488
只看该作者 26楼 发表于: 2005-12-08
搞得我也要学单片机了......好玩....
离线radiolee
发帖
6050
只看该作者 27楼 发表于: 2005-12-08
报告一下,在xp sp2英文版下,无论keil 8.01还是keil 7.50(uv2)在run的时候都会cpu占用100%,不知道大家的xp是不是也这样
离线adsldy
发帖
1216
只看该作者 28楼 发表于: 2005-12-09
'
4bit的我在我的网页上帖出来了,请看:
http://www.bestcfan.net/blogview.asp?logid=229
'


很遗憾,测试也没有通过,偶是pic16f877 + 1602
离线bg4ahu
发帖
304
只看该作者 29楼 发表于: 2005-12-09
'
很遗憾,测试也没有通过,偶是pic16f877 + 1602
'
人家那是51用的程序

建议你找找7rc,他的那个频率计是用4bit,16f84的,
源码也许对你有参考
只是那个源码是汇编的
离线bg1kk
发帖
168
只看该作者 30楼 发表于: 2005-12-09
'
各位老大,偶最近用c语言写一个pic16f877a向lcd送数据的程序,显示屏用的是广议电子的1602a,根据长沙的那个数据手册(老实说这个手册很烂很烂!),编写了8位数据线方式的程序,没有问题。改成4位的就不可以,不是不显示就是乱码,实在高不懂问题出在哪里?
  网上流传着多种多样的说法,比如长沙的,要求送玩前三个38h之后,就要检测忙,而别的资料说初始化过程中都不能检测忙,不知道谁说得对?试过之后好像谁说的也不多。
  很多朋友说吧初始化的38改成28,然后分两次送就行了,呵呵。。。。。这样的话偶已经看到有99遍了,那位朋友能提供一个详细的操作流程?最好能有一个经过验证的例程,谢谢啦!
  因为我是从8位方式改的,所以低四位数据线没有拆,实际上是用8位数据线,只用其中的高4位,不知道是不是这个原因?
'

我做过hc08的4bit液晶,驱动也是从8bit上移植过来的,好像是上电复位的时候要送一个专门的4bit指令,然后工作的时候就吧所有的数据全部一分为二,送两次就行了。
离线bg6qbt
发帖
7255
只看该作者 31楼 发表于: 2005-12-09
我也是编译没通过,所以不能测试LCD呢.不知道如何是好啊
'
人家那是51用的程序
建议你找找7rc,他的那个频率计是用4bit,16f84的,
源码也许对你有参考
只是那个源码是汇编的
'
build target 'target 1'
assembling 1602.asm...
c:\keil\c51\inc\reg52.h(13): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(14): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(15): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(16): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(17): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(18): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(19): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(20): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(21): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(22): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(23): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(24): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(25): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(26): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(27): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(28): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(29): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(30): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(31): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(32): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(33): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(45): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(46): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(47): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(48): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(49): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(50): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(51): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(54): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(55): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(56): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(57): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(58): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(59): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(60): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(61): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(64): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(66): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(67): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(68): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(69): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(70): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(74): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(75): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(76): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(77): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(78): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(81): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(82): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(83): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(84): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(85): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(86): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(87): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(88): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(91): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(92): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(93): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(94): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(95): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(96): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(97): error a10: attempt to define an already defined symbol
c:\keil\c51\inc\reg52.h(98): error a10: attempt to define an already defined symbol
1602.asm(40): error a9: syntax error
1602.asm(41): error a9: syntax error
1602.asm(42): error a9: syntax error
1602.asm(43): error a9: syntax error
1602.asm(44): error a9: syntax error
1602.asm(45): error a9: syntax error
1602.asm(46): error a9: syntax error
1602.asm(47): error a9: syntax error
1602.asm(48): error a9: syntax error
1602.asm(49): error a9: syntax error
1602.asm(51): error a9: syntax error
1602.asm(51): error a3: illegal character
1602.asm(51): error a3: illegal character
1602.asm(51): error a3: illegal character
1602.asm(51): error a3: illegal character
1602.asm(52): error a9: syntax error
1602.asm(52): error a3: illegal character
1602.asm(52): error a3: illegal character
1602.asm(52): error a3: illegal character
1602.asm(52): error a3: illegal character
1602.asm(53): error a9: syntax error
1602.asm(53): error a3: illegal character
1602.asm(53): error a3: illegal character
1602.asm(53): error a3: illegal character
1602.asm(53): error a3: illegal character
1602.asm(54): error a9: syntax error
1602.asm(54): error a3: illegal character
1602.asm(54): error a3: illegal character
1602.asm(54): error a3: illegal character
1602.asm(54): error a3: illegal character
1602.asm(55): error a9: syntax error
1602.asm(55): error a3: illegal character
1602.asm(55): error a3: illegal character
1602.asm(55): error a3: illegal character
1602.asm(55): error a3: illegal character
1602.asm(57): error a9: syntax error
1602.asm(58): error a9: syntax error
1602.asm(59): error a9: syntax error
1602.asm(60): error a9: syntax error
1602.asm(61): error a9: syntax error
1602.asm(63): error a9: syntax error
1602.asm(64): error a9: syntax error
1602.asm(65): error a9: syntax error
1602.asm(66): error a9: syntax error
1602.asm(67): error a9: syntax error
1602.asm(69): error a9: syntax error
1602.asm(70): error a9: syntax error
1602.asm(71): error a9: syntax error
1602.asm(74): error a9: syntax error
1602.asm(75): error a9: syntax error
1602.asm(76): error a9: syntax error
1602.asm(77): error a9: syntax error
1602.asm(78): error a9: syntax error
1602.asm(79): error a9: syntax error
1602.asm(80): error a9: syntax error
1602.asm(81): error a9: syntax error
1602.asm(82): error a9: syntax error
1602.asm(84): error a9: syntax error
1602.asm(86): error a9: syntax error
1602.asm(87): error a9: syntax error
1602.asm(88): error a9: syntax error
1602.asm(89): error a9: syntax error
1602.asm(92): error a9: syntax error
1602.asm(93): error a9: syntax error
1602.asm(94): error a21: expression with forward reference not permitted
1602.asm(94): error a45: undefined symbol (pass-2)
1602.asm(219): error a56: unbalanced if-endif controls
1602.asm(219): warning a41: missing 'end' statement
target not created
离线adsldy
发帖
1216
只看该作者 32楼 发表于: 2005-12-09
'
人家那是51用的程序
建议你找找7rc,他的那个频率计是用4bit,16f84的,
源码也许对你有参考
只是那个源码是汇编的
'


哦,我不是用它的程序,是用它的指令,他用51发什么指令,我就用pic发什么指令,但是还是通不过

他那个频率计好像不是用的1601或者1602,估计指令不兼容
在线BG4UVR
发帖
11284
只看该作者 33楼 发表于: 2005-12-09
'
build target 'target 1'
assembling 1602.asm...
c:\keil\c51\inc\reg52.h(13): error a10: attempt to define an already defined symbol
……
1602.asm(94): error a21: expression with forward reference not permitted
1602.asm(94): error a45: undefined symbol (pass-2)
1602.asm(219): error a56: unbalanced if-endif controls
1602.asm(219): warning a41: missing 'end' statement
target not created
'

我这是c源程序啊,你用asm编译当然不行了
离线adsldy
发帖
1216
只看该作者 34楼 发表于: 2006-11-15
各位老大,又有问题了,我的877+1602的程序,上电初始化过程特别长啊!
把判断忙改成延时也不行!但如果不断电的时候,把片子拿下再插上的时候,初始化就很快,估计是液晶屏上电初始化慢,搞不懂为什么?接电后得等近2分钟屏才正常,换了2个1602都一样,搞不懂啦!
离线代洪波
发帖
4809
只看该作者 35楼 发表于: 2006-11-17
'
各位老大,又有问题了,我的877+1602的程序,上电初始化过程特别长啊!
把判断忙改成延时也不行!但如果不断电的时候,把片子拿下再插上的时候,初始化就很快,估计是液晶屏上电初始化慢,搞不懂为什么?接电后得等近2分钟屏才正常,换了2个1602都一样,搞不懂啦!
'
最近我也用1602,我们探讨探讨吧!见qq