微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的LED显示屏控制系统设计

基于单片机的LED显示屏控制系统设计

时间:01-18 来源:互联网 点击:

NL=YL/(Bw·Sw),这里记i=NL/Sw(0≤i≤7),表示显示信息跨越两个数据块时需要选择的数据位数。存储器输出16位数据[D0,D1,…,D15]后,从Di位控制选择连续的8位数据[Di,Di+1,…,D7,…,D7+i]输出到显示屏。当数据从一个字节的Di位开始输出16位时,如[Di,Di+1,…,D7,…,D15,D0,…,Di-1],前面8位在当前显示是多余的几位数据,后面8位数据[D8+i,…,D15,D0,…,Di-1]正好是要输出到显示屏的8位数据。当这16位数据串行输出到一个8位的移位寄存器中时,移位寄存器刚好可以容纳高8位数据,并将其输出显示。之后各列数据的输出情况同样如此,不需要额外的指令或电路来对输出数据进行选择输出。只是在每行第一列数据输出前,通过单片机模拟i个时钟脉冲输出到存储器,让输出数据产生错位,使数据从Di位开始输出。另外,当显示信息刚好是A、B、C、D块中的某一块时,无须产生模拟脉冲对数据进行选择,而是直接将数据输出显示。通过分析可知,SPI模块刚好具有这个功能,通过单片机额外模拟i个时钟脉冲,输出到串行存储器的时钟信号端,可以使数据错位,从指定的某一位Di开始输出。当显示信息跨越Sw-1区间时,如果一场显示还没有完毕,内存地址应返回到YL所在块的起始地址,并从起始地址开始输出显示数据,单片机模拟的脉冲数i也相应发生变化。

2 、LED显示屏控制系统设计

  LED显示屏控制电路。为了提高数据输出效率,采用RAMtron公司的带SPI功能模块的VRS51L3074单片机。VRS51L3074的时钟频率为40 M-Hz,指令周期短,处理速度快,效率高;工作电压在3.3 V左右,但是可以兼容5 V。SST25VF016B是一款具有SPI接口的8引脚串行Flash。7 4LSl64为移位寄存器。

  2.1 VRS51L3074的SPI功能模块

  VRS51L3074的SPI时钟频率可以在SysClk/2~SysClk/10

24范围内调整,SPI时钟频率最高可以达到20MHz。当VRS51L3074作为SPI主机时,可以对SPI运行控制、配置和状态监控以及其他的一些工作环境进行设置。

  配置寄存器SPICONFIG:主要对片选信号控制模式、SPI中断进行设置。

  状态寄存器SPISTATUS:主要用于对SPI运行状态的监控。

  传输字长寄存器SPISIZE:设置传输字长,本文设置为16位,即每次输出16位数据。

  控制寄存器SPICTRL:对SPI时钟速率、时钟相位/极性、片选信号,以及SPI时钟频率进行设置。

  数据寄存器SPIRXTX0~SPIRXTX3:用于对SPI接口32位收发缓冲器的访问,对数据寄存器执行写操作是将数据送入发送缓冲器中,对数据寄存器执行读操作是从接收缓冲器中取出收到的数据。SPI接口的发送和接收缓冲器都采用双缓冲结构,从硬件上减少数据冲突并提高数据传输效率。在主模式下对SPIRXTX0寄存器执行写入操作将启动SPI传输。当传输字各行长大于8时,应最后向SPIRXTX0寄存器写入。

  向串行Flash输入控制信号和数据地址后,启动串行Flash传输数据,在SPI时钟驱动下输出显示数据,并且可以用单片机模拟串行Flash时钟信号控制任意位数据输出。

  2.2 数据选择控制电路

  LED显示屏控制系统如图3所示,VRS51L3074单片机内部自带精确的40 MHz振荡器,不需要外部晶振电路提供系统时钟。数据显示采用内存为16 Mb的SST25VF016B。双RAM技术输出显示数据的时候,是将两块RAM中相同地址的两个数据同时输出,所以,将两块RAM的显示数据存放在一块串行存储器中时,偶地址单元应存储RAM0的数据,奇地址单元存储RAMl的数据,数据输出时每次输出16位数据。串行存储器和单片机的工作电压都在3.3 V左右,但是VRS51L3074可以兼容5V,简化了控制电路。控制信号和显示数据在输出到寄存器74LS164和显示屏的时候,需要用74LVC07进行电平转换。

控制系统控制显示数据输出的流程为:

  ①将扫描线行地址通过P2端口的低4位送给LED显示屏。

  ②通过显示数据在显示区域中的位置,计算显示数据在存储器中的地址,并计算出数据选择的位数i。

  ③通过单片机P3.0口模拟移位脉冲,输出到串行Flash时钟信号,移位脉冲数由数据选择位数i决定。使输出数据产生错位,正确地选择输出显示数据。

  ④启动SPI读取显示数据,SPI传输字长设置为16位。模拟脉冲已经输出到串行Flash使数据产生了错位,输出16位数据[Di,Di+1,…,D7,…,D15,D0,…,Di-1],输出到显示屏的数据[D8+i,…,D15,D0,…,Di-1]在高8位,经过移位刚好可以存放在移位寄存器中。每行第一个数据输出后,此行各列数据都直接输出。

  ⑤16位数据输出完毕后,通过P3.1脚产生一个SCK脉冲,将移位寄存器74LSl64中的数据输出移入到单元板的串行移位寄存器74HC595中。

⑥重复第④至⑤步,直

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top