微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > LCD5110液晶屏显示

LCD5110液晶屏显示

时间:10-02 整理:3721RD 点击:

    有了一块功能丰富的开发板后,如果缺少一个显示装置会是一件很憋手的事,为此打算为NUC472开发板配上一个显示器。经探索I2C接口的OLED屏和SPI接口的TFT屏都未如愿,只有LCD5110屏的显示比较成功,其显示效果如图所示。


显示效果图


       LCD5110屏还是比较好用的,且大家也多在用。为了减少连线,这里采用的方法是直接将LCD5110屏插入开发板的插排上,以使LCD5110屏的引脚与NUC472建立如下的连接:

2.GND--GND    3.SCE--PD0    4.RESET--PD1     5.D/C--PD2    6.-SDIN--PD3

7.SCLK--PD6    8.LED--PD7


      由于Vref引脚无法提供3.3V的LCD5110供电电源,无奈只好飞了一条电源线以使LCD5110工作。

      为使LCD5110正常工作,对所连接的引脚进行的高低电平输出定义如下:


#define  SetLCD_CS_High()                  PD0 = 1;

#define  SetLCD_CS_Low()                  PD0 = 0;


#define  SetLCD_RST_High()           PD1 = 1;

#define  SetLCD_RST_Low()           PD1 = 0;


#define  SetLCD_DC_High()                  PD2 = 1;

#define  SetLCD_DC_Low()                  PD2 = 0;


#define  SetLCD_SDIN_High()          PD3 = 1;

#define  SetLCD_SDIN_Low()          PD3 = 0;


#define  SetLCD_SCLK_High()          PD6 = 1;

#define  SetLCD_SCLK_Low()          PD6 = 0;


      相关的LCD5110引脚配置和初始化函数如下:

  1. void GPIO_Configuration(void)
  2. {
  3. GPIO_SetMode(PD, BIT0, GPIO_MODE_OUTPUT);
  4. GPIO_SetMode(PD, BIT1, GPIO_MODE_OUTPUT);
  5. GPIO_SetMode(PD, BIT2, GPIO_MODE_OUTPUT);
  6. GPIO_SetMode(PD, BIT3, GPIO_MODE_OUTPUT);
  7. GPIO_SetMode(PD, BIT4, GPIO_MODE_OUTPUT);
  8. GPIO_SetMode(PD, BIT5, GPIO_MODE_OUTPUT);
  9. GPIO_SetMode(PD, BIT6, GPIO_MODE_OUTPUT);
  10. GPIO_SetMode(PD, BIT7, GPIO_MODE_OUTPUT);
  11. }

复制代码

  1. void LCD_Init(void)
  2. {
  3. SetLCD_RST_Low();   
  4. delay_1us();
  5. SetLCD_RST_High();   
  6. delay_1us();
  7. delay_1us();
  8. LCD_write_CMD(0x21);
  9. LCD_write_CMD(0xc0);
  10. LCD_write_CMD(0x06);
  11. LCD_write_CMD(0x13);
  12. LCD_write_CMD(0x20);
  13. LCD_Clear();           
  14. LCD_write_CMD(0x0c);
  15. }

复制代码


   其他的效果函数基本可以LCD5110的参考程序不作修改,实现显示效果的主函数为:

  1. int main (void)
  2. {
  3.     SYS_Init();
  4.     CLK_SetSysTickClockSrc(CLK_CLKSEL0_STCLKSEL_HXT);
  5. GPIO_Configuration();
  6. SetLCD_CS_Low();
  7. PD7 = 1;
  8.     LCD_Init();
  9. LCD_Clear();
  10. LCD_write_english_string(0,0,"NuMaker-PFM");
  11.     LCD_write_english_string(0,2,"-NUC472");
  12. LCD_write_english_string(0,4,"jinglixixi");
  13. }

复制代码

     后续会利用该LCD5110显示来探索RTC计时器的使用。


谢谢 真的不错

哈哈,有用便好!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top