首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ST7920LCD求救

ST7920LCD求救


现在正在对一块ST7920的LCD进行编程,可是程序烧写后,无论如何,LCD都没有反应,只有背光,下面是与LCD相关的程序,请各位高人帮忙指点迷津,谢谢。

#define StartLCMData PORTA |= 0X10
#define StopLCMData PORTA &= 0XEF
#define LCMParaMode PORTF |= 0X20
#define LCMInstruction PORTF &= 0XF7
#define LCMData PORTF |= 0X08
#define LCMWrite PORTF &= 0XEF
#define LCMRead PORTF |= 0X10
#define StartResetLCM PORTF &= 0XBF
#define StopResetLCM PORTF |= 0X40

void InitializeLCM(void)
{
unsigned int i = 0;

StartResetLCM;
for(i=0;i<=400;i++)
{
Delay();
}
StopResetLCM;
Delay();

DisableLatch;

LCMParaMode;
LCMWriteCommand(0X30); //功能设定
LCMWriteCommand(0X30); //根据ST7920手册,再次功能设定
LCMWriteCommand(0X02); //位址归位
LCMWriteCommand(0X0C); //显示状态设定
LCMWriteCommand(0X01); //清屏
LCMWriteCommand(0X06); //进入点设定
LCMWriteCommand(0X80); //设定DDRAM地址

return;
}

void LCMWriteCommand(unsigned char command)
{
unsigned int i;

LCMInstruction;
LCMWrite;
StartLCMData;
PORTB = command;

Delay();

if((0x01 == portb)&&(0x00 == portg))
{
for(i=0;i<=20;i++)
{
Delay();
}
}

StopLCMData;
return;
}

void LCMWriteData(unsigned char data)
{
LCMData;
LCMWrite;

PORTB = data;
StartLCMData;
Delay();
StopLCMData;
return;
}

void main()
{
InitializeLCM();
LCMWriteData(0x41); //显示"A"
while(1)
{;}
}
返回列表