首页 > 范文大全 > 正文

基于STM32的点阵屏电子席卡的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于STM32的点阵屏电子席卡的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:文章提出了一种基于stm32为核心处理器的LED点阵屏系统的设计。该系统包括主控模块、信号传输模块、时钟模块RTC、电源模块、显示模块和2个16*64点阵屏等。系统通过上位机进行信息的传输以及对其中任意一块点阵屏进行控制,从而显示出汉字、ASCⅡ码字符等,可以广泛应用于广告屏、公告牌等。

关键词:STM32;LED点阵屏;上位机;RTC

引言

LED是一种通过控制半导体发光二极管的显示方式,由很多个小灯组成,靠灯的亮灭来显示字符,是六十年代末七十年代初发展起来的。LED显示屏是一种新的显示媒体,用来显示文字、图形、图像等各种信息,广泛应用于车站、商场、医院、宾馆和其它公共场所。它的 优点是亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。传统LED多以51单片机控制为主,但是由于这类单片机的运行速度、功耗等问题,已经难以满足显示区域较大、显示内容相对复杂的应用场合。文章针对上述问题,研究的是基于STM32的LED电子屏的显示,不论对自己就业还是对我国LED显示技术的发展都有非常现实与积极的意义。

1 系统总体设计

LED显示系统主要由上位机、无线传输模块、单片机、时钟芯片及点阵显示模块组成,总体框图如图1所示。系统通过上位机进行信息的传输并对其中任意一块点阵屏进行控制,从而显示出汉字、图形等。

文章说的LED显示指的是LED图文显示,LED图文屏的主要特点是控制LED中的二极管的通断,而不控制LED发亮程度。不管是图形还是文字,都与组成这些图形或文字的各点所在位置相对应的LED是否发光有关。

2 系统硬件设计

2.1 核心控制模块

本系统采用ST公司推出的STM32F103VET6,内置高速存储器(64K RAM,512K Flash),具有100引脚LQFP封装。STM32采用ARM最新的Cortex-M3内核,处理速度可达72MHz,其ROM和RAM也是目前同类型板载主芯片中容量最大的。具有丰富的I/O资源,而且其电路简单,在片内即可实现所有控制。STM32F103VET6共有80个通用I/O端口,4 个定时器,2 个 I2 C 接口,3个 UART 接口,2个 SPI 接口,为以后的扩展提供了条件。

2.2 无线传输模块

HC-12无线串口通信模块是新一代的多通道嵌入式无线数传模块。模块最大发射功率为100mW(20dBm),5000bps空中波特率下接收灵敏度-116dBm,开阔地1000米的通信距离。产品特点:远距离无线传输,工作频率范围(433.4-473.0MHz,多达100个通信频道),发射功率(可设置8档功率),其原理图如图2所示。

图2中,一共有9个引脚,其中引脚1接直流电源3.2-5.5V;引脚2、7、8接公共地;引脚3为数据接收端RXD口;引脚4为无线数据发送端TXD口;引脚5通过SW1接地进入参数设置状态,悬空则退出;引脚6为天线接口;引脚9无连接,用于固定。

2.3 时钟模块

本系统采用单片机自身携带的时钟模块。RTC可以通过STRB/LDRB指令将8位BCD码数据送至CPU,这些BCD数据包括秒,分,时,日期,星期,月和年。能够为人们提供精确的实时时间,或者为电子系统提供精确的时间基准。其原理框图如图3所示。

图3中,RTC由两部分组成:APB1接口部分以及RTC核心部分。RTC核心部分又分为预分频模块和一个32位的可编程计数器。首先,通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟;其次,电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问;接着,初始化复位BKP寄存器;然后,设置RTCCLK;将RTC输入时钟选择为LSE时钟输入并使能RTC,等待RTC和APB时钟同步;最后,配置RTC时钟参数。

2.4 点阵屏模块

该系统有两块16*64LED点阵屏。每一块采用16个LED8*8显示屏,构成16行*64列点阵显示模块。采用74HC138三-八译码器和74HC595移位寄存器。一个16*64的显示屏可以显示各种文字或单色图像,全屏能显示4个汉字。由138和595的信号,控制二极管的亮、灭来显示出所要求的字符、汉字。

在图4中,列驱动采用移位寄存器74HC595芯片,一块16*64的点阵屏需要8片74HC595。可以把串行输入的8位数据并行输出,第1片595的串行输出接到第2片595的串行输入端,同理,其他引脚的连接方式一样,通过这种级联的方式,把8个595芯片连在一起,同时每个595芯片的并行输出连接8个LED的列。

行驱动采用74HC138和74HC4953芯片,需要两片138和8片4953。74HC138功能是控制扫描的,输入A、B和OE信号输出4个信号来控制2片4953。2片138的16路输出分别通过4953的驱动用于选通相应的行,实现对行的控制。

3 系统软件设计

系统软件由在单片机主控程序协调下,由通信程序;时针修改及读取程序;点阵信息显示程序等组成。

3.1 总体软件流

LED显示主要流程如图6所示。一开始主程序需要进行初始化。然后可以校准时间并显示;确认按键之后获取的内容,即可显示;上位机数据传输至下位机进行显示。

3.2 子程序设计

3.2.1时钟模块初始化部分程序编写

void RCC_Config(void)

{

SystemInit();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

}

3.2.2 LED显示缓冲部分程序编写

u8 DisBuf[16][LedNum_X + 2]; /* 显示缓冲区 */

unsigned char EffectBuf[16][LedNum_X]; /* 效果缓冲区,用于实现不同显示效果 */

3.2.3 无线模块程序编写

模块参数设置AT指令

测试指令:AT

更改串口波特率指令:AT+Bxxxx

更改模块串口通透模式:AT+FUx

获取模块所有参数:AT+Rx

设置串口通信的数据位数、检验位、停止位:AT+Uxxx

4 系统调试结果

文章完成了系统的软、硬件设计,包括各个硬件模块电路设计和软件中系统初始化、传输数据、显示驱动程序,设置了无线模块、字模提取。实现了LED的显示功能,下图为STM32控制显示屏的显示效果。

5 结束语

文章介绍了基于STM32的LED显示系统的硬软件构成,该系统采用STM32F103为控制核心,传递数据,用74HC138三-八译码器和74HC595移位寄存器来驱动两块16*64点阵屏,对其中任意一块点阵屏进行控制,从而显示出汉字、ASCⅡ码字符等。

参考文献

[1]李志明,檀永,等.STM32嵌入式系统开发实战指南[M].北京:机械工业出版社,2013.

[2]韩旭,王娣.C语言从入门到精通[M].北京:清华大学出版社,2010.

[3]马忠梅,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2007.

[4]任全会,黄根岭.基于STM32LED书写点阵屏设计与实现[J].郑州铁路职业技术学院学报,2012,24(1):34-36.

[5]林秀明,秦德茂,等.基于STM32实现多区域显示的LED点阵屏的设计[J].西部交通科技,2015,5(94):75-82.

[6]刘志龙,吴昊.STM32F103ZET6芯片在LED显示屏控制应用中的探索[J].科技创新与应用,2014(4):30-31.