版權聲明:本日志所載內容的版權為本人所擁有,僅供學習目的,切勿用于商業用途。未經本人同意,不可轉載或拷貝及復制用于任何目的之用途。 嘔心瀝血兩個星期,終于成功調試完成Cortex-M3 驅動16 * 02 LCD程序。 void LCD_init(void)
//LCD初始化
{
LCD_PortConfig();
LCD_BLC_ON();
Delay_Ms(500);
LCD_write_command(0x38);
Delay_Us(50);
LCD_write_command(0x39);
Delay_Us(50);
LCD_write_command(0x14);
Delay_Us(50);
LCD_write_command(0x78);
Delay_Us(50);
LCD_write_command(0x5e);
Delay_Us(50);
LCD_write_command(0x6f);
Delay_Us(50);
LCD_write_command(0x0f);
Delay_Us(50);
LCD_write_command(0x01);
Delay_Us(50);
LCD_write_command(0x06);
Delay_Us(50);
LCD_write_command(0x01);
Delay_Ms(10);
} static void LCD_WriteDataByte( unsigned char uData )
{
unsigned long sSysclock;
unsigned char i;
sSysclock = SysCtlClockGet() / (1000000 * 3);
for( i = 0; i < 8; i++ )
{
// GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, LCDSCL );
if( uData & 0x80 )
{
GPIOPinWrite( GPIO_PORTB_BASE, LCDSDA, LCDSDA );
GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, 0 );
}
else
{
GPIOPinWrite( GPIO_PORTB_BASE, LCDSDA, 0 );
GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, 0 );
}
// 左移數據,剛好又可以做延時.
uData <<= 1;
SysCtlDelay(sSysclock);
// SysCtlDelay(sSysclock);
GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, LCDSCL );
}
GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,0);
} void LCD_write_command(unsigned char command) //寫指令
{
unsigned long sSysclock;
sSysclock = SysCtlClockGet() / (1000000 * 3);
GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,LCDCSn);
SysCtlDelay(sSysclock);
GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,0);
GPIOPinWrite( GPIO_PORTF_BASE,LCDRSn,0);
LCD_WriteDataByte( command );
// GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,LCDCSn);
} 
|