jennyzhaojie 发表于 2017-10-23 12:00

基于CH554开发板的LCD5110液晶屏显示

<div class='showpostmsg'>在尝试为CH554开发板添加I2C接口的双色OLED屏显示之后,这次为大家介绍的是一个基于SPI接口的LCD5110单色液晶屏,其显示效果如图1所示。图1LCD5110屏显示效果
由于程序空间较大,故可通过字模提取软件来构建中文字库,其字模提取界面如图2所示。图2 模提取界面
为了驱动LCD5110屏的显示,它与CH554的连接关系如下:1.Vcc   接3.3V电源2.GND接电源地3.SCE   片选信号端接电源地,以节省芯片引脚资源。4.RESET 复位信号端接P1.35.D/C   控制信号端接P1.26.SDIN数据信号端接P1.17.SCLK时钟信号端接P1.08.LED+背光接3.3V电源
故LCD5110屏的初始化函数如下:void LCD_Init(void)
{
        Port1Cfg(3,0);   //p1.0
    Port1Cfg(3,1);   //p1.1
    Port1Cfg(3,2);   //p1.2
    Port1Cfg(3,3);   //p1.3
    SetLCD_RST_Low();   
        delay_1us();
        SetLCD_RST_High();   
        delay_1us();
        delay_1us();
        LCD_write_CMD(0x21);
        LCD_write_CMD(0xc0);
        LCD_write_CMD(0x06);
        LCD_write_CMD(0x13);
        LCD_write_CMD(0x20);
        LCD_Clear();          
        LCD_write_CMD(0x0c);       
}
显示中文的函数内容如下:void LCD_write_hanzi(unsigned char X,unsigned char Y,char s)
{       
    do
    {       
                char line;
                LCD_set_XY(X,Y);       
               for (line=0; line<12; line++)
                {       
                        LCD_write_Data(Hzk);
                  }
                LCD_set_XY(X,Y+1);
                for (line=12; line<24; line++)
                {               
                        LCD_write_Data(Hzk);//chinese_character
                  }
        }while(0);               
}
实现显示效果的主函数为:void main( )
{
      CfgFsys( );                                                                  
      mDelaymS(20);
      mInitSTDIO( );            //串口0初始化
      LCD_Init();
          LCD_Clear();
          LCD_write_hanzi(32,0,0);
          LCD_write_hanzi(44,0,1);
          LCD_write_hanzi(56,0,2);       
      LCD_write_english_string(0,0,"CH554");
          LCD_write_english_string(2,2,"LCD5110 Test");
          while(1);
}
此外,新近发现CH554的2种下载方式都很好用,以前都是用串口下载,这次是用的USB下载,其下载界面如图3所示。后面会在此基础上实现一个多通道数据采集的显示装置。

此内容由EEWORLD论坛网友jennyzhaojie原创,如需转载或用于商业用途需征得作者同意并注明出处

</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

zhang7309 发表于 2017-10-23 14:10

楼主采用软件模拟SPI吗,有没有试着用一下硬件SPI?

jennyzhaojie 发表于 2017-10-24 10:41

zhang7309 发表于 2017-10-23 14:10
楼主采用软件模拟SPI吗,有没有试着用一下硬件SPI?

感觉软件模拟SPI比较好用,不会受限于硬件SPI的要求,以后有机会尝试一下。
页: [1]
查看完整版本: 基于CH554开发板的LCD5110液晶屏显示