|
以下这段代码我用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);
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|