1602液晶的控制问题

2019-07-15 15:25发布

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

有结果了吗?多加几个 NOP
dyfdaf
2楼-- · 2019-07-16 18:45
风之追逐 发表于 2015-12-17 11:41
有结果了吗?多加几个 NOP

实验了,加了延时还是无法工作

因为我用C语言写的时候也没有加任何延时,所以我觉得可能问题不出在这里

void LCDwaitready(void)
{
        unsigned char sta;
        DB = 0xff;
        RS = 0;
        RW = 1;
        do
        {
                EN = 1;
                sta = DB;
                EN = 0;
        }while(sta & 0x80);
}

这里C51 的判忙函数
风之追逐
3楼-- · 2019-07-17 00:15
 精彩回答 2  元偷偷看……
dyfdaf
4楼-- · 2019-07-17 02:40
风之追逐 发表于 2015-12-17 13:17
看你的C程序,我的理解是检测的上升沿。
所以,“按下降沿来判断操作数据”,是手册上的原话?还是你根据图形或程序,自己说的?

这个是判忙标志的时序图
捕获.JPG
风之追逐
5楼-- · 2019-07-17 04:41
dyfdaf 发表于 2015-12-17 13:29
这个是判忙标志的时序图

应该是由低到高跳变后检测 捕获.jpg
asahi
6楼-- · 2019-07-17 08:13
学习啊。 太学习了。

一周热门 更多>