本帖最后由 shyy 于 2014-2-13 19:11 编辑
这个程序编译没问题,就是烧到
单片机后是
"
_00000/0_ 000/0000_
00000/0_0 000/_00
"
滚动显示,而且不是从右边滚进来,而是从左边滚进来
请问各位大神,这是什么原因呢?
烧了天翔单片机的例程是没有问题的,基本可以排除硬件问题。
请各位大神驻足帮忙看看,小弟[qq]540037580[/qq]感激不尽!!!
__________________________________________________________________________
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="HELLO EVERYONE!";
uchar code table1[]="WELCOME TO HERE!";
sbit lcden=P2^7;
sbit rs=P2^6;
sbit wr=P2^5;
uint num;
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void write_cmd(uchar cmd)
{
rs=0;
wr=0;
P0=cmd;
delay(90);
lcden=1;
delay(80);
lcden=0;
}
void write_dat(uchar dat)
{
rs=1;
wr=0;
P0=dat;
delay(80);
lcden=1;
delay(80);
lcden=0;
}
void ini
ti()
{
lcden=0;
write_cmd(0x38); //16*2ÏÔʾ£¬5*7µãÕó£¬8λÊý¾Ý
write_cmd(0x0c); //ÏÔʾ¿ª£¬¹Ø¹â±ê
write_cmd(0x05);
write_cmd(0x01);
}
void main()
{
initi();
write_cmd(0x80+0x10);
for(num=0;num<15;num++)
{
write_dat(table[num]);
delay(10);
}
write_cmd(0x80+0x50);
for(num=0;num<16;num++)
{
write_dat(table1[num]);
delay(10);
}
for(num=0;num<16;num++)
{
write_cmd(0x18);
delay(200);
}
while(1);
}
——————————————————————————————————————————————————————————————————————
这个程序编译没问题,就是烧到单片机后是
"
_00000/0_ 000/0000_
00000/0_0 000/_00
"
滚动显示,而且不是从右边滚进来,而是从左边滚进来
请问各位大神,这是什么原因呢?
一周热门 更多>