新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的可编程电阻的设计

基于FPGA的可编程电阻的设计

作者:时间:2011-01-11来源:网络收藏

1.4 输出显示电路
输出显示电路主要功能是实时显示对应的键盘输入电阻值的大小、当前工作的步数和预置时间。根据要求,本实验采用数码管来显示其阻值即可,能够满足要求,为了显示以上数据,每个阻值的显示至少需要九个数码管,其中五位用来显示当前阻值的大小,两位用来显示当前的工作步数,两位用来显示数据的工作时间,如果采用静态显示控制将会需要相当多的引脚端资源(9×2×8=144个),为了减少对引脚资源的使用,本设计中采用扫描的方式来实现LED的动态显示。

2 软件设计及部分仿真结果
本设计中,主要控制程序都是通过的软件编程来实现。软件设计大体可以分为三个大模块:键盘扫描模块、LED显示模块、继电器电阻驱动电路模块。
2.1 键盘扫描模块
键盘扫描模块主要用来检测外界输入的数据,主要由分频器电路、键盘扫描计数器电路、键盘行和列按键检测电路、按键抖动消除电路和键盘编码电路组成。
因为本设计中外接频率为一般用6MHz的信号作为时钟信号,但是键盘扫描不需要那么高的频率,所以需要一个分频电路将其频率降低为1kHz。键盘扫描计数器主要为键盘行和列按键检测电路和键盘编码电路服务,键盘行和列按键检测电路用来检测键盘输入所在行列的位置,按键抖动消除电路主要目的是为了避免按键时键盘产生的拉动效应使按键使能位产生不必要的抖动变化而造成重复统计按键次数的结果。同时,键盘位置的代号,并不是键盘上的按键值,所以要用键盘编码电路来传递真正的按键值。
2.2 LED显示模块
LED显示模块采用动态显示方式,这种实现方法是依次点亮各个LED数码管,循环进行显示,这种显示方式控制好数码管之间的延时相当重要,根据人眼视觉暂留原理,LED数码管每秒的导通16次以上,人眼就无法分辩LED数码管短暂的不亮,认为是一直点亮的,但延时也不是越小越好,因为LED数码管达到一定亮需要一定时间。为了达到较好的效果,本设计中延时取0.005s。
2.3 继电器电阻驱动电路模块
继电器电阻驱动电路模块主要是根据键盘输入的电阻值,判断相应的一些电阻是否要接入,从而使电阻对应的继电器闭合或断开,给予其对应的信号1或O即可。
2.4 仿真结果
由上述理论可知,电阻1的产生原理和电阻2的产生原理完全一样,为了使仿真结果更加明了,这里的仿真波形只用电阻1来验证其正确性,其仿真波形如图3所示。
c.JPG

此图是仿真图中的一部分,只选择了几个有代表性的信号显示出来加以说明,从图中可以看出有时钟信号clk,复位信号reset,电阻1选择信号 resistancel,numll至num51显示的分别是电阻值的小数位、个位、十位、百位、干位。step11和step21分别显示的是当前工作的步数
的个位和十位,其中time11和time21分别显示的是工作时间的个位和十位。Bus9则是动态显示时的数据信号,JIDIANQI则代表的是16个继电器的开关状态。从上图中可以看出该电阻的小数位的段码为07H,对应的二进制就是00000111,其对应显示的数字是7即小数位为7,同理可知其个位数为5,十位数为4,百位数为3,千位数为1,所以其阻值就为1345.7Ω,从图中可以看出总线上是循环传递着时间、步数和数值信息,根据阻值,其相应的继电器会闭合,根据上述电阻网络原理,J4、J6、J8、J9、J10、J12、J14闭合,其余的继电器均断开,即对应的二
进制代码为(0010101110101000)B,换算成十六进制即为2BA8,从上图可以看出其验证结果是正确的。

3 结束语
系统通过引进FPGA来实现电阻提供这一模块,且将周围其他数字逻辑电路也集成至该芯片中。这样既解决了系统的特殊性,又增强了系统的抗干扰性,提高了控制精度,也简化了调试。此外,本系统还将驱动电路、编解码电路等硬件通过VHDL语言在FPGA芯片中实现,相比以前的模拟电路和单片机的实现方法,使用的元器件更少,体积也更小,针对不同场合,修改起来也更加方便。具有很好的市场前景。

本文引用地址:http://www.eepw.com.cn/article/191402.htm

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