logo

STM8 SPI驱动LCD12864

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

系统功能

  利用STM8内部的SPI通讯总线来驱动LCD12864。   

硬件设计


LCD12864电路原理图
软件设计

/*********************************************************************
微 雪 电 子 WaveShare http://www.waveShare.net
目标系统: 基于STM8单片机
应用软件: Cosmic CxSTM8
说 明: 若用于商业用途,请保留此段文字或注明代码来源
深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
*********************************************************************/
#include <stdarg.h>
#include <ws_spi.h>

void st7920LcdInit(void)
{
      u8 i;
      SPI_Init();
      delay_ms(100);
      PE_DDR|=0x20;
      PE_CR1|=0x20;
      PE_CR2|=0x20;
      sendCodeST7920(0x0c);//整体显示
      sendCodeST7920(0x01);//清屏
      sendCodeST7920(0x02);
      for(i=0;i<64;i++)
            lcd_buffer[i]=' ';
      //memset(lcd_buffer,' ',sizeof(lcd_buffer));
}

void sendCodeST7920(u8 Lcd_cmd)
{
      E_CLK
      LCD_DELAY()
      E_SET
      SPI_sendchar(0xF8);
      SPI_sendchar(Lcd_cmd & 0xF0);
      SPI_sendchar(Lcd_cmd << 4);
      LCD_DELAY()
      E_CLK
      LCD_DELAY()
}

void sendDataST7920(u8 Lcd_data)
{
      E_CLK
      LCD_DELAY()
      E_SET
      SPI_sendchar(0xFA);
      SPI_sendchar(Lcd_data & 0xF0);
      SPI_sendchar(Lcd_data << 4);
      LCD_DELAY()
      E_CLK
      LCD_DELAY()
}

STM8 SPI驱动LCD12864

——