哪位碰见过这是什么情况,STC89C52rc控制rt0802c液晶

2019-07-16 02:14发布

本帖最后由 tugboy 于 2013-3-8 02:36 编辑

做了一个控制板,用STC89C52rc控制这个RT0802a液晶,让液晶显示ICR Test,结果出来的错乱,特意大小写全部测试了一下,晕了,不知道怎么回事了。
输入ICR TEST (全大写)
0802-2.jpg

输入icr test(全小写)
0802-3.jpg

下面这张显示英文是没错了,可大小写不分了,空格还是乱码了,下面一行是特意填的0
下面把显示代码截图附上

uchar code table[]="icr test";
uchar code table1[]="00000000";
void delay(uint z)   //延时子程序(带参数子函数),

void write_com(uchar com)//液晶写指令函数
{
        rs=0;       //RS低选择,命令选择
    lcden=0;     //
    P2=com;      //
    delay(5);
    lcden=1;     //
    delay(5);
    lcden=0;   
}

void write_date(uchar date)  //液晶写数据函数
{
    rs=1;
    lcden=0;
    P2=date;
    delay(5);
    lcden=1;
    delay(5);
    lcden=0;   
}
void init()          //初始化函数
{
    uchar num;   //num数字变量
//    dula=0;      //数码管锁存端关闭
//    wela=0;
    lcden=0;
    rw=0;

    write_com(0x38);   //初始化液晶,写指令,显示模式,设置16*2显示,5*7点阵,8位数据接口
    write_com(0x0c);   //显示开关及光标设置,开显示,不显示光标,光标不闪烁
    write_com(0x06);   //每写1整屏+1
    write_com(0x01);    //屏幕清0
//    write_com(0x0e);   
    write_com(0x80);   //
    for(num=0;num<8;num++)
        {
            write_date(table[num]);//写数据,num中取数
            delay(1);
        }
    write_com(0xc0);   // 第二行起始位置定义
    for(num=0;num<8;num++)
        {
            write_date(table1[num]);
            delay(1);
        }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。