基于51单片机和可编程逻辑器件实现LED显示屏的硬件设计

最新更新时间:2011-12-07来源: chinaaet关键字:LED  显示屏  单片机  可编程 手机看文章 扫描二维码
随时随地手机看文章

LED显示屏主要由电流驱动电路及LED点阵阵列、控制系统和PC端管理软件三部分构成(图1)。控制系统负责接收、转换和处理各种外部信号,并实现扫描控制,然后驱动LED点阵显示需要的文字或图案。控制系统作为LED显示屏的核心部分,直接决定了显示屏的显示效果和性能的优劣。本文详细分析采用Verilog HDL对ATF1508AS进行编程,实现双口RAM访问和产生LED点阵驱动电路所需的各种时序信号。

1  LED显示屏的基本结构及关键技术

本系统设计中,控制系统采用单片机+CPLD的方案来实现,整个控制系统可分为:信号接收及处理模块和CPLD的扫描控制模块和LED点阵驱动模块,如图1 所示。本系统的关键技术是使用双口RAM和CPLD芯片,解决LED显示屏中高速数据传输和快速扫描控制的难题,大大提高了动态显示的刷新率。

信号接收与处理模块的功能是AT89S52单片机通过串口接收PC送来的点阵信息,同时对点阵信息做各种不同的处理。利用双口RAM IDT7007在单片机和ATF1508AS之间以共享的方式建立高速的数据交换通道。

35.jpg

CPLD的扫描控制模块采用ATF1508AS芯片实现。其功能是从双口RAM读取点阵信息,串行化后送显示扫描驱动电路,同时输出各种所需的控制信号。CPLD具有扫描速度快,延时短等特点,克服了单片机由于传输速率慢而造成在大屏幕显示时产生的闪烁效应。

2  基于CPLD的扫描控制模块的设计

2.1 设计思想

本模块的功能是从存储器中读取数据,将数据输送到显示屏体上,同时产生各种控制信号。时序产生模块由两部分构成,一是产生访问双口RAM的时序,二是产生LED显示屏接口所需的各种信号。

硬件电路我们采用较常见的CPLD芯片ATF1508来实现控制系统中的时序产生部分。CPLD是一种具有丰富的可变成I/O引脚的可编程逻辑器件,不仅可以实现常规的逻辑器件功能,还可以实现复杂而独特的时序逻辑功能。软件我们采用Verilog HDL语言来进行设计。Verilog HDL是用于逻辑设计的硬件描述语言,已成为IEEE标准。利用Verilog HDL语言对ATF1508AS进行编程,实现扫描控制模块所需的功能。

扫描控制部分的原理电路如图2所示,ATF1508AS是核心部分,需要根据系统需要定义ATF1508AS的各个I/O端口,下面是I/O端口定义和内部寄存器定义的Verilog HDL语言代码。

36.jpg

module LedSequ(color, datain, addrout, CE, OE, SEMR, RWC, sdr, sdb, sck, le, oe1, cs, clk, counter);
input clk;  //系统时钟
input[7:0] datain;//RAM数据输入
input[1:0] color;//颜色控制
output[13:0] addrout;//地址输出口
output SEMR,RWC;
output CE,OE,sdr,sdb,sck,le,oe1,cs;
output[3:0] counter;
reg[3:0] hcnt;//38译码器计数器
reg [7:0] data1;//数据寄存器
reg[3:0] counter;//38翻码器输出端
reg SEMR,RWC;
reg SDA,SDC;
reg[13:0] addrout,addr;//addr地址计数器
reg[3:0] state;// 状态寄存器
reg [2:0] shcnt;  //移位脉冲读数器
reg CE,OE,sdr,sdb,sck,le,oe1,cs;
reg [8:0] byte;
parameter s0=1'd0,s1=1'd1,s2=1'd2,s3=1'd3, s4=1'd4, s5=1'd5; //状态常量

 

