打印
[疑难问答]

单片机学习板上用的是16个管脚的12864

[复制链接]
529|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shashaa|  楼主 | 2016-8-18 19:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机学习板上用的是16个管脚的12864,按照20个管脚的datasheet写了一段程序,但12864不起作用,是程序写的不对,还是datasheet不对,找不到16个管脚的datasheet,以下是我写的程序:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis1[]={"welcome"};
uchar code dis2[]={"2016-08-11"};

sbit lcde=P2^7;     // 使能,下降沿写数据,为1的时候读数据
sbit rd=P2^6;     //rd=0 指令,rd=1 数据
sbit wr=P2^5;     //wr=0 往lcd写,wr=1 读lcd
uchar busy,j;

void delay(uchar z)
{
    uchar x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}

void write_com(uchar com)
{
    rd=0;
    wr=0;
    lcde=0;
    delay(10);
    P0=com;
    delay(10);
    lcde=1;
    delay(10);
    lcde=0;
    delay(10);
}

void write_date(uchar date)
{
    rd=1;
    wr=0;
    lcde=0;
    delay(10);
    P0=date;
    delay(10);
    lcde=1;
    delay(10);
    lcde=0;
    delay(10);
}

uchar lcd_busy()
{
    uchar busy;
    rd=0;
    wr=1;
    lcde=1;
    delay(1);
    lcde=0;
    busy=P0&0x80;  //P0.7为BF位,得到BF位
    return busy;
}

void init()
{
//    delay(10);
//    write_com(0x38);     //数据总线为8位,显示2行
    delay(10);
    write_com(0x0c);    //显示功能开,无光标,不闪烁
    delay(10);
    write_com(0x06);    //写入后光标右移,屏幕不动
    delay(10);
    write_com(0x01);    //清屏
    delay(10);

}

void lcd_disp_pos(uchar x,y)    //显示位置函数
{
    uchar address;
    switch(x)
    {
        case 1:address=0x80+y;
            break;
        case 2:address=0x90+y;
            break;
        case 3:address=0x88+y;
            break;
        case 4:address=0x98+y;
            break;
    }
    delay(5);
    write_com(address);
}

void main()
{
    init();
    delay(10);
    lcd_disp_pos(1,2);
    j=0;
    while(dis1[j]!='\0')
    {
        delay(10);
        write_date(dis1[j]);
        j++;
    }
   
    lcd_disp_pos(2,2);
    j=0;
    while(dis2[j]!='\0')
    {
        delay(10);
        write_date(dis2[j]);
        j++;
    }
}
沙发
qiangweii| | 2016-8-18 20:00 | 只看该作者
-当你的段初始化为0xA1时,X坐标从0x10,0x04到0x18,0x04,一共128位-

使用特权

评论回复
板凳
litengg| | 2016-8-18 20:04 | 只看该作者
非常感谢,20引脚的与16引脚的,除了引脚排列不同,初始化设置等命令也不同?

使用特权

评论回复
地板
androidbus| | 2016-8-18 20:09 | 只看该作者
sbit lcde=P2^7;   这个用于使能,下降沿写数据,为1的时候读数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

1494

帖子

6

粉丝