[活动专区] 【AutoChips 7801x MCU评测报告】+ LCD5110屏显示

[复制链接]
1014|4
 楼主| jinglixixi 发表于 2020-6-9 13:50 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2020-6-9 13:53 编辑

在掌握了I2C接口的模拟后,我们可以接下来学习SPI接口的模拟,进而来驱动SPI接口的LCD5110屏来实现显示功能。
OLED屏与MCU的连接关系为:
LCD_CLK——PB11
LCD_DIN——PB12
LCD_LED——3.3V
LCD_CS ——GND
LCD_DC ——PB5
LCD_RST——PB4
其余的两个引脚则接3.3V工作电源


定义GPIO口读取电位及输出高低电平的语句为:
#define  LCD_CLK_H    GPIO_SetPinLevel(GPIOB, GPIO_PIN11, GPIO_LEVEL_HIGH);   // PB11
#define  LCD_CLK_L    GPIO_SetPinLevel(GPIOB, GPIO_PIN11, GPIO_LEVEL_LOW);

#define  LCD_DIN_H    GPIO_SetPinLevel(GPIOB, GPIO_PIN12, GPIO_LEVEL_HIGH);   // PB12
#define  LCD_DIN_L    GPIO_SetPinLevel(GPIOB, GPIO_PIN12, GPIO_LEVEL_LOW);

#define  LCD_DC_H     GPIO_SetPinLevel(GPIOB, GPIO_PIN5, GPIO_LEVEL_HIGH);     // PB5
#define  LCD_DC_L     GPIO_SetPinLevel(GPIOB, GPIO_PIN5, GPIO_LEVEL_LOW);

#define  LCD_CS_H     GPIO_SetPinLevel(GPIOA, GPIO_PIN8, GPIO_LEVEL_HIGH);     // PA8
#define  LCD_CS_L      GPIO_SetPinLevel(GPIOA, GPIO_PIN8, GPIO_LEVEL_LOW);

#define  LCD_RST_H    GPIO_SetPinLevel(GPIOB, GPIO_PIN4, GPIO_LEVEL_HIGH);    // PB4
#define  LCD_RST_L     GPIO_SetPinLevel(GPIOB, GPIO_PIN4, GPIO_LEVEL_LOW);


设置相关引脚为输出功能的函数为:
  1. void LCD_GPIO_Cogfig(void)
  2. {
  3.         GPIO_SetFunc(GPIOA, GPIO_PIN8, GPIO_FUN0);
  4.         GPIO_SetFunc(GPIOB, GPIO_PIN4, GPIO_FUN0);
  5.         GPIO_SetFunc(GPIOB, GPIO_PIN5, GPIO_FUN0);
  6.         GPIO_SetFunc(GPIOB, GPIO_PIN11, GPIO_FUN0);
  7.         GPIO_SetFunc(GPIOB, GPIO_PIN12, GPIO_FUN0);
  8.        
  9.         GPIO_SetDir(GPIOA, GPIO_PIN8, GPIO_OUT);
  10.         GPIO_SetDir(GPIOB, GPIO_PIN4, GPIO_OUT);
  11.         GPIO_SetDir(GPIOB, GPIO_PIN5, GPIO_OUT);
  12.         GPIO_SetDir(GPIOB, GPIO_PIN11, GPIO_OUT);
  13.         GPIO_SetDir(GPIOB, GPIO_PIN12, GPIO_OUT);
  14. }


LCD5110初始化函数为:
  1. void LCD5110_Init(void)
  2. {
  3. LCD_GPIO_Cogfig();
  4. mdelay(800);
  5. LCD_reset_hard;
  6. LCD_write_cmd(0x21);
  7. LCD_write_cmd(0x06);
  8. LCD_write_cmd(0x13);
  9. LCD_write_cmd(0xc8);
  10. LCD_write_cmd(0x20);
  11. LCD_write_cmd(0x0c);
  12. LCD_write_cmd(Y_Page_Addr);
  13. LCD_write_cmd(X_Col_Addr);
  14. LCD_clr_scr();         
  15. }
实现图示显示效果的主程序为:
  1. int main(void)
  2. {
  3. InitDelay();
  4. mdelay(100);
  5. LCD5110_Init();
  6. LCD_prints(0,0,"AC8701 TEST");
  7. LCD_prints(0,1,"LCD5110 ");
  8. LCD_prints(0,2,"jinglixixi");
  9. while(1);
  10. }

图片1.png
LCD5110屏显示效果

Cjy_JDxy 发表于 2020-6-10 09:06 | 显示全部楼层
你很厉害
 楼主| jinglixixi 发表于 2020-6-10 09:15 | 显示全部楼层

没有,只是玩一些简单的还可以,像做个基于SD卡的文件系统就困难了!
marginer 发表于 2020-6-10 13:30 | 显示全部楼层
jinglixixi 发表于 2020-6-10 09:15
没有,只是玩一些简单的还可以,像做个基于SD卡的文件系统就困难了!

SD卡的文件系统这个区有个版主有分享一个7811上的demo,应该也有7801的。
 楼主| jinglixixi 发表于 2020-6-11 07:52 | 显示全部楼层
marginer 发表于 2020-6-10 13:30
SD卡的文件系统这个区有个版主有分享一个7811上的demo,应该也有7801的。

试了试不能可靠的使用,一直没找到原因,后面发一篇大家给看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

525

主题

2967

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部