有关12864液晶的一点疑问。。。

2019-07-15 21:07发布

现在准备用51单片机的P0口接液晶的数据口,P2口接液晶的控制口,想通过P2口整体赋值控制液晶的写指令写数据,这个写指令写数据的程序该怎么写呢?或者编程的思想是什么呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
liushuo19920327
1楼-- · 2019-07-16 02:46
 精彩回答 2  元偷偷看……
onlygxc
2楼-- · 2019-07-16 04:49
liushuo19920327 发表于 2014-1-5 22:48
你的P2口应该接的是液晶的RS、RW、E这三个控制端口,这点程序是固定的我做过一个12864万年历,你可以去看看 ...

通过位定义液晶的控制管脚这个程序没问题,我想问的是如果通过P2口整体赋值的方式控制液晶,例如:
P20-->CS1   P21-->CS2  P23-->WR  P24-->RS   P25-->E这样连接好了,如何对P2口赋值完成时序的控制?

qin854626383
3楼-- · 2019-07-16 07:36

下载看下好不好
onlygxc
4楼-- · 2019-07-16 08:37
qin854626383 发表于 2014-1-7 14:21
下载看下好不好

下载看过了,和我的要求不同。
liushuo19920327
5楼-- · 2019-07-16 10:15
onlygxc 发表于 2014-1-7 12:34
通过位定义液晶的控制管脚这个程序没问题,我想问的是如果通过P2口整体赋值的方式控制液晶,例如:
P20-- ...

void L12864B_Wait()                //判忙
{
        P0= 0xff;
        L12864_RS = 0;
        L12864_RW = 1;
        L12864_E = 1;     //读忙状态
        while((P0&0x80)==1); //等待BF不为1
        L12864_E = 0;
}

void L12864W_COM( uchar comda)       
{
        L12864B_Wait();
        L12864_RS = 0;
        L12864_RW = 0;
        P0 = comda;
        L12864_E = 1;      //写指令
        delay(2);
        L12864_E = 0;       
}
void L12864NoBusy_COM(uchar comda)
{
        L12864_RS = 0;
        L12864_RW = 0;
        P0 = comda;
        L12864_E = 1;          //写指令
        delay(2);
        L12864_E = 0;       
}
void L12864W_Data(uchar da)
{
        L12864B_Wait(); //检测忙信号
        L12864_RS = 1;
        L12864_RW = 0;
        P0 = da;
        L12864_E = 1;        //写数据
        delay(2);
        L12864_E = 0;       
}

一周热门 更多>