求高手指点!LaunchPad点1602的LCD没有反应

2019-03-24 14:07发布

我用的是1602的屏,资料如附件;   按手册如下连接: p1.0-p1.6 连 LCD的 7-14(DB0-DB7) P2.0  连    LCD的 6脚 (EN) P2.1  连    LCD的 4脚 (RS)   无论LCD的GND和VCC连不连到Launchpad上都没有反应   代码参考常见泽兄的如下: #include <msp430g2452.h>
unsigned char table1[]="EE-LaunchPad";
unsigned char num;
void delay_1ms(void)
{
  unsigned int i;
  for (i=0;i<1140;i++);
} /*****************************************
*
* N ms延时函数
*
****************************************/
void delay_nms(unsigned int n)
{
  unsigned int i=0;
  for (i=0;i<n;i++)
    delay_1ms();
}
void write_com(unsigned int com)
{
  //lcdrs = 0;
  P2OUT&= 0xfd;     //1111 1101  P2.1为低电平
  P1OUT = com;      //    放到LCD里面的数据   
  delay_nms(5);
  //lcden = 1;
  P2OUT|= 0x01;      //0000 0001
  delay_nms(5);
  P2OUT&= 0xfe;      //1111 1110
} void write_dat(unsigned int dat)
{
  //lcdrs = 1;
  P2OUT |= 0x03;
  P1OUT = dat;
  delay_nms(5);
  //lcden=1;
  P2OUT|= 0x01;
  delay_nms(5);
  // lcden=0;
  P2OUT&= 0xfe; }
void init()
{
  write_com(0x38);      //0011 1000     1.3,1.4,1.5为输出高电平   write_com(0x0f);      //P1OUT = 0000 1111
  write_com(0x01) ;     //0000 0001
  write_com(0x06);      //0000 0110
  write_com(0x80);      //1000 0000
}
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD; // Stop WDT
  P1DIR |= 0xff; // P1.2 output: 1111 1111 P1口各位作为输出
  P2DIR |= 0xff;                //1111 1111  P2各口作为输出
  init();              
  for(num=0;num<12;num++)
  {
    write_dat(table1[num]);
    delay_nms(100);
  }
  while(1);
}   不知道问题出在哪!?求高手指点!! [ 本帖最后由 wuyanyanke 于 2012-6-18 23:25 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
wuyanyanke
2019-03-25 02:27
常见泽1兄、woaifpga兄
改过代码,也连线将RW拉底,还是没有反应!??

一周热门 更多>

相关问题

    相关文章