基于CPLD的频谱电平显示电路设计与实现

[09-12 18:26:17]   来源:http://www.88dzw.com  EDA/PLD   阅读:8157

文章摘要:可以看出,软件设计的功能模块与系统组成中的核心模块非常接近。3.1 分频与列选 扫描控制模块分频模块的作用是将12MHz的有源晶振时钟信号通过软件设计的方法分频得到200Hz的 列选扫描时钟信号。 列选扫描控制模块的作用是设计一软件计数器,将200Hz内部信号转换为列选扫描信号 (SEL[2 downto 0]),仿真波形如图3所示。该信号送至74HC138以后能够动态选中LED点阵的 某一列(共阴极),送至A/D0809以后能够选择相应中心频率的音频信号进行数模转换。3.2 按键去抖模块去抖的基本思路是设计一个移动寄存器,移位脉冲的周期约为5ms,当按键输入的低电 平信号持续三个以上的脉冲周

基于CPLD的频谱电平显示电路设计与实现,标签:eda技术,eda技术实用教程,http://www.88dzw.com


  可以看出,软件设计的功能模块与系统组成中的核心模块非常接近。

  3.1 分频与列选 扫描控制模块

  分频模块的作用是将12MHz的有源晶振时钟信号通过软件设计的方法分频得到200Hz的 列选扫描时钟信号。 列选扫描控制模块的作用是设计一软件计数器,将200Hz内部信号转换为列选扫描信号 (SEL[2 downto 0]),仿真波形如图3所示。该信号送至74HC138以后能够动态选中LED点阵的 某一列(共阴极),送至A/D0809以后能够选择相应中心频率的音频信号进行数模转换。


  3.2 按键去抖模块

  去抖的基本思路是设计一个移动寄存器,移位脉冲的周期约为5ms,当按键输入的低电 平信号持续三个以上的脉冲周期时才输出一个低电平脉冲,达到去抖的目的。部分程序如下:

  --****设计一个3位移位D寄存器****--

  process(CLK_200Hz)

  begin

  IF(CLK_200Hz'EVENT AND CLK_200Hz='1')THEN

  Q<=Keyin&Q(2 downto 1);

  END IF;

  end Process;

  flag<=Q(2) or Q(1) or Q(0);

  Keyout<='0'when flag='0' else--如果连续3个CLK后Q仍为低电平,则输出低电平'1';

  END a;

  3.3 线性比较模块

  由于A/D转换后的8位数据电平信号共有256个组态,而终端显示模块为8*8LED点阵, 8*8LED点阵的每列显示梯级最多为8级,若加上全灭状态,8*8LED点阵的显示梯级状态共有9 种,因此,需要将A/D转换后的8位数据电平信号按照人眼的视觉习惯转换为9个梯级的数据 信号,本设计采用函数(function)的方法实现了信号转换功能,部分程序如下:

  function DATA_YM (indata :std_logic_vector(7 downto 0))

  return integer is

  variable result :integer range 0 to 8;---比较函数输出begin

  if indata<16 then result :=0;

  elsif indata>=16 and indata<48 then

  result :=1;

  elsif indata>=48 and indata<80 then

  result :=2;

  elsif indata>=80 and indata<112 then

  result :=3;

  elsif indata>=112 and indata<144 then

  result :=4;

  elsif indata>=144 and indata<176 then

  result :=5;

  elsif indata>=176 and indata<208 then

  result :=6;

  elsif indata>=208 and indata<240 then

  result :=7;

  else

  result :=8;

  end if;

  return result;

  end function;

  3.4 显示控制模块

  本模块由显示模式控制、显示数据ROM模块组成。显示模式控制模块采用一个Process 进程语句循环定义了12种显示模式,具体显示的模式由按键按下的次数决定,即按键次数作 为内部计数信号,每种计数状态则对应一种ROM地址的起始值,从而实现了ROM地址能随按键 次数而变化的确定关系。

  显示数据ROM模块将所有的显示模式数据以ROM表格数据的形式进行片内存储,以便根据 A/D转换后的数据信号直接调用该表格数据。本模块的功能仿真如图4所示:


  结果表明,该模块能够根据不同的地址值输出相应的显示模式数据,经驱动电路后送至 LED点阵的16个阳极,能实现相应的显示模式的自动切换或按键输入切换。

上一页  [1] [2] [3]  下一页


Tag:EDA/PLDeda技术,eda技术实用教程EDA/PLD
分类导航
最新更新
热门排行