请高手看看我的程序,是程序不对还是我的液晶屏坏了,电路完全是按照说明上连胡。如果感觉没有问题的话给我个回复,谢谢!
我的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; }
由于第一次弄,所以程序有点简单,只想让它显示一个半宽字,可是没有任何字显示啊?希望高手指点,谢谢!
|