请大家看看这个程序哪里有问题,1602液晶驱动的

2019-03-24 10:00发布

#include<msp430g2553.h>
#define uint unsigned int
#define uchar unsigned char

uchar table[]={"hell0"};//输入你想要显示的字符
void init();
void write_com(uchar com);//写指令函数
void write_data(uchar dat);//写数据函数
void LCD_display();//显示函数
void delay()
{
  int z;
  for(z=500;z>0;z--);
}
//P2.2e  P2.41RW P2.0RS
void init()//初始化函数
{
P2OUT &= ~BIT2;
P2OUT &= ~BIT1;
write_com(0x38);   //设置显示,点阵,数据接口等
delay();
write_com(0x38);
delay();
write_com(0x38);
write_com(0x0c);   //开显示,不显示光标,光标不闪烁
delay();
write_com(0x06);   //指针自动加一
delay();
write_com(0x01);   //数据指针、显示清零
delay();
//write_com(0x08);  //从第一格开始显示
}
/*LCD指令*///P2.2e  P2.41RW P2.0RS
void write_com(uchar com)
{
P2OUT&= ~BIT0;//写指令的时候RS给低
P2OUT&= ~BIT1;
P1OUT=com;
delay();
P2OUT|= BIT2;//EN给一个高脉冲
delay();
P2OUT&= ~BIT2;

}
/*LCD数据*///P2.2e  P2.41RW P2.0RS
void write_data(uchar dat)
{
P2OUT|=BIT0;//写数据的时候RS给高
P2OUT&= ~BIT1;
delay();
P1OUT=dat;
delay();
P2OUT|=BIT2;;//EN给一个高脉冲
delay();
P2OUT&=~BIT2;
}
void LCD_display()
{
   int i;

  for(i=0;i<5;i++)//X代表字符的个数
  {
    write_data(table);
    delay();
  }
}

void main()
{
  WDTCTL=WDTPW+WDTHOLD;//关看门狗
  //BCSCTL2=SELM_3;//选择时钟源为MCLK
  //P1SEL&=0x00;//P1为I/O模式
  P1DIR|=0xff;//选择P1为输出端
  P2DIR|=0xff;//P2为输出端
  //P1REN=0xFF;
  //P2REN=0xFF;
  P1OUT = 0x00;
  P2OUT = 0x00;
  init();
  delay();
  LCD_display();
  while(1);
}

我看了一遍觉得没有问题啊,为啥液晶不显示 IMG_0946.JPG

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
huaiqiao
2019-03-25 07:00
 精彩回答 2  元偷偷看……0人看过

一周热门 更多>

相关问题

    相关文章