2.2 访问双口RAM时序的产生

IDT7007是具有32KB的双口RAM电路,与ATF1508AS的连接电路如图2所示,其中: 为片选信号, 为读写控制信号, 为输出使能信号,A0R-A13R为右端口地址总线,D0R-D7R为右端口数据总线,其右端口读写时序如图4所示。我们采用有限状态机实现,其基本工作原理是:S0状态进行初始化,S1状态时ATF1508AS首先输出地址信号addrout,然后置 相有效,S2状态读取双口RAM的数据,并存储到内容寄存器datain中,从而完成双口RAM的读数据过程。下面给出ATF1508AS读取双口RAM数据的主要代码:

always @ (posedge clk)
begin //每个时钟周期,状态变化一次
  case(state)
  s0: begin      //初始化状态
 CE=1'b0;     //IDT7007片选
 OE=1'b1;     //IDT7007读选通
 le=1'b0; 
 oe1 = 1'b0;
 cs  = 1'b0;
 addr= 14'b0;
 SEMR=1'b1;   //IDT7007 置1有
 RWC = 1'b1;  //写控制 1
 hcnt=4'b0000;
 counter=4'b0000;
 state=s1;
    end
s1: begin  //输出RAM地址
 CE=1'b0;
 addrout=addr;//输出地址
 OE=1'b0;
 SEMR=1'b1;
 RWC = 1'b1;
 shcnt = 3'b000;
 state=s2;
end
 s2: begin //读双口RAM数据
 oe1=1'b0;
        data1 = datain;
        state=s3;
  end
 ……(显示扫描及LED驱动代码部分)
    endcase
  end

37.jpg

 

2.3  LED显示驱动时序信号的产生

CPLD 与LED点阵的驱动电路接口如图  所示,其中:CS为3-8译码器片选信号;OE为BMI5026输出使能信号,控制LED点阵是否能被点亮;LE为驱动芯片数据锁存信号;sck为移位脉冲,将CPLD串行输出的红绿数据串行移入MBI5026(移位寄存器);A-D为双3-8译码器构成的4-16译码器的数据输入,实现显示行选通控制; sdr为红数据信号线;sdb为绿数据信号线。

其工作过程为:S3状态,sck脉冲置0,sdr和sdb分别输出一位数据;S4状态时,sck置 1,红和绿数据分别移入相应移位寄存器BMI5026,若不足8位时,返回S3状态,若不足一行时,返回S1状态,读下一个字节,若完成一行数据移位过程,则转S5状态;S5状态时,置le为0,将BMI5026的缓冲寄存中一个显示行的点阵数据送输出寄存器,同时置cs1有效,控制第hcnt行的点阵显示,然后判断一屏内容是否显示完成,返回s1状态。图4为完整的有限状态机的状态图。

下面给出LED显示屏体驱动时序信号对应的Verilog HDL程序代码:
  
 s3: begin
  sck=1'b0;
        sdr= SDA && color[0];
        sdb= SDC && color[1];
        OE=1'b1; CE=1'b1;
     state=s4;
     end
 s4: begin // 移位输出到LED显示屏
  sck = 1'b1;
  shcnt = shcnt +1'b1;
  if (shcnt = = 0)
    begin
     addr=addr+1'b1; //读完一个字节地址记数器加1
     byte=byte+8'b1;
     if(byte= = nrow)// 如果读完一行数据
       begin
         oe1=1'b1;//关LED显示
   cs=1'b1;
   le=1'b0;//驱动芯片写入数据
   byte = 8'b0;
   state=s5;//读完一行数据则显示
       end
    else state=s1;
   end
   else state=s3; //当前字节移位输出
 end
 s5: begin
           sck=1'b0;
le=1'b0;
     counter=hcnt;
     OE=1'b1;
     CE=1'b0;
           if(addr = = nscreen)
               addr=0;
          oe1=1'b0;
     cs=1'b0;
     state =s1;
       end

