为什么我的12864显示会乱跳的

[复制链接]
 楼主| 乌嘴猫 发表于 2015-1-5 19:29 | 显示全部楼层 |阅读模式
我按复位键或者重新上电就会就会乱,或者刚刚上电的时候显示就不对,这是什么原因呢
#include <STC12C5A60S2.H>
#define uchar unsigned char
#define uint unsigned   int
sbit E=P2^7;
sbit RW=P2^5;
sbit RS=P2^6;
sbit PSB=P3^2;
uchar code table1 []="当前温度:";
uchar code table2 []="剩余电量:";
void write_com(uchar com);
void write_dat(uchar dat);
void lcd_inti();
void delay(uchar i)        ;                           //0.1ms
void main()
{
        uchar a,b;
        lcd_inti();
        delay(500);
        write_com(0x80);
                for(a=0;a<10;a++)
                {       
                        write_dat(table1[a]);
                        delay(10);
                }
                delay(50);
        write_com(0x90);
                for(b=0;b<10;b++)
                        {
                                 write_dat(table2);
                                 delay(10);
                        }
                while(10);
}
void write_com(uchar com)
{
        E=0;
        RS=0;
        RW=0;
        E=1;
        P0=com;
        delay(10);
        E=0;
}
void write_dat(uchar dat)
{
        E=0;
        RS=1;
        RW=0;
        E=1;
        P0=dat;
        delay(10);
        E=0;
}
void lcd_inti()
{
        delay(500);
        PSB=1;  //并口
        write_com(0x30);        //基本指令
        delay(50);
        write_com(0x0c);          //打开显示,光标关闭
        delay(50);
        write_com(0x01);        //清除LCD显示类容
        delay(50);
}
void delay(uchar i)                                   //0.1ms
{
        uchar j;
        while(i--)
                for(j=1200;j>0;j--);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
jxw82284134 发表于 2015-1-5 21:57 | 显示全部楼层
write_com(0x90);
                for(b=0;b<10;b++)
                        {
                                 write_dat(table2);
                                 delay(10);
                        }
你的table2里面的b呢。初始化a, b要赋值为0
hnkf118 发表于 2015-1-6 16:42 | 显示全部楼层
看看。学习下。
通宵敲代码 发表于 2015-1-7 00:25 | 显示全部楼层
扫屏有问题,估计是有积累误差!
 楼主| 乌嘴猫 发表于 2015-1-8 16:57 | 显示全部楼层
通宵敲代码 发表于 2015-1-7 00:25
扫屏有问题,估计是有积累误差!

谢谢回答,已经解决了。小误区
雪驹 发表于 2015-1-9 21:06 | 显示全部楼层
先写行地址再写列地址,再写数据高8位,再写数据低8位,你这里只写了一个地址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

36

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部