标题: Cortex-M3 驱动16 * 02 LCD程序 [打印本页]

作者: VincentXie    时间: 2017-6-13 08:51
标题: Cortex-M3 驱动16 * 02 LCD程序

版权声明:本日志所载内容的版权为本人所拥有,仅供学习目的,切勿用于商业用途。未经本人同意,不可转载或拷贝及复制用于任何目的之用途。

呕心沥血两个星期,终于成功调试完成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);
}








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1