单片机,STC芯片,写了一个12864lcd的文字显示程序,程序下载到芯片了,可屏幕没反应,求详解释我是新手

#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbi... #include<reg52.h>
#include<intrins.h>
#define ucharunsigned char
#define uintunsigned int
sbit rs=P2^2;
sbit rw=P2^3;
sbit en=P2^4;
sbit psb=P2^5;
/*********************************/
/* 1ms 延时程序(uchar 型) */
/*********************************/
void delay(uchar x)// 最大延时时间为250 毫秒
{
uchar i,j;
for(i=x;i>0;i--)
{
for(j=183;j>0;j--)
{
_nop_();
_nop_();
_nop_();
}
}
}
/*********************************/
/* 1ms 延时程序(uint 型) */
/*********************************/
void delayms(uintx) //最大延时时间为65536 毫秒
{
uint m,n;
for(m=x;m>0;m--)
{
for(n=123;n>0;n--)
{
_nop_();
_nop_();
_nop_();
}
}
}
/*********************************/
/* 12864 忙检测程序 */
/*********************************/
void r_busy()
{
P0=0xff;
rs=0;rw=1;
_nop_();
en=1;_nop_();_nop_();
while(P0&0x80);
en=0;
}
/*********************************/
/* 12864 写地址程序 */
/*********************************/
voidwrite_comm(uchar command)
{
r_busy();
rs=0;
rw=0;
P0=command;
delay(5);
en=1;
delay(5);
en=0;
}
/*********************************/
/* 12864 写数据程序 */
/*********************************/
voidwrite_date(uchar date)
{
r_busy();
rs=1;
rw=0;
P0=date;
delay(5);
en=1;
delay(5);
en=0;
}
void ledled_init()
{
psb=1; //选择液晶工作模式为并行传输
rw=0;
delay(5);
write_comm(0x30);//功能设定,8 位数据传输
delay(5);
write_comm(0x01);//清除显示
delay(50);
write_comm(0x06);
delay(1);
write_comm(0x0c);//整体显示
delay(10);
write_comm(0x02);//地址归位
delay(1);
}
void display(uchar*n,uchar k) //在液晶上显示
{
uchar i;
if(k==1)write_comm(0x80);
if(k==2)write_comm(0x90);
for(i=0;*n!='\0';i++)//直到字符串的结尾,跳出FOR 循环
write_date(*n++);
}
/********************************
*
*主函数
*
*********************************/
void main()
{
led_init();//液晶初始化
while(1)
{
display("你好",1); //液晶屏上显示“你好”2s 钟后,改为显示“好的”
delayms(2000);
display("好的",1);
delayms(2000);
}
}
展开
 我来答
百度网友bba5a81
2013-04-04 · TA获得超过122个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:108万
展开全部
void main()
{
//led_init();//液晶初始化
ledled_init();//这才是初始化的函数

while(1)
{
display("你好",1); //液晶屏上显示“你好”2s 钟后,改为显示“好的”
delayms(2000);
display("好的",1);
delayms(2000);
}
}
试试看吧,其实最好初始化下端口好一点
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式