1602液晶的控制问题

2019-07-15 15:25发布

按手册上说,是按下降沿来判断操作数据的在用C语言写的时候,确实如是(E = 1; E = 0)
但用汇编的时候,却只有用上升沿才可以正常工作(clr E ,  setb E)
实在是很困惑,只是用的语言不同,为什么需要完全不同的写法,或者说是理论?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
hu524972973
1楼-- · 2019-07-15 20:35
楼主你解决了?同求
dyfdaf
2楼-- · 2019-07-16 01:58
hu524972973 发表于 2015-12-9 15:10
楼主你解决了?同求

没法通过实验解决,我汇编试了下降沿,C语言试了上升沿,都无法工作,只有我主楼说的那2种情况可以,实在是搞不懂
1522495332
3楼-- · 2019-07-16 05:45
这与使用的编程语言无关。
问题描述的很烂,没法回答。建议先学会表述问题,再提问,被人回答的概率会高一些。至少我见了会回答
数码小叶
4楼-- · 2019-07-16 10:38
 精彩回答 2  元偷偷看……
风之追逐
5楼-- · 2019-07-16 12:10
本帖最后由 风之追逐 于 2015-12-15 14:58 编辑

可能是你用的单片机速度比例程中的硬件速度快了,适当增加延时看看。(程序是建立在硬件基础上的,你不了解人家,怎样和人家正常沟通呢?)
dyfdaf
6楼-- · 2019-07-16 12:38
busy:
mov p0,#0ffh
clr rs
setb rw
clr e
nop
setb e
jb p0.7,busy
ret

这是判忙部分的程序,其他的写指令或写数据,对e都用的同样的写法

我觉得能工作的原因可能是这样的:
因为在闲暇时E始终都是置1的,所以在执行下一个指令时(写数据,写指令或判忙),会先置0,就会产生一个下降沿,就在此时LCD工作,之后又置1,恢复常态

但是这却不能解释为什么我在闲暇时E置0,在执行指令时先置1再置0无法工作的情况。有可能是因为单片机速度太快,置1之后迅速置0,电压攀升没有达到规定的高电平的数值就已经在此置0,所以单片机判定不出这是一个下降沿,等我回去实验一下

一周热门 更多>