打印

请教12864液晶的问题

[复制链接]
933|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lbb_1112|  楼主 | 2014-4-9 21:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机控制st7920的液晶,无查忙信号用延时代替的,不接液晶的各控制口都有波型,一接液晶就全都是高电平了。背光和辉度有,求教可能的问题在哪?AT89S52直接接液晶的,P0做数据端,P1三个端口做RS,RW,E,并口选择直接接高。

相关帖子

沙发
ningling_21| | 2014-4-9 21:23 | 只看该作者
先确定硬件没有问题后,再查程序...

使用特权

评论回复
板凳
lbb_1112|  楼主 | 2014-4-9 21:35 | 只看该作者
本帖最后由 lbb_1112 于 2014-4-10 08:58 编辑

两块液晶,都出现这个问题,我把程序简化了只有写一个地址和一个数据也是不行,连接检查了几边。还有只接单片机的时候电流比加液晶的时候电流小了,不知道怎么回事、、、、
程序:
#include "Reg52.h"
#include "intrins.h"
#define uint  unsigned int
#define uchar unsigned char
sbit rs = P1^4;   //H=data; L=command;
sbit rw = P1^5;   //H=read; L=write;
sbit  e = P1^6;   //input enable;
#define LCD_Data P0


void delay(uint        a )

{
uchar i;
while(--a)
{
for(i=0;i<125;i++) ;
}
}



void wu(uchar dat)
{
rs=1;
rw=0;
e=0;
delay(2);
LCD_Data=dat;
delay(2);
e=1;
delay(5);
e=0;
delay(5);
}

void wc(uchar  udat)
{
rs=0;
rw=0;
e=0;
delay(2);
LCD_Data=udat;
delay(2);
e=1;
delay(5);
e=0;
delay(5);}

void init_lcd (void)
{
//rst=1;
// psb=1;
  wc (0x30);  /*30---基本指令动作*/   
  wc (0x01);  /*清屏,地址指针指向00H*/
  wc (0x06);  /*光标的移动方向*/
  wc(0x0c);  /*开显示,关游标*/
  }

void clrram (void)
{
  wc (0x01);
  wc(0x34);
  wc(0x30);
}

void main()
{ char i;

init_lcd();
  clrram();
//  wc(0x80);
while (1)
{for (i=0;i<9;i++)
  {wc(0x80+i);
  wd(0x31+i);
   }
  }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

54

帖子

1

粉丝