数字频率计测频系统的设计毕业论文(编辑修改稿)内容摘要:
计数器内部的计数功能 , 计数器的内部计数 信号 clk 和频率计数器的使能信号 enable。 频率计数器的计数模块的输出信号就是个位 sec、 十位 sec10。 电路图如 图 26 所示。 图 26 计数模块电路图 10 十进制计数器 , 它的输入端口主要包括使能端口 enable 计数输入端口clk, 输出端口主要包括计数输出端口 q 和进位输出端口 cout。 计数模块程序及仿真图 计数模块的程序如下: LIBRARY IEEE。 USE。 USE。 ENTITY count10 IS PORT( enable:IN STD_LOGIC。 clk:IN STD_LOGIC。 cout:out STD_LOGIC。 q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END count10。 ARCHITECTURE rt1 OF count10 IS SIGNAL q_tmp:STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN process(clk) begin IF(clk39。 event and clk=39。 139。 )then if(enable=39。 139。 )then if(q_tmp=1001)then q_tmp=0000。 else q_tmp=q_tmp+1。 end if。 end if。 end if。 q=q_tmp。 end process。 cout=39。 139。 when q_tmp=1001and enable=39。 139。 else39。 039。 end rt1。 描述了上述的十进制计数器后 ,我们就可以根据图三所示的结构框图来进行频率计数器计数模块的 VHDL 描述了。 在频率计数器计数模块的 VHDL描述中,我们引用元件的形式调用上面描述的十进制计数器。 从而得到频率计数器的计数功能,程序如下: LIBRARY IEEE。 USE。 ENTITY time_counter IS 11 PORT( enable:IN STD_LOGIC。 clk0:IN STD_LOGIC。 sec10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 sec:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END time_counter。 ARCHITECTURE rt1 OF time_counter IS COMPONENT count10 PORT( enable:IN STD_LOGIC。 clk:IN STD_LOGIC。 cout:out STD_LOGIC。 q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 end COMPONENT。 SIGNAL co1,co2:STD_LOGIC。 BEGIN U1:count10 PORT MAP(enable,clk0,co1,sec)。 U2:count10 PORT MAP(co1,clk0,co2,sec10)。 end rt1。 编译通过后,产生的符号如图 27 所示,仿真 波形图 如图 28 所示。 图 27 计数模块 图 图 28 计数模块的仿真波形图 显示模块 有了计数模块还不能满足设计的要求,任何一个设计都是需要一定的硬件设备来表达。 否则,只有一个理论的程序是不足以来证明一个设计的完整性。 在参考一些资料和根据实验提供的条件,我在这个设计中采用 2 个七段数码管来对这个频率计进行实际的表达。 频率计数器要将计数的结果显示出来 , 就必需设计一个计数显示模块来 12 完成该显示功能。 频频计数器的显示模块的输入信号主要来自于频频计数器计数模块的计数信息 , 它的输出信号是 choose 和 segment, 以用来驱动计数显示的 8 个 LED 七段显示数码管 , 在输出信号中 , 为了节省资源 ,我们采用循环点亮 LED 七段显示数码管的方法来显示频率计数器的计数输出 .我们通过信号 choose(7downto0)来进行 8 个 LED 七段显示数码管的选择 ,从而将输出信号 segment(6downto0)送到相应的 LED 七段显示数码管上以完成频率计数的显示。 计数显示模块的结构框图如图 29 所示 : 图 29 显示模块电路图 从图 29 以看出 ,计数显示模块可由三个部分组成 :八进制计数器 、 计数位选择电路 、 七段显示译码电路。 下面描述一下计数显示模块的工作过程 :在外部计数信号 clk 的作用下 ,八进制计数器的输出从 000 到 111 按顺序循环变化 ,输出信号为 sel。 信号 sel 作为计数位选择电路的选择信号 ,用来选择对应位的数据并将其转换为四位位矢量。 最后将计数位选择电路的输出信号 q 送到七段显示译码电路的输入端口 , 将其转化成用来点燃 LED 七段显示数码管的 segment 信。 七段数码管的描述 我们所使用实验箱中的 8 个七段数码管有这样一个特点, 8 个数码管中每一个数码管中相同的段都是连在一根线上的。 如图 210 所示 : 图 210 七段数码管 故只要有一个数码管的一段亮, 8 个数码管中相同的段都会亮。 在选用 13 数码管后我们 需要考虑一个问题,就是如何在每个数码管上正确的显示程序中每一位要显示的数据, 也就是如何将前面的计数模块中要显示的数字准确的表达在数码管上。 在这里就运用了人体生理学的一个结论,人的眼睛能分辨的时间是 1/16 秒,即频率为 25Hz 左右。 有了这个结论后,我们就可以解决正确显示的问题了,应用动态扫描的方法,只要我 们在显示模块中所使用的频率大于 25Hz 就可以让每个数码管正确的显示程序中所要求的数字了。 因此,在显示模块中首先要设计一个分频器,实验提供的脉冲是 1KHz,我们只要设计的分频器所分出来的频率大于 25Hz 即可,在此我选择一个 8 分频器。 8 分频器的输入信号为 clk,输出信号为 sel(2 DOWNTO 0)。 显示模块中数字位选的问题解决后就需要解决另外一个问题了,那就是如何将程序中的数字在数码管上有效显示出来,即如何让我们能一眼就看出来显示的数字是 0、 9 这十个数字。 根据数码的结构特点 ,我们采用高低电平的方法点亮数码管对应的段即可。 七段数码管的显示结构如图 211 所示: 图 211 数码管管脚图 表 21 详细的 列出了 0、 9 这十个数 与 七段数码管 的对应关系。 表 21 7 段数码管的显示关系 段数字 a b c d e f g 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 2 1 1 0 1 1 0 1 3。数字频率计测频系统的设计毕业论文(编辑修改稿)
相关推荐
时间。 加在 RST端的高电平信号要维持足够长的时间才能保证系统可靠复位。 一般来说复位方式有上电自动复位和按钮复位两种。 图 33是 AT89c51 单片机的上电复位和按钮复位组合电路。 图 33 复位电路 A/D转化 模块 现实中大多数都是模拟量,这样并不能被我们直接采用,所以人们研制了数字量的器件,它能把模拟的物理量转变成我们能够利用的数字量,这是单片机几桶收集整理转变数据的关键
6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U2A T 8 9 C 5 2X1C R Y S T A LC12 2 p FC22 2 p FC31 0 u F
24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是 12MHz,因而时钟信号的震荡频率为 12MHz。 复位电路 单片机在启动运行时都需要复位,使 CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。 其复位电路图如图 10 所示。 2 2 uR22 0 0 22uFC1GND1KR1Res3200R00Res3RETSSWPB 图 10
alue_buff[k]) k=j。 {temp=value_buff[k]。 value_buff[k]=value_buff[i]。 value_buff[i]=temp。 } } return value_buff[(N1)/2]。 } 算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。 这种信号的特点是信号本身在某一数值范围附近上下波动,如测量流量、液位时经常遇到这种情况。
片机。 U2 温度传感器。 U3 集成芯片。 U4 4位 7段数码管 共阳。 串口头 母头。 USB头。 洞洞板 其中(一些元器件需要注意): 4位 数码管 共阳 焊接的时候顺序一定要对,千万不能跟共阴的数码管搞混合。 DS18B20温度传感器 — 注意接地和 VCC接口不要接反 和最小系统电路连接时要接对引脚不能搞混。 串口头 母头 RS232端口引脚定义: (因为计算机后面的串口多为公头
往行人较多 , 需要各司其职 , 以确保仪器设备和人员的安全 ; 其次 , 城区地物复杂 , 碎部点密集 , 单靠画草图和事后回忆难度很大 ; 再次 , 每天采集的野外数 11 据若不及时编辑整理 , 则内业工作量相当烦琐 , 且容易出错。 只有实现野外实时成图 ,才能保证高质量和高效率。 在空旷的一般地区测图 , 可采用全站仪存贮数据 + 草图的 2 人测图方式。 首先 ,从节约成本考虑 ,