打印

lcd12864 驱动问题 (弄了很久没显示,严重打击我的信心)

[复制链接]
1784|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
w3571604|  楼主 | 2008-10-5 14:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请高手看看我的程序,是程序不对还是我的液晶屏坏了,电路完全是按照说明上连胡。如果感觉没有问题的话给我个回复,谢谢!  

    我的MPU是 arm7 lpc2114,液晶屏的芯片是ST7920,采用的是I/O口进行写操作(以后还要定义同步缓冲区,所以没有设置读),并口传输数据。这是我的程序: 
#include "config.h" 
#define RS 1 < <22    //数据,指令选择引脚 

#define RSH IO0SET=RS   //选择数据 
#define RSL IO0CLR=RS  //选择指令 

#define PSB 1 < <24    //选择并口  ,这个口后来我悬空了,因为默认是高 
#define PSB_EN IO0SET =PSB 

#define E 1 < <23       //使能,高->低有效 

#define EL  IO0CLR=RS 
#define EH  IO0SET=RS 

#define RST 1 < <25      //复位 
#define RSTH IO0SET=RST 
#define RSTL IO0CLR=RST 

#define D0_D7 0xFF < <6     //用P0.6--P0.13 数据总线 
void Senddata(uint8 data)      //总控制I/O口,发送数据 

IO0CLR=0xFF < <6;IO0SET=(data&0xFF) < <6;} 
void Delay()      //由于我没有采用读忙,所以采用延时函数 

  uint8 i; 
  for(i=0;i <5000;i++); 

void DElay(uint8 j)    //大延时函数 

  uint32 i; 
  for(;j>0;j--) 
  for(i=0;i <50000;i++); 

void Wrcom(uint8 command)     //写命令函数,rs=0 

{  PSB_EN; 
  EL; 
  RSL; 
  Delay();   
  Senddata(command); 
  Delay(); 
  EH; 
  Delay(); 
  EL; 
  Delay(); 

void WrData(uint8 wrdata)  //写数据,rs=1 
{PSB_EN; 
  EL; 
  RSH; 
  Delay();   
  Senddata(wrdata); 
  Delay(); 
  EH; 
  Delay(); 
  EL; 
  Delay(); 

void LCD_int(void)   //初始化 
{  RSTL; 
  DElay(50);   
  RSTH; 
  DElay(50); 
  Wrcom(0x30);  //8位接口,基本指令集 
  DElay(50);   
  Wrcom(0x0C);  //显示开关,光标设定 
  DElay(50); 
  Wrcom(0x01);   //清屏 
  DElay(50); 
  Wrcom(0x06);   //进入设定点 
  DElay(50); 
   



  int main (void) 
{// add user source code 
  PINSEL0=0x00000000; 
  PINSEL1=0x00000000; 
  IO0DIR=RS|E|RST|PSB; 
  IO0DIR=IO0DIR|D0_D7; 
  LCD_int(); 
  Wrcom(0x80);//设定现实地址 
   
  WrData(0x41);//发送个半宽字 
   
   
   
  while(1); 
  return 0; 


由于第一次弄,所以程序有点简单,只想让它显示一个半宽字,可是没有任何字显示啊?希望高手指点,谢谢! 

相关帖子

沙发
xujl2008| | 2008-10-6 13:46 | 只看该作者

wo lai le

你的写命令函数和写数据函数里根本就没写东西进去什么显示 啊
void Wrcom(uint8 command)     //写命令函数,rs=0 

{  PSB_EN; 
  EL;                
  RSL; 
  Delay();   
  Senddata(command); 
  Delay(); 
  EH; 
  Delay(); 
  EL; 
  Delay(); 

void WrData(uint8 wrdata)  //写数据,rs=1 
{PSB_EN; 
  EL; 
  RSH; 
  Delay();   
  Senddata(wrdata); 
  Delay(); 
  EH; 
  Delay(); 
  EL; 
  Delay(); 
}

EL;                
  RSL;
EH;
你都没写内容进去呢,再说你调试通过了吗,编译通过了吗?

使用特权

评论回复
板凳
l0p0c| | 2008-10-7 10:03 | 只看该作者

如果是第一次弄,出不来是很正常的!

最主要还是要细心和耐心!
不要怕打击,不可能一下就成功的!
慢慢来!

使用特权

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

本版积分规则

11

主题

16

帖子

0

粉丝