
蓝桥杯LCD外设电路
1.OLED与LCD
OLED是有机发光二极管,自发光,不用背光。
“OLED是一种利用多层有机薄膜结构产生电致发光的器件,它很容易制作,而且只需要低的驱动电压,这些主要的特征使得OLED在满足平面显示器的应用上显得非常突出。OLED显示屏比LCD更轻薄、亮度高、功耗低、响应快、清晰度高、柔性好、发光效率高”——来自百度百科
TFTLCD是薄膜晶体管液晶显示器的缩写,名字来源于液晶显示屏每个像素上都设有薄膜晶体管(TFT),亮度高,对比度,有色彩。
“LCD ( Liquid Crystal Display 的简称)液晶显示器。LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。”——来自百度百科
2.8080并口读写数据的过程
设置RS为高(数据)/低(命令),然后拉低片选。
读数据:RD为低,在RD的上升沿去读取数据线上的数据。
写数据:WR为低,在WR的上升沿写数据到数据线上。
在蓝桥杯比赛中调用官方LCD例程开发极为方便。
下面着重叙述几个重要的函数:
首先是显示颜色:White Black Red等常用颜色已经在lcd.h中有宏定义,可以直接使用。
对RGB颜色有额外需求的话,可以访问这个网站【RGB颜色对照表 (917118.com)获取常见的颜色RGB码。
】

