我要发布
仪器网/ 仪器社区/ 频率计/ 跪求基于单片机数字频率计设计?(按要求)

跪求基于单片机数字频率计设计?(按要求)

26899803    2011-05-23    频率计    浏览 446 次

(一)任务 利用单片机设计并制作简易的数字频率计,电路组成框图如图所示。 (二)要求 1.基本要求 (1)能测量10HZ~500KHZ的方波。 (2)利用数码管或者液晶显示器显示频率。 (2.扩展部分(选作) (1)测量频率范围10HZ~2MHZ; ... (一)任务
利用单片机设计并制作简易的数字频率计,电路组成框图如图所示。

(二)要求
1.基本要求
(1)能测量10HZ~500KHZ的方波。
(2)利用数码管或者液晶显示器显示频率。

(2.扩展部分(选作)
(1)测量频率范围10HZ~2MHZ;
(2)可以测量正弦波,三角波;
(3)声音播报频率值;
(4)其它。

精彩问答
豆豆酱999959 发布日期:2011-05-24

频 实验图片我复制不过来!!抱歉哦!对了你得考虑你们用试验箱里面的芯片!











设 计 者:
班 级:08级通信工程2班

目录

设计要求………………………………………………3
实验参考资料…………………………………………3
设计思想及原理框图…………………………………3
系统框图………………………………………………4
电路工作原理…………………………………………4
电路综合图……………………………………………5
主要VHDL源程序…………………………………..7
单元电路仿真图……………………………………...11
硬件验证……………………………………………...13
结果验证……………………………………………...14
设计心得……………………………………………...16

频率计的设计
设计者: 指导老师: 时间:2010-12-14
(一)设计要求;
1、设计一个六位十进制数字频率计,测量1~9999999Hz的信号频率,用数码管显示出来。
2、采用记忆显示的方式,计数过程不刷新数据,只显示计数结果。
3、单元电路模块要使用VHDL语言。
4、输入信号为方波
5、必须使用硬件验证
(二)实验参考资料:
《EDA实用教程》作者: 潘松 黄继业 参考书里面:实验 第12章 电子系统设计实践 12.1 精度频率计设计

《EDA实用技术及应用》作者:刘艳萍//高振斌//李志军

《新编数字电路与EDA技术实验实训指导》作者: 陈小毛 胡机秀 卜波涛

(三)设计思想及原理框图:
设计思想:
根据系统的设计要求,频率计电路可分为测频控制器电路、十进制技术电路、四位锁存器电路、动态扫描译码显示电路等四个子模块,其中动态扫描电路置零功能,根据此思路该设计采用模块化设计;
系统框图

(五)电路工作原理:
根据频率计的定义和频率测试的基本原理,测频信号的频率必须有一个对输入信号脉冲计数允许的闸门信号,闸门信号的宽度为1S,在闸门信号有效的时间内对被测信号计数,即为信号频率。;1S计数结束后,计数值锁入锁存器的锁存信号下和为下一测频计数周期做准备的计数器清0信号。频率计闸门时序如下图所示。

这三个信号由测频控制信号发生器TESTCTL产生,对其的设计要求是,TESTCTL的计数使能信号输出CNT_EN能产生一个1S脉宽的周期信号,并对频率计的每一个计数器CNT10的使能端ENA进行同步控制。当CNT_EN为高电平时,允许计数;当CNT_EN为低电平时,停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存器LOAD的上跳沿将计数器在前1S的计数值锁存入各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期的清零信号对计数而不断闪烁。信号所存后,还必须对清零信号RES_CNT对计数器进行清零,为下1S的计数操作做准备。

(四)电路综合图

(六)主要VHDL源程序
1.七段显示译码器源程序及模块:

library ieee;
use ieee.std_logic_1164.all;
entity Dec7s is
port(a:in bit_vector(3 downto 0);
led7s:out bit_vector(7 downto 0));
end;
architecture one of dec7s is
begin
process(a)
begin
case a(3 downto 0) is
when"0000"=>led7s<="00111111";
when"0001"=>led7s<="00000110";
when"0010"=>led7s<="01011011";
when"0011"=>led7s<="01001111";
when"0100"=>led7s<="01100110";
when"0101"=>led7s<="01101101";
when"0110"=>led7s<="01111101";
when"0111"=>led7s<="00000111";
when"1000"=>led7s<="01111111";
when"1001"=>led7s<="01101111";
when"1010"=>led7s<="01110111";
when"1011"=>led7s<="01111100";
when"1100"=>led7s<="00111001";
when"1101"=>led7s<="01011110";
when"1110"=>led7s<="01111001";
when"1111"=>led7s<="01110001";
when others=>null;
end case;
end process;
end one;

。2.测频控制信号发生器源程序及模块:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TESTCTL_07 IS
PORT(CLKK:IN STD_LOGIC;
CNT_EN,RST_CNT,LOAD:OUT STD_LOGIC);
END TESTCTL_07;
ARCHITECTURE one OF TESTCTL_07 IS
SIGNAL DIV2CLK:STD_LOGIC;
BEGIN
PROCESS(CLKK)
BEGIN
IF CLKK'EVENT AND CLKK='1' THEN DIV2CLK<=NOT DIV2CLK;
END IF;
END PROCESS;
PROCESS(CLKK,DIV2CLK)
BEGIN
IF CLKK='0' AND DIV2CLK='0' THEN RST_CNT<='1';
ELSE RST_CNT<='0'; END IF;
END PROCESS;
LOAD <=NOT DIV2CLK; CNT_EN<=DIV2CLK;
END ONE;

3.十进制计数器源程序及模块:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT10_07 IS
PORT(CLK,RST,ENA:IN STD_LOGIC;
OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END CNT10_07;
ARCHITECTURE one OF CNT10_07 IS
SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
P_REG:PROCESS(CLK,RST,ENA)
BEGIN
IF RST='1' THEN CQI<="0000";
ELSIF CLK'EVENT AND CLK='1' THEN
IF ENA='1' THEN
IF CQI<"1001" THEN CQI<=CQI+1;
ELSE CQI<="0000";
END IF;
END IF;
END IF;
OUTY<=CQI;
END PROCESS P_REG;
COUT<=CQI(0) AND CQI(1) AND CQI(2) AND CQI(3);
END one;
4.四位锁存器源程序

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY REG4B_07 IS
PORT(LOAD:IN STD_LOGIC;
DIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END REG4B_07;
ARCHITECTURE two OF REG4B_07 IS
BEGIN
PROCESS(LOAD,DIN)
BEGIN
IF LOAD'EVENT AND LOAD='1' THEN DOUT<=DIN;
END IF;
END PROCESS;
END two;
5.数码扫描控制器源程序及程序:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY SELTIME_07 IS
PORT(CLK,RESET:IN STD_LOGIC;
GE,SHI,BAI,QIAN,WAN,SHIWAN,BAIWAN,QIANWAN:IN STD_LOGIC_VECTOR(3 DOWTO 0);
DATAOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
END SELTIME_07;
ARCHITECTURE one OF SELTIME_07 IS
SIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
SEL<=COUNT;
PROCESS(CLK,RESET,COUNT)
BEGIN
IF RESET='0' THEN COUNT<="000";
ELSIF(CLK'EVENT AND CLK='1') THEN
IF(COUNT>="111") THEN COUNT<="000";
ELSE COUNT<=COUNT+1;
END IF;
END IF;
CASE COUNT(2 DOWNTO 0) IS
WHEN "000"=>DATAOUT<=GE;
WHEN "001"=>DATAOUT<=SHI;
WHEN "010"=>DATAOUT<=BAI;
WHEN "011"=>DATAOUT<=QIAN;
WHEN "100"=>DATAOUT<=WAN;
WHEN "101"=>DATAOUT<=SHIWAN;
WHEN "110"=>DATAOUT<=BAIWAN;
WHEN "111"=>DATAOUT<=QIANWAN;
END CASE;
END PROCESS;
END one;

(七)单元电路仿真图:
1.七段显示译码器仿真图

2..测频控制信号发生器仿真图

3.十进制计数器仿真图

4.四位锁存器仿真图

5.数码扫描控制器仿真图

6.总的计时电路仿真图

(八)硬件验证
引脚分部图
1.。锁定引脚图

引脚说明:
BCD[0。。6]为七段数码管输出端 Speaker为整点报时信号输出端
Clk为计数器秒脉冲输入端 Clk_load 为置数时钟信号输入端
Clk_4hz、Clk_4mhz 为整点报时音乐模块时钟信号输入端
Clk_shaomiao 显示模块扫描时钟信号输入端
CLR为计数器复位信号输入端 、低电平有效
Load_hour、load_min、load_week分别为时、分、星期置数控制端,高电平有效
Reset为数码管复位信号输入端,低电平有效
SEL[0..2]为数码管片选信号输出端

2.采用芯片

芯片型号:本实验采用三星公司的cyclone 下EP1C12Q240C8N 芯片。
(九)结果验证:
各项指标都达到设计要求(如上图)。实验数据分析
发生器频率 实测频率
1HZ 1HZ
2HZ 2HZ
3HZ 3HZ
4HZ 4HZ
5HZ 5HZ
6HZ 6HZ
7HZ 7HZ
8HZ 8HZ
9HZ 9HZ
10HZ 10HZ
20HZ 20HZ
30HZ 30HZ
40HZ 40HZ
50HZ 50HZ
60HZ 60HZ
70HZ 70HZ
80HZ 80HZ
90HZ 90HZ
100HZ 100HZ
200HZ 200HZ
300HZ 300HZ
400HZ 400HZ
500HZ 500HZ
600HZ 600HZ
700HZ 700HZ
800HZ 800HZ
900HZ 900HZ
1KHZ 1KHZ
2KHZ 2KHZ
3KHZ 3KHZ
4KHZ 4KHZ
5KHZ 5KHZ
6KHZ 6KHZ
7KHZ 7KHZ
8KHZ 8KHZ
9KHZ 9KHZ
10KHZ 10KHZ
20KHZ 20KHZ
30KHZ 30KHZ
40KHZ 40KHZ
50KHZ 50KHZ
60KHZ 60KHZ
70KHZ 70KHZ
80KHZ 80KHZ
90KHZ 90KHZ
100KHZ 100KHZ
200KHZ 200KHZ
300KHZ 299.999KHZ
400KHZ 399.999KHZ
500KHZ 499.999KHZ
600KHZ 599.999KHZ
700KHZ 699.999KHZ
800KHZ 799.999KHZ
900KHZ 899.999KHZ
1MHZ 1.000001MHZ
2MHZ 1.999997MHZ
3MHZ 2.999998MHZ
4MKZ 3.999993MHZ
5MKZ 4.999993MHZ
6MKZ 5.999994MHZ
7MHZ 6.999993MHZ
8MHZ 7.999990MHZ
9MHZ 9.000007MHZ
10MHZ 9.999988MHZ

误差分析
1HZ200KHZ 误差为零;300HZ10MKZ 误差约为0.0001%

(十)设计心得
通过这个简单频率计的设计,让我了解到设计电路的一些基本方法,常用手段,开阔了思维,也提高了我对电路设计的兴趣,可以为我以后的学习和工作提供了一个很好的学习经验。通过在网上查找资料,才感觉自己的专业知识积累太少,以后应该注意知识的积累。这次课程设计更让我感到理论和实际之间的差异。我也越来越强烈地感到要掌握一门技术,唯yi的办法也是Z好的办法就是实践、实践再实践。就像搞电子设计等,一定要有一个项目逼迫自己去学习、逼迫自己去查资料,否则,一味的钻研书本,很可能今天看了某个知识点,明天就忘记了。唯有真正动过手才能把知识烂熟于胸,甚至终身难忘……
全部评论
QL猫猴子 发布日期:2011-06-07
遇上了和楼主一样的题目 寻找中``
879844530 发布日期:2011-06-02
覃懂 你个sabi
Uj01us9 发布日期:2011-05-28
我有51单片机的频率计,基础部分没问题,用数码管显示,所以可能有一点点的误差,不是很大
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控