zyyn123 发表于 2012-7-28 17:56:43

求助!!!关于Keil 2与keil 4的区别

以下这段代码我用keil 2编译之后在单片机运行时,LCD12864能正常显示(LCD12864上显示:一二三四)。可同样的代码我用Keil 4又编译之后在单片机运行时,LCD12864显示就不正常了(LCD12864显示:一二人)。不知何故?特来求助。请哪位网友给试一下,用Keil 4编译完之后能不能在你的单片机上正常显示。谢谢了。
#include<reg52.h>

#define uint unsigned int   
#define uchar unsigned char
#define IO12 P0

sbit RS12=P2^0;
sbit RW12=P2^1;
sbit E12=P2^2;
sbit REST12=P2^5;


/*****读12864忙信号*****/
void r12_busy()
{
        RS12=0;
        RW12=1;
        E12=1;
        while(IO12&0x80);
        E12=0;
}

/*****写12864指令*****/
void w12_com(unsigned char com)
{
        r12_busy();
        RS12=0;
        RW12=0;
        E12=1;
        IO12=com;//给IO12口赋指令值
        E12=0;
}

/*****写12864数据*****/
void w12_dat(unsigned char dat)
{
        r12_busy();
        RS12=1;
        RW12=0;
        E12=1;
        IO12=dat;
        E12=0;
}

/*****显示字符串*****/
void dis_str(unsigned char add,unsigned char *str,unsigned char x)
{
        unsigned char i;
        w12_com(add);
        for(i=0;i<x;i++)//循环的次数
        {
                w12_dat(*str++);//向12864写入数据
        }
}

void main()
{
        w12_com(0x30);//设置功能:8位数据
        w12_com(0x0c);//开显示,关光标(0x0e为开游标不闪烁,0x0f为开光标闪烁)
        w12_com(0x01);//清屏
                dis_str(0x80,"一二三四",8);
}

BXAK 发表于 2012-7-28 18:55:19

百度 “KEIL 0xFD补丁”,论坛也有人上传过

zyyn123 发表于 2012-7-28 21:41:43

BXAK 发表于 2012-7-28 18:55 static/image/common/back.gif
百度 “KEIL 0xFD补丁”,论坛也有人上传过

谢谢您的回复。我打了补丁之后,OK了,再次表示感谢。顺便也把补丁发上来。
从本网站下载的

568581185 发表于 2012-7-29 09:19:56

看一下,留个记号

614229816 发表于 2012-7-29 09:28:52

原来这样,我以前也遇到过这问题

dingshidong214 发表于 2012-8-5 18:15:15

之前也遇到过
页: [1]
查看完整版本: 求助!!!关于Keil 2与keil 4的区别