我用MSP430F5438的晶片及開發板上的LCD欲做顯示
但呈現亂碼是程式有錯嗎
程式如下能幫我解答嗎?
#include "msp430x54x.h"
#include "io430.h"
#include "fuck.h"
void LCD_CMD(int cmd);
void LCD_DATA(char data1);
void LCD_init();
void Set_Register(void)
{
P10DIR|=0xFF;
P11DIR|=0xc0;
/* CLK*/
P11DIR|=0x07;
P11SEL|=0x07;
/*USC*/
P7SEL|=0x03;
UCSCTL6 &=~XT1DRIVE_3;
UCSCTL6 |=XCAP_3;
UCSCTL1 = DCORSEL_2;
UCSCTL2 =FLLD_0+60;
}
void delaymsec(int msec)
{
for(int i=0;i<500;i++)
for(int j=0;j<=msec;j++);
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
Set_Register();
delaymsec(100);
__bis_SR_register(GIE);
LCD_init();
LCD_CMD(0x80);
LCD_DATA('1');
LCD_DATA('2');
LCD_DATA('S');
LCD_DATA('T');
/*LCD_CMD(0xC0);
LCD_DATA('R');
LCD_DATA('C');
LCD_DATA('T');
LCD_DATA('1');
LCD_DATA('2');*/
while(1){}
}
void LCD_CMD(int cmd)
{
int a;
P11OUT=0x00;
for(a=0;a<50;a++);
P11OUT=0x80;
P10OUT=cmd;
for(a=0;a<50;a++);
P11OUT=0x00;
delaymsec(20);
}
void LCD_DATA(char data1)
{
int a;
P11OUT=0x40;
for(a=0;a<50;a++);
P11OUT=0xC0;
P10OUT=data1;
P11OUT=0x40;
for(a=0;a<50;a++);
}
void LCD_init()
{
LCD_CMD(0x38);
LCD_CMD(0x0C);
LCD_CMD(0x01);
LCD_CMD(0x06);
}