下面是我写的lcd程序有问题求各位指点一下

[复制链接]
 楼主| 13530865425 发表于 2012-7-14 09:31 | 显示全部楼层 |阅读模式
#include"msp430g2553.h"
#define E_SET  P2OUT|=BIT2
#define E_CLR  P2OUT^=BIT2
#define RS_SET  P2OUT|=BIT1
#define RS_CLR  P2OUT^=BIT1
#define RW_CLR  P2OUT^=BIT0
#define P1 P1OUT
void delay(volatile unsigned int t)
{
while(t--);
}
void lcd_com(unsigned char com)
{
RS_CLR;
RW_CLR;
P1=com;
delay(1);
E_SET;
E_CLR;
}
void lcd_dat(unsigned char dat)
{
RS_SET;
RW_CLR;
P1=dat;
delay(1);
E_SET;
E_CLR;
}
void lcd_init(void)
{
lcd_com(0x38);
lcd_com(0x06);
lcd_com(0x0c);
lcd_com(0x01);
}
void xiezifu(unsigned char x,unsigned char y, char *str) //写入字符串
{
if(y==0)
lcd_com(0x80+x);
else
lcd_com(0x80+0x40+x);
while(*str!='\0')
{
lcd_dat(*str);
str++;
}
}
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P2DIR|=0x07;
P1DIR|=0xff;
lcd_init();
while(1)
{
xiezifu(1,0,"123456");
xiezifu(1,1,"7890");
}
}
下载到芯片,液晶没有显示,是什么原因,求各位指导一下
ghg061 发表于 2012-7-14 09:40 | 显示全部楼层
是不是LCD初始化之后要加延时
dlyt_test001 发表于 2012-7-14 09:54 | 显示全部楼层
LCD的复位时间比你单片机长。你单片机上电后要多初始化几次LCD。
liang7143 发表于 2012-7-14 10:14 | 显示全部楼层
LZ可以先测试一下 看是不是上电后初始化LCD是否成功
在while(1)里面不停的初始化,看是否能有显示

  1. while(1)
  2. {
  3. lcd_init();
  4. xiezifu(1,0,"123456");
  5. xiezifu(1,1,"7890");
  6. //这里延时1-2s
  7. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部