1602液晶的控制问题

2019-07-15 15:25发布

按手册上说,是按下降沿来判断操作数据的在用C语言写的时候,确实如是(E = 1; E = 0)
但用汇编的时候,却只有用上升沿才可以正常工作(clr E ,  setb E)
实在是很困惑,只是用的语言不同,为什么需要完全不同的写法,或者说是理论?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
dyfdaf
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,所以单片机判定不出这是一个下降沿,等我回去实验一下

一周热门 更多>