请高手用Keil C编写一段能在液晶屏(1602)(protel已画好单片机,用Proteus电路仿真)上显示(比如"NBA")的程
刚写了一段程序在kei中运行结果与在proteus中的结果不一样!新手刚上路!不知道自己的程序错了还是。。。。。。心里纠结啊!大侠们帮帮忙!...
刚写了一段程序在kei中运行结果与在proteus中的结果不一样!
新手刚上路!
不知道自己的程序错了还是。。。。。。
心里纠结啊!
大侠们帮帮忙! 展开
新手刚上路!
不知道自己的程序错了还是。。。。。。
心里纠结啊!
大侠们帮帮忙! 展开
展开全部
/*看看吧,如果不行,稍微调试,实在不行联系我吧!祝你早日完成*/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P2^6;//使能端
sbit lcdrs=P2^4;//数据命令端
sbit lcdrw=P2^5;//读写选择端
uchar SecondLine[]=" 自己写东西进来,如:NBA ";//他们两个用于液晶显示的数组
uchar FirstLine[]=" 同上 ";
void delay(uchar z)
{ uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void xsj(uchar sj)
{
lcden=0;
lcdrs=1;
lcdrw=0;
P0=sj;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void dw(uchar dz)
{
lcden=0;
lcdrs=0;
lcdrw=0;
P0=dz;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
/*液晶显示的准备*/
dw(0x38);
dw(0x0c);
dw(0x06);
dw(0x14);
dw(0x01);
}
main()
{uchar num;
init();
dw(0x80);
for(num=0;num<16;num++)
{ xsj(FirstLine[num]);//写入第一行字
delay(5);
}
dw(0x80+0x40);
for(num=0;num<16;num++)
{ xsj(SecondLine[num]);
delay(5);
}
}
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P2^6;//使能端
sbit lcdrs=P2^4;//数据命令端
sbit lcdrw=P2^5;//读写选择端
uchar SecondLine[]=" 自己写东西进来,如:NBA ";//他们两个用于液晶显示的数组
uchar FirstLine[]=" 同上 ";
void delay(uchar z)
{ uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void xsj(uchar sj)
{
lcden=0;
lcdrs=1;
lcdrw=0;
P0=sj;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void dw(uchar dz)
{
lcden=0;
lcdrs=0;
lcdrw=0;
P0=dz;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
/*液晶显示的准备*/
dw(0x38);
dw(0x0c);
dw(0x06);
dw(0x14);
dw(0x01);
}
main()
{uchar num;
init();
dw(0x80);
for(num=0;num<16;num++)
{ xsj(FirstLine[num]);//写入第一行字
delay(5);
}
dw(0x80+0x40);
for(num=0;num<16;num++)
{ xsj(SecondLine[num]);
delay(5);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询