RGB颜色码表
LCD_Clear():用设置的颜色填充整个LCD屏
LCD_SetBackColor():设置背景色
LCD_SetTextColor():设置文字颜色
LCD_DisplayStringLine(Linex,' 文字内容 ');
Linex代表行数,从Line0到Line9,屏幕从上到下分为10行
“”:字符串中填写所要显示的内容,一行显示20个字符。“ ”中的内容如果多于20,则多于内容不显示;若少于20,则空余字符位置显示LCD_Clear()中设置的底层颜色。
总结:LCD屏有10行20列。
引用头文件后
#include 'lcd.h'
即可在主函数main.c中实现LCD功能
显示效果:上半屏幕为蓝色,显示白色字体Hello World;下半屏幕为白色,显示蓝色字体Author: somebody。
int main(void){
HAL_Init();//重置所有外设,初始化Flash接口,初始化滴答定时器
SystemClock_config();//设置系统时钟
MX_GPIO_Init();//初始化IO口
LCD_Init();//初始化LCD屏幕
LCD_Clear(White);//清空屏幕,用白色为底色
LCD_SetBackColor(Blue);//设置行的底色
LCD_SetTextColor(White);//设置文字颜色
LCD_DisplayStringLine(Line0, (uint8_t *)' ');
LCD_DisplayStringLine(Line1, (uint8_t *)' ');
LCD_DisplayStringLine(Line2, (uint8_t *)' Hello World ');
LCD_DisplayStringLine(Line3, (uint8_t *)' ');
LCD_DisplayStringLine(Line4, (uint8_t *)' ');
LCD_SetBackColor(White);//设置行的颜色
LCD_SetTextColor(Blue);//设置文字颜色
LCD_DisplayStringLine(Line5, (uint8_t *)' ');
LCD_DisplayStringLine(Line6, (uint8_t *)' Author: ');
LCD_DisplayStringLine(Line7, (uint8_t *)' ');
LCD_DisplayStringLine(Line8, (uint8_t *)' somebody ');
LCD_DisplayStringLine(Line9, (uint8_t *)' ');
while(1){
}}
lcd.h文件整体如下:
/* Define to prevent recursive inclusion -------------------------------------*/#ifndef __LCD_H#define __LCD_H/* Includes ------------------------------------------------------------------*/#include 'main.h'/* Exported types ------------------------------------------------------------*//* Exported constants --------------------------------------------------------*//* LCD Registers */#define R0 0x00#define R1 0x01#define R2 0x02#define R3 0x03#define R4 0x04#define R5 0x05#define R6 0x06#define R7 0x07#define R8 0x08#define R9 0x09#define R10 0x0A#define R12 0x0C#define R13 0x0D#define R14 0x0E#define R15 0x0F#define R16 0x10#define R17 0x11#define R18 0x12#define R19 0x13#define R20 0x14#define R21 0x15#define R22 0x16#define R23 0x17#define R24 0x18#define R25 0x19#define R26 0x1A#define R27 0x1B#define R28 0x1C#define R29 0x1D#define R30 0x1E#define R31 0x1F#define R32 0x20#define R33 0x21#define R34 0x22#define R36 0x24#define R37 0x25#define R40 0x28#define R41 0x29#define R43 0x2B#define R45 0x2D#define R48 0x30#define R49 0x31#define R50 0x32#define R51 0x33#define R52 0x34#define R53 0x35#define R54 0x36#define R55 0x37#define R56 0x38#define R57 0x39#define R59 0x3B#define R60 0x3C#define R61 0x3D#define R62 0x3E#define R63 0x3F#define R64 0x40#define R65 0x41#define R66 0x42#define R67 0x43#define R68 0x44#define R69 0x45#define R70 0x46#define R71 0x47#define R72 0x48#define R73 0x49#define R74 0x4A#define R75 0x4B#define R76 0x4C#define R77 0x4D#define R78 0x4E#define R79 0x4F#define R80 0x50#define R81 0x51#define R82 0x52#define R83 0x53#define R96 0x60#define R97 0x61#define R106 0x6A#define R118 0x76#define R128 0x80#define R129 0x81#define R130 0x82#define R131 0x83#define R132 0x84#define R133 0x85#define R134 0x86#define R135 0x87#define R136 0x88#define R137 0x89#define R139 0x8B#define R140 0x8C#define R141 0x8D#define R143 0x8F#define R144 0x90#define R145 0x91#define R146 0x92#define R147 0x93#define R148 0x94#define R149 0x95#define R150 0x96#define R151 0x97#define R152 0x98#define R153 0x99#define R154 0x9A#define R157 0x9D#define R192 0xC0#define R193 0xC1#define R227 0xE3#define R229 0xE5#define R231 0xE7#define R239 0xEF/* LCD Control pins *///#define CtrlPin_NCS GPIO_Pin_9 /* PB.9 *///#define CtrlPin_RS GPIO_Pin_8 /* PB.8 *///#define CtrlPin_NWR GPIO_Pin_5 /* Pb.5 *///#define CtrlPin_NRD GPIO_Pin_10 /* Pb.10 *//* LCD color */#define White 0xFFFF#define Black 0x0000#define Grey 0xF7DE#define Blue 0x001F#define Blue2 0x051F#define Red 0xF800#define Magenta 0xF81F#define Green 0x07E0#define Cyan 0x7FFF#define Yellow 0xFFE0#define Line0 0#define Line1 24#define Line2 48#define Line3 72#define Line4 96#define Line5 120#define Line6 144#define Line7 168#define Line8 192#define Line9 216#define Horizontal 0x00#define Vertical 0x01/* Exported macro ------------------------------------------------------------*//* Exported functions ------------------------------------------------------- *//*----- High layer function -----*/typedef int32_t s32;typedef int16_t s16;typedef int8_t s8;typedef __IO uint32_t vu32;typedef __IO uint16_t vu16;typedef __IO uint8_t vu8;typedef uint32_t u32;typedef uint16_t u16;typedef uint8_t u8;typedef const uint32_t uc32; /*!< Read Only */typedef const uint16_t uc16; /*!< Read Only */typedef const uint8_t uc8; /*!< Read Only */void LCD_Init(void);void LCD_SetTextColor(vu16 Color);void LCD_SetBackColor(vu16 Color);void LCD_ClearLine(u8 Line);void LCD_Clear(u16 Color);void LCD_SetCursor(u8 Xpos, u16 Ypos);void LCD_DrawChar(u8 Xpos, u16 Ypos, uc16 *c);void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);void LCD_DisplayStringLine(u8 Line, u8 *ptr);void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Height, u16 Width);void LCD_WindowModeDisable(void);void LCD_DrawLine(u8 Xpos, u16 Ypos, u16 Length, u8 Direction);void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width);void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius);void LCD_DrawMonoPict(uc32 *Pict);void LCD_WriteBMP(u32 BmpAddress);void LCD_DrawBMP(u32 BmpAddress);void LCD_DrawPicture(const u8* picture);/*----- Medium layer function -----*/void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);u16 LCD_ReadReg(u8 LCD_Reg);void LCD_WriteRAM_Prepare(void);void LCD_WriteRAM(u16 RGB_Code);u16 LCD_ReadRAM(void);void LCD_PowerOn(void);void LCD_DisplayOn(void);void LCD_DisplayOff(void);/*----- Low layer function -----*/void LCD_CtrlLinesConfig(void);void LCD_BusIn(void);void LCD_BusOut(void);#endif /* __LCD_H *//******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
上一篇:4.stm32 ADC与DAC
下一篇:2.stm32串口
推荐阅读最新更新时间:2026-02-20 13:46
- 用于可调电流源的 LT1764AEFE-3.3 LDO 稳压器的典型应用
- LT3756IUD-1 降压模式 1A LED 驱动器的典型应用电路,具有高调光比和 LED 开路报告
- LT1952IGN 36V 至 72V 输入、12V/20A 半稳压总线转换器的典型应用电路
- LTC4419IMSE 高效备用电源的典型应用电路
- 使用 Analog Devices 的 LT1328 的参考设计
- LTC2241CUP-10 演示板,LVDS OUT,VCC = 2.5V,210Msps,10 位,10MHz< AIN< 250MHz
- LTC3121IDE 4.3V 至 5V、500mA USB/电池供电同步升压转换器的典型应用电路
- TA8126SG 3V DC/DC转换器电调典型应用
- 便携式相机的完整电源解决方案
- RSL15-EVB:RSL15 评估和开发板



stm32驱动屏IC rm68042
现代雷达系统的信号设计
TLC254ACN
BFR340T






京公网安备 11010802033920号