在尝试为CH554开发板添加I2C接口的双色OLED屏显示之后,这次为大家介绍的是一个基于SPI接口的LCD5110单色液晶屏,其显示效果如图1所示。
图1 LCD5110屏显示效果
由于程序空间较大,故可通过字模提取软件来构建中文字库,其字模提取界面如图2所示。
图2 模提取界面
为了驱动LCD5110屏的显示,它与CH554的连接关系如下:
1. Vcc 接3.3V电源
2. GND 接电源地
3. SCE 片选信号端接电源地,以节省芯片引脚资源。
4. RESET 复位信号端接P1.3
5. D/C 控制信号端接P1.2
6. SDIN 数据信号端接P1.1
7. SCLK 时钟信号端接P1.0
8. 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[s][line]);
- }
- LCD_set_XY(X,Y+1);
- for (line=12; line<24; line++)
- {
- LCD_write_Data(Hzk[s][line]);//chinese_character[s][line]
- }
- }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原创,如需转载或用于商业用途需征得作者同意并注明出处