周琦
摘 要:以Keil for ARM集成开发环境为基础,以STM32F103C8T6单片机为核心,设计LCD12864液晶显示系统,能在屏幕的任意位置对字符及图形进行显示,且具备贪吃蛇游戏等相关功能。另外,该LCD显示系统具有较强的操作便捷性,且具有较低能耗、较快速度和较高的性价比。本文浅析了基于STM32F103C8T6单片机的LCD显示系统设计,以期为LCD显示系统设计提供借鉴。
关键词:单片机;LCD;显示系统
当前,终端显示器在诸多领域得到了日渐广泛的应用。同时,人们对于所使用的终端显示器提出了较高的要求。具有较小体积和较低能耗,且具有较高清晰度的LCD显示器具有显著的应用优势,深受人们青睐。以单片机为核心的LCD显示系统具备简单的硬件结构,生产成本相对较低,且控制较为便捷,广泛应用于嵌入式系统中。本文主要基于STM32F103C8T6单片机,对LCD显示系统进行设计。
一、系统硬件设计
LCD显示系统方框图如下图1所示:
(一)Keil MDK以及STM32F103C8T6单片机
Keil MDK为集成开发环境,具备在线调试以及链接、编译等功能,能实现对启动代码的自动配置,操作相对简单,且具有优越性能,广泛应用于嵌入式系统。[1]STM32F103C8T6单片机的宽电压实际供电范围保持在2.0V~3.6V之内,其最大CPU功率为72MHz,配备有单周期的硬件除法以及乘法指令,还配备有中断系统,具备编程功能。同时,该单片机还配备有两种存储器,一种是FLash存储器,容量为64KB,一种是SRAM存储器,容量为20KB。另外,该单片机还具备多种类型的片内外设,诸如定时器、DMA控制器、IIC接口等。[2]该单片机不仅具有成本较低,且具有较快的速度和较高的性价比。
(二)LCD12864液晶显示屏
LCD12864液晶显示屏采用串行数据接口,其工作电压保持在2.8V到5.5V范围之内,采用128×64像素,以黑白色作为其显示颜色,以蓝色作为背光颜色,且不带字库。模块内部对ST7565P控制器进行采用,此类控制器具有较低的功耗,在省电模式下,其最大工作电流为5μA,显示模块具备的引脚接口共有8个,对主控制器I/O相应的占用数量相对较少。
(三)LCD12864液晶显示屏与STM32F103C8T6单片机的硬件连接
LCD12864液晶显示屏与STM32F103C8T6单片机的硬件连接极为简单。LCD12864液晶显示屏引脚编号1~5相应的控制端口,能与STM32F103C8T6单片机相应的GPIO口进行直接连接,第8引脚为LCD相应的背光电源端口,借助单片机相应的I/O口对三级管导通进行控制,据此对通断背光电源进行控制,实现对功耗的有效节省。[3]单片机 STM32F103C8T6 与 LCD12864 的硬件连接图如下图2所示:
二、系统软件设计
系统软件设计涵盖LCD初始化、数据命令编写、字符画点显示等相关程序设计。在液晶显示模块开展工作前,要对之实施初始化,诸如对液晶进行复位,对偏压比以及显示对比度等各项参数进行确定等,在此基础上,才能对字符以及图形进行显示。针对液晶显示模块对数据、命令进行写入,要强调写入时序,严格遵循相关时序,对驱动程序进行编写。对程序进行设计时,为增强移植的便捷性,可对相关引脚相应的操作实施宏封装。
写数据相应的功能函数void LCD12864_WriteData的实现方法相同于写命令相应的功能函数,将片选打开后,对写数据LCD_A0_1()进行选择。
对LCD液晶驱动程序进行设计,要在屏幕任意位置对一个点进行显示,据此实现复杂性更强的功能。每次对数据进行写入均包含8个点相应的信息,且LCD显示模块未对读控制端口进行配置,无法借助读数据命令实现对其他7点实际状态的了解,难以实现最终目的。对此,可在单片机相应的内存区对数据空间进行开辟,并对显示器各点相应的显示情况进行记录。
液晶模块未对字库进行配置,对字符进行显示之前,要在单片机相应的存储空间中对字模进行储存,并基于任意坐标对一个点的现实,实现对字符的有效现实。
三、实例设计
基于LCD12864驱动程序,将STM32F103C8T6单片机作为系统控制核心,即具备贪吃蛇游戏的相应功能。该游戏程序主要具备键盘扫描、LCD12864驱动以及数据处理子程序模块。在该游戏中,可将贪吃蛇和食物视作各不相同的两个对象,可借助结构体变量对其属性进行描述,将游戏功能作为依据,对大模块整体实施划分,形成不同子模块,并对各子模块各自的功能函数进行编写,由主模块函数对之进行调用。在程序设计过程中,将贪吃蛇的长度定义为15,将贪吃蛇具体的运动区域长度定义为20个单位,将其宽度定义为15个单位。另外,借助单片机相应的AD采样引脚基于悬空状态实施采样,对AD值进行获取,并经由相关运算实现对随机数的获取。
四、结语
综上所述,STM32F103C8T6单片机性能良好,LCD12864具有較为简单的硬件接口,对单片机相应的I/O口资源占用较少,且单片机能为其他外设提供充足的硬件资源,显示系统能在不同场合进行应用。另外,系统对C语言进行采用实施程序设计,具有较强的移植性。
参考文献:
[1]杨伟,肖义平.基于STM32F103C8T6单片机的LCD显示系统设计[J].微型机与应用,2014(20):29-31.
[2]陈素芹,余红英,万鸾飞,等.基于STM32F103C8T6的USB直流充电器设计[J].重庆工商大学学报:自然科学版,2016,33(2):45-48.
[3]梁亚峰.面向实训设备管理的指纹锁控系统设计[J].成都航空职业技术学院学报,2015,31(3):50-53.