#include<msp430x14x.h>
#include"BoardConfig.h"
#define Lcd_Out P4DIR=0xff
#define Lcd_0 P4DIR=0x00
#define Lcdenable_Out P3DIR |=BIT0+BIT1+BIT2;
#define Lcdenable_0 P3DIR &=~(BIT0+BIT1+BIT2)
#define Lcd_R P3OUT|=BIT0
#define Lcd_S P3OUT&=~BIT0
#define Lcd_Re P3OUT|=BIT1
#define Lcd_Wr P3OUT&=~BIT1
#define Lcd_E P3OUT|=BIT2
#define Lcd_Ne P3OUT&=~BIT2
#define delayNOP(); {_NOP();_NOP();_NOP();_NOP();};
void delayms(int ms);
uchar addr_tab[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置
};
/*******************************************************************/
/* */
/*写指令数据到LCD */
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */
/* */
/*******************************************************************/
void lcd_wcmd(uchar cmd)
{
Lcdenable_Out;
Lcd_S;
Lcd_Wr;
_NOP();
_NOP();
Lcd_Ne;
Lcd_Out;
P4OUT = cmd;
delayNOP();
Lcd_E;
delayNOP();
Lcd_Ne;
}
/*******************************************************************/
/* */
/*写显示数据到LCD */
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */
/* */
/*******************************************************************/
void lcd_wdat(uchar dat)
{
Lcdenable_Out;
Lcd_R;
Lcd_Wr;
Lcd_Ne;
Lcd_Out;
P4OUT=dat;
delayNOP();
// delayms(100);
Lcd_E;
delayNOP();
//delayms(100);
Lcd_Ne;
}
//LCD的初始化
void lcd_init()
{
BoardConfig(0x00);
BoardConfig(0x8a);//0100 1010
}
//延时程序
void delayms(int ms)
{
while(ms--)
{
uchar i;
for(i=0;i<5;i++)
{
_NOP();
_NOP();
_NOP();
}
}
}
/*********************************************************/
/* */
/* 设定显示位置 */
/*
********************************************************/
void lcd_pos(uchar x,uchar y)
{
lcd_wcmd(addr_tab[8*x+y]);
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
uchar code_dis1[] = {"A"};
uchar code_dis2[] = {"B"};
uchar code_dis3[] = {"C"};
uchar code_dis4[] = {"D"};
uchar i;
delayms(10); //延时
lcd_init(); //初始化LCD
lcd_pos(0,0); //设置显示位置为第一行的第1个字符
i = 0;
while(1)
{while(code_dis1
!= '\0')
{ //显示字符
lcd_wdat(code_dis1);
i++;
}
lcd_pos(1,0); //设置显示位置为第二行的第1个字符
i = 0;
while(code_dis2 != '\0')
{
lcd_wdat(code_dis2); //显示字符
i++;
}
lcd_pos(2,0); //设置显示位置为第三行的第1个字符
i = 0;
while(code_dis3 != '\0')
{
lcd_wdat(code_dis3); //显示字符
i++;
}
lcd_pos(3,0); //设置显示位置为第四行的第1个字符
i = 0;
while(code_dis4 != '\0')
{
lcd_wdat(code_dis4); //显示字符
i++;
}
}
}
Boardconfig()是开发板上的资源配置,在线等啊,刚学求助。。。。。。