[51单片机]

关于12864的一点问题

[复制链接]
1425|19
手机看帖
扫描二维码
随时随地手机跟帖
xyz549040622| | 2018-12-8 17:06 | 显示全部楼层
你这个点好像还是不对,刷新问题?用万用表一个针放在Vout和BLA接一块就好了,上原理图看看。

使用特权

评论回复
qq805838622|  楼主 | 2018-12-8 17:16 | 显示全部楼层

就这样...VDD连的+5V,电位器用的200K. IMG_20181208_171259.jpg

使用特权

评论回复
qq805838622|  楼主 | 2018-12-8 17:16 | 显示全部楼层
qq805838622 发表于 2018-12-8 17:16
就这样...VDD连的+5V,电位器用的200K.

没有原理图....

使用特权

评论回复
qq805838622|  楼主 | 2018-12-8 17:25 | 显示全部楼层
MB~HT]FD}E4%N2F%QCZY{5P.png
这是店家的引脚说明

使用特权

评论回复
雪山飞狐D| | 2018-12-8 18:02 | 显示全部楼层
qq805838622 发表于 2018-12-8 17:16
就这样...VDD连的+5V,电位器用的200K.

电位器一般是10K左右的。。。。

使用特权

评论回复
woshinamoda| | 2018-12-9 14:20 | 显示全部楼层
乱码,如果用的字库。你看看一个汉字是两位,你前面有没有加符号或者地址没有在首位

使用特权

评论回复
ningling_21| | 2018-12-9 19:48 | 显示全部楼层
明显是对比度没调好

使用特权

评论回复
qq805838622|  楼主 | 2018-12-10 07:58 | 显示全部楼层
ok,我去试试

使用特权

评论回复
qq805838622|  楼主 | 2018-12-10 08:28 | 显示全部楼层
本帖最后由 qq805838622 于 2018-12-10 08:34 编辑

好了,我拿万用表一测电位器是10k的,然后再安上就好了.....

使用特权

评论回复
qq805838622|  楼主 | 2018-12-10 08:36 | 显示全部楼层
IMG_20181210_083024.jpg
现在就剩乱码的问题了

使用特权

评论回复
梦幻泡影| | 2018-12-10 08:42 | 显示全部楼层
乱码只有一种可能,那就是时序,时钟和数据信号对不上

使用特权

评论回复
qq805838622|  楼主 | 2018-12-10 09:13 | 显示全部楼层
#include <stdio.h>
#include <math.h>
#include <reg52.h>
#include <string.h>

sbit    RS =P2^6; //注意:一定要看12864液晶模块的资料,来确定怎样操作
sbit    WRD=P2^5;
sbit    E=  P2^4;
sbit    PSB=P2^7;
sbit    RES=P2^3;
sbit     x1=P1^2;

void TransferData(char data1,bit DI);
void delayms(unsigned int n);
void delay(unsigned int m);
void lcd_mesg(unsigned char code *addr1);


//下面来定义要显示的汉字,8*4
unsigned char code IC_DAT[]={
        "世界您好!      "
        "程序初始化      "
        "                "
        "                "
};

unsigned char code IC_DAT2[]={
        "                "
        "                "
        " 天若有情天亦老 "
        " 月如无恨月常圆 "
};

void initinal(void)           //初始化,12864有要求的要写上
{
        delay(40);
        PSB=1;   //并口工作模式
        delay(1);
        RES=0; //复位
        delay(1);
        RES=1;   //复位置高
        delay(10);
        TransferData(0x30,0);
        delay(100);
        TransferData(0x30,0);
        delay(37);
        TransferData(0x08,0);
        delay(100);
        TransferData(0x10,0);
        delay(100);
        TransferData(0x0C,0);
        delay(100);
        TransferData(0x01,0);
        delay(10);
        TransferData(0x06,0);
        delay(100);
}


void main(void)            //分两屏来不断显示上面定义的IC_DAT和IC_DAT2汉字
{        x1=0;
        while(1)
        {
           initinal();//调用LCD字库初始化程序
           delay(100);
           lcd_mesg(IC_DAT);
           delayms(240);                   //延时程序必要的,长与短,自己调节
           delayms(240);
       
           initinal();
           delay(100);
           lcd_mesg(IC_DAT2);
           delayms(240);
           delayms(240);
        }
}


void lcd_mesg(unsigned char code *addr1)   //显示汉字函数,8*4=32
{
        unsigned char i;
        TransferData(0x80,0);
        delay(100);
        for(i=0;i<32;i++)
           {
            TransferData(*addr1,1);
            addr1++;
           }
           TransferData(0x90,0);
           delay(100);
           for(i=32;i<64;i++)
           {
            TransferData(*addr1,1);
            addr1++;
           }
}
   
void TransferData(char data1,bit DI) //传送数据或是命令,当DI=0时,传送命令,当DI=1时,传送数据
{
        WRD=0;
        RS=DI;
        delay(1);
        P0=data1;
        E=1;
        delay(1);
        E=0;
}
void delayms(unsigned int n)    //延时子程序
{
        unsigned int i,j;
        for(i=0;i<n;i++)
        for(j=0;j<2000;j++);
}
void delay(unsigned int m)
        {
                unsigned int i,j;
                for(i=0;i<m;i++)
                for(j=0;j<10;j++);
        }
这是从网上抄来的程序,

使用特权

评论回复
qq805838622|  楼主 | 2018-12-10 09:14 | 显示全部楼层
IMG_20181210_083026.jpg 这是第一个图片, IMG_20181210_083024.jpg 这是第二个.....

使用特权

评论回复
df_flying| | 2018-12-10 14:49 | 显示全部楼层
8楼应该是正解,这玩意又不是RGB,字符都过去了,通信当然OK了。建议换个可调电阻调一下,确认下对比度。

使用特权

评论回复
qq805838622|  楼主 | 2018-12-10 15:02 | 显示全部楼层
现在改用串口程序就好了.....晕了

使用特权

评论回复
qq805838622|  楼主 | 2018-12-15 14:34 | 显示全部楼层
现在想从1302中读取时间,结果出来是65;85;85;85;85;85五。就星期是对的,年月日时分秒都不对啊

使用特权

评论回复
qq805838622|  楼主 | 2018-12-17 14:39 | 显示全部楼层
IMG_20181217_140006.jpg 通电先显示这个,然后 IMG_20181217_140022.jpg 怎么办啊

使用特权

评论回复
enderman1| | 2018-12-21 14:36 | 显示全部楼层
在12864中写入数据之前,要写读出12864当前数据,然后对当前数据以及要写入数据进行操作;另外,记得每次写入数据时要检测12864是否忙碌;按照这两点再检查一下程序吧

使用特权

评论回复
qq805838622|  楼主 | 2018-12-21 16:54 | 显示全部楼层
写了个检测忙碌的函数,这回彻底不显示了

使用特权

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

本版积分规则

个人签名:LoveKimbora4ever,金宝罗是我老婆

8

主题

99

帖子

2

粉丝