38.jpg

4系统测试及仿真

系统的开发调试环境是:单片机部分在KeilC51下调试,CPLD部分在Maxplus10下调试。LED显示屏的扫描控制模块的Verilog HDL源程序编写完成后,在ALTERA公司Maxplus10可以先进行软件仿真,以观察各信号是否符合硬件电路所需的时序要求。图5为扫描模块 CLPD仿真结果,符合设计要求。通过JTAG接口下载到ATF1508AS后,系统工作正常。

5 结束语

基于Verilog HDL实现的LED显示屏扫描控制模块,应用于我们开发LED大屏幕电子信息显示屏系统,简化了系统结构,提高性了性价比。该LED显示屏在实际应用中具有良好的显示效果,画面清晰、性能稳定,已经在学校的多个部门得到应用。

关键字:LED  显示屏  单片机  可编程 编辑:探路者 引用地址:基于51单片机和可编程逻辑器件实现LED显示屏的硬件设计

上一篇:白光LED驱动电路的设计与实现
下一篇:TITPS92010230-VACTRIAC调光6WLED照明方案

推荐阅读最新更新时间:2023-10-18 16:11

郭明錤:苹果2021年两款MBP预计将采用mini LED
郭明錤预计苹果 2021 年 2 款全新外观设计的 MacBook Pro 与 2022 年售价较低的新 MacBook Air 均将采用 mini LED 面板。MacBook 的 mini LED 采用率与出货增长均优于 iPad 系列产品,预计 MacBook 将会是 mini LED 面板出货量的主要驱动力。 他表示,苹果 mini LED 产品出货量显著优于预期,因此天风国际方面调高了 2021 与 2022 年出货量约 350% 与 450% 至 1000–1200 万部与 2,500–2,800 万部。 此外,郭明錤驳回了之前的一个观点,最新的调查指出,因三安光电的 mini LED 良率改善低于预期,故晶电
[嵌入式]
单片机可预置可逆4位计数器
1.实验任务 利用AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,用来指示当前计数的数据;用P1.4-P1.7作为预置数据的输入端,接四个拨动开关K1-K4,用P3.6/WR和P3.7/RD端口接两个轻触开关,用来作加计数和减计数开关。这样就实现了可预置可逆4位计数器,具体的电路原理图如下图所示 2.电路原理图 图4.12.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P1.0-P1.3端口用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L4上;要求:P1.0对应着L1,P1.1对应着L2,P1.2对应着L3,P1.3对应着L4; (2.把“单片机
[单片机]
<font color='red'>单片机</font>可预置可逆4位计数器
STM32F103C8T6中断特征介绍 用按钮为STM32 MCU触发一个中断
中断是MCU的特征之一,STM32F103C8T6也不例外。以下通过STM32F103C8T6 Blue Pill外接一个按钮,向MCU触发外部中断。 STM32F103C8T6中断特征 中断有硬件中断和软件中断两种,当一个中断发生时,相应的中断服务程序(ISR)和中断处理程序就开始运行了。其中,ISR的指令必须尽可能小,ISR中也不能出现delay ()之类的阻塞函数。 STM32 Blue Pill或者STM32F103C8T6 MCU指定NVIC来管理所有外部中断和外设中断,其应用采用了Arduino IDE。因此,我们可使用相同的句法来配置外部中断,这可通过以下称作 “attachInterrupt ()” 的句法
[单片机]
STM32F103C8T6中断特征介绍 用按钮为STM32 <font color='red'>MCU</font>触发一个中断
倒计时LED液晶显示屏的设计
  通常人们需要知道距一些重要日期(如建国50周年大庆,澳门回归,2000年来临等等)的剩余天数,以方便安排工作。本文介绍的RTC-5型倒计时电脑模块就是专为指定日而设计的倒计时LED显示屏通用驱动模块。   RTC-5型电脑倒计时模块支持9位“8”字共阳LED数码显示器,其中3位用于倒计时天数,6位用于“时:分:秒”,这6位同时还可支持6只LED,即AM,PM和4只秒闪烁LED。模块本身带一按键(很容易转换成遥控操作),操作时带有闪烁指示功能,以方便修改当前时刻的“时:分:秒”或设置倒计时的起始天数。它的“时:分:秒”可选择正常时钟显示,也可选择为显示今天还剩多少时,多少分,多少秒(即“时:分:秒”也为倒计时显示)。在“时
[电源管理]
倒计时<font color='red'>LED</font>液晶<font color='red'>显示屏</font>的设计
高效无金属散热器LED照明灯关键技术简述
   LED照明 具有光效更高、寿命更长;不含有害物质汞;使用寿命与灯的开关次数几乎无关、可提倡“随手关灯”;可以瞬间起亮等突出优点,被认为终将替代白炽灯和节能灯,成为节能 照明 的主流。实际上,只有在 LED 灯的性价比全面超过白炽灯、特别是超过目前广泛使用的节能灯后才能成为通用照明灯的主流。   而LED照明的课题看起来十分明确,即在保证光质量的前提下光效需要大幅提高,例如比节能灯高一倍以上;价格需要大幅下降,最好接近节能灯;使其性价比明显优于节能灯。   目前的LED通用照明灯大多由功率型LED加金属散热器和恒流驱动电路构成。笨重的金属散热器不仅增加了灯的成本和重量,同时要消耗大量铝资源,有悖环保。一个LED灯就像一个金属球
[电源管理]
高效无金属散热器<font color='red'>LED</font>照明灯关键技术简述
实验6 ADC
ADC,Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。 我们现在学习ADC模块是将介于0V~5V之间的电压值转换成0~1023的数值。STM8S105K4有7个ADC通道,分别对应PB0~PB5、PF4引脚。 如上图所示,该元件是可调电阻,或者叫电位器,103表示10*10^3Ω,即10k欧姆,电位器1脚和2脚之间的阻值为10K,旋转电位器可改变1脚和3脚或者2脚和3脚之间的阻值。1脚接5V,2脚接GND,旋转电位器,可以改变3脚
[单片机]
实验6 ADC
LED电子礼花树控制器设计
摘要:用LED取代小型灯泡作为电子礼花树的显示器件具有节电、工作寿命长、高亮度、多发光颜色、响应快等优点。依据LED显示器件的特点及系统的可维护性和可扩充性需求,文章给出了一种电子礼花树系统主板、LED显示驱动板的硬件原理电路及主程序的工作流程框图,同时也对LED显示驱动芯片TPIC6B273进行了简要介绍。 关键词:礼花树;LED;嵌入式系统;单片机;TPIC6B273 随着人们工作、学习、休闲和娱乐环境的不断改善,城市的美化、亮化工程也在不断改观。电子礼花树作为美化、亮化工程的一项重要景观,一直为人们所重视。但现有的电子礼花树是以低压小型灯泡作为光源,在实际使用中凸现出耗电大、使用寿命短、易损坏以及缺乏色彩等严重缺点。
[电源管理]
80C51单片机里的程序是如何运行的
前言 我们想要理解单片机是如何运行程序的,我们首先需要了解单片机的组成,我们这里以80C51单片机为例来理解程序在单片机中是如何运行的。 单片机的组成 8051单片机的内部硬件结构包括: 中央处理器CPU:它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。 存储器:8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为数据存储器在物理结构上分程序存储器和数据存储器,有四个物理上相互独立的存储空间,即片内ROM和片外ROM,片内RAM和片外RAM。 定时器/计数器(T/C):8051单片机内有两个16位的定时器/计数器,每个T/C既可以设置成计数
[单片机]
80C51<font color='red'>单片机</font>里的程序是如何运行的
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved