功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
最新动态 您所在的位置: 首页 > 最新动态

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

来源:    作者:    发布时间:2014-12-30 10:32:38    浏览量:

0 引言
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之间以共享的方式建立高速的数据交换通道。


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语言代码。


module LedSequ(color, datain, addrout, CE, OE, SEMR, RWC, sdr, sdb, sck, le, oe1, cs, clk, counter);
inpu塑封电感器t 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

  • 瞬态电压抑制器(TVS)相关参数定义与解释在设计汽车的过程中,一个主要的难题是例如控制单元、传感器、信息娱乐系统等保护电子设备,免遭出现在电源线上的有害浪涌、电压瞬态、ESD和噪声的损害。瞬态电压抑制器(TVS)是用于保护汽车电子产品的理想方

  • 采用集成DC-DC转换器的分布式电源系统介绍传统的分布式电源架构采用多个隔离型DC-DC电源模块将48V总线电压转换到系统电源电压,如5V、3.3V和2.5V。然而该配置很难满足快速响应的低压处理器、DSP、ASIC以及DDR存储器的负载要求。

  • 开关电源变压器问题请指导您好, 新手。 请教下, 我现在做24v 3A 的开关电源。 用的TOP269 。 现在测出现在电流才1A 左右。 请问下,我现在手头上有2个变压器。 都是24V 3a的 、 请问 这2个可以相互替换

  •