简单频率计的制作
EDA简易数字频率计设计
EDA简易数字频率计设计摘要EDA(Electronic Design Automation)是电子设计自动化的缩写,是现代电子工业领域中的一种重要工具。
EDA工具可以帮助工程师完成电路设计、仿真、验证和布局等工作,从而提高设计效率和精度。
本文将介绍如何通过EDA工具设计一个简单的数字频率计。
设计原理数字频率计是一种可以实时测量电信号频率的仪器。
其工作原理是利用计数模型,通过计算信号周期数与时间,间隔测算信号频率。
本文设计的数字频率计采用2种常见的计数模型:频率分频计数和门限计数。
频率分频计数频率分频计数法是利用可编程可除模块,将输入的高频脉冲信号分频后,通过计数器来计算脉冲个数,最终计算出信号的频率。
其计数原理如下图所示:图1:频率分频计数法图1:频率分频计数法其中,n为分频系数,f为输入信号频率。
门限计数门限计数法是将输入信号经过比较门限后,产生一个矩形脉冲,再利用计数器计算脉冲个数,最终计算出信号的频率。
其计数原理如下图所示:图2:门限计数法图2:门限计数法其中,T表示输入信号周期,Δt为门限宽度。
设计流程本文采用EDA工具LTspice进行数字频率计的设计。
使用LTspice的原因是它是一款功能强大、易于学习、免费的EDA软件,广泛应用于电路设计和仿真领域。
设计流程如下:1.确定输入信号的电路参数:输入信号频率、振幅、时钟等。
2.选择计算频率的计数模型:这里采用频率分频计数和门限计数2种模型,建立计算模型电路。
3.进行仿真,测试电路的性能:可以通过分析波形图、输出计数结果等方式验证电路的正确性和有效性。
设计实例本文将以一个简单的设计实例来说明如何进行数字频率计的设计。
假设输入信号频率为1 kHz,振幅为5V,计数器工作电压为3.3V,门限计数的门限宽度为10 us,计数模型电路如下图所示:V1 IN 0 PULSE(0 5 0 10n 10n 1u 2u)R1 IN N1 50C1 N1 N2 10nD1 N2 0 DQ1 D Q3 VCC TXR2 TX N3 1megC2 N3 0 1uXU1 Q3 CLK TX DFFXU2 CLK 0 N5 D2R3 D2 N7 10kC3 N7 0 1n以上代码中,V1为输入信号源,R1和C1组成低通滤波器,滤除杂波信号,D1、Q1、R2、C2和D2构成频率分频计数器,XU1和XU2分别为D触发器和门限计数器。
简易数字频率计设计 完整版
河南科技大学课程设计说明书课程名称现代电子系统设计题目简易数字频率计设计学院__电信学院_____班级_______学生姓名____________________指导教师_________日期__2010-01-10______课程设计任务书(指导教师填写)课程设计名称现代电子系统课程设计学生姓名刘轮辉专业班级电信科071 设计题目简易数字频率计设计一、课程设计目的掌握高速AD的使用方法;掌握频率计的工作原理;掌握GW48_SOPC实验箱的使用方法;了解基于FPGA的电子系统的设计方法。
二、设计内容、技术条件和要求设计一个具有如下功能的简易频率计。
(1)基本要求:a.被测信号的频率范围为1~20kHz,用4位数码管显示数据。
b.测量结果直接用十进制数值显示。
c.被测信号可以是正弦波、三角波、方波,幅值1~3V不等。
d.具有超量程警告(可以用LED灯显示,也可以用蜂鸣器报警)。
e.当测量脉冲信号时,能显示其占空比(精度误差不大于1%)。
(2)发挥部分a.修改设计,实现自动切换量程。
b.构思方案,使整形时,以实现扩宽被测信号的幅值范围。
三、时间进度安排布置课题和讲解:1天查阅资料、设计:4天实验:3天撰写报告:2天四、主要参考文献何小艇《电子系统设计》浙江大学出版社2008.1潘松黄继业《EDA技术实用教程》科学出版社2006.10指导教师签字:2009年12月14日目录一、摘要 (4)二、系统方案论证 (4)2.1频率测量方案 (5)三、数字频率频率计的基本原理 (6)四、各个模块设计 (7)4、1 A/D模数转换模块 (8)4、2 比较模块 (9)4、3 频率和占空比测量模块 (10)五、各个模块仿真波形 (12)六、心得体会 (14)七、参考文献 (15)附录一 (16)附录二 (22)一.摘要频率计是数字电路中的一个典型应用,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,频率测量在科技研究和实际应用中的作用日益重要。
简单数字频率计的设计与制作
简单数字频率计的设计与制作1结构设计与方案选择1.1设计要求(1)要求用直接测量法测量输入信号的频率(2)输入信号的频率为1~9999HZ1.2设计原理及方案数字频率计是直接用十进制的数字来显示被测信号频率的一种测量装置。
它不仅可以测量正弦波、方波、三角波和尖脉冲信号的频率,而且还可以测量它们的周期。
所谓频率就是在单位时间(1s)内周期信号的变化次数。
若在一定时间间隔T内测得周期信号的重复变化次数为N,则其频率为f=N/T(1-1)据此,设计方案框图如图1所示:图1 数字频率计组成框图图中脉冲形成的电路的作用是将被测信号变成脉冲信号,其重复频率等于被。
时间基准信号发生器提供标准的时间脉冲信号,若其周期为测信号的频率fX1s,则们控电路的输出信号持续时间亦准确的等于1s。
闸门电路由标准秒信号进行控制当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数器译码显示电路。
秒信号结束时闸门关闭,技计数器得的脉冲数N是在1秒时间内的累计= N Hz。
数,所以被测频率fX被测信号f经整形电路变成计数器所要求的脉冲信号○1,其频率与被测信X号的频率相同。
时基电路提供标准时间基准信号○2,其高电平持续时间t1=1 秒,当l秒信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到l秒信号结束时闸门关闭,停止计数。
若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率f=NHz,如图2(a)所示,即为数字频率计的组成框图。
图2(a)数字频率计的组成框图图2(b)数字频率计的工作时序波形逻辑控制单元的作用有两个:其一,产生清零脉冲④,使计数器每次从零开始计数;其二,产生所存信号⑤,是显示器上的数字稳定不变。
这些信号之间的时序关系如图2(b)所示数字频率计由脉冲形成电路、时基电路、闸门电路、计数锁存和清零电路、译码显示电路组成。
1.3数字频率计的主要技术指标1.3.1 频率准确度:一般用相对误差来表示,本文设计的频率准确度并没有要求。
简易数字频率计的设计(可测周期等)
摘要本文对基于单片机的数字频率计系统进行了研究。
首先在绪论中介绍了本课题的课题背景、研究意义及完成的功能。
本系统是以单片机的基本语言C语言来进行软件设计,51的编程语言常用的有二种,一种是汇编语言,一种是C 语言。
汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。
综合以上C 语言的优点,我在编写本系统程序时选择了C 语言。
正文中首先介绍了系统的总体设计思路,然后简单描述系统硬件工作原理,且附以系统硬件设计框图;接着具体描述了系统的软、硬件设计,仿真结果,误差分析;最后对本次设计做出了简单的总结、并且提出一些教学建议,文档还附上了本次系统设计的电路原理图、PCB图及元器件清单。
本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
关键词:单片机;编程;系统设计ABSTRACTIn this paper, based on single chip digital frequency meter systems were studied.First described in the introduction the subject of this topic background, research significance and complete functions. The system is based on SCM's basic language C language for software design, programming language commonly used in 51 there are two, one is in assembly language, one is the C language. Assembly language code generation highly efficient machine readable, but they are not strong, complex process that is even more difficult to read, while the C language, in most cases, the efficiency of its machine code generation and assembly language equivalent, but readable and portability is far more than assembly language, but can also be embedded in C language compilation to solve the time-sensitive nature of coding problems. To sum up the advantages of C language, I am in the preparation of the system selected C language program. First introduced the system in the body of the overall design idea, and then a brief description of system hardware works, and attached to the system hardware design block diagram; then specifically describes the system's software and hardware design, simulation results, error analysis; Finally, to make this design a simple summary, and some teaching suggestions, the document is also attached to this sub-system design, circuit schematics, PCB drawings and parts lists.This article written by the leading idea is that hardware and software combined with hardware-based, to the preparation of various functional modules.Keywords: microcontroller; programming; system design目录1 设计课题任务、功能要求说明及总体方案介绍 (4)1.1 设计课题任务 (4)1.2 功能要求说明 (4)1.3 设计课题总体方案介绍及工作原理说明 (4)2 设计课题硬件系统的设计 (6)2.1 设计课题硬件系统各模块功能简要介绍 (6)2.2 设计课题电路原理图、PCB图、元器件布局 (6)2.3 设计课题元器件清单 (6)3 设计课题软件系统的设计 (7)3.1 设计课题使用单片机资源的情况 (7)3.2 设计课题软件系统各模块功能简要介绍 (7)3.3 设计课题软件系统程序流程框图 (8)3.4 设计课题软件系统程序清单 (9)4 设计结论、仿真结果、误差分析、教学建议 (15)4.1 设计课题的设计结论及使用说明 (15)4.2 设计课题的仿真结果 (15)4.3 设计课题的误差分析 (17)4.4 设计体会 (17)4.5 教学建议 (17)参考文献 (18)鸣谢 (19)附录1:元器件清单 (20)附录2:电路原理图 (21)附录3:元器件布局图 (22)附录4: PCB图 (23)1 设计课题任务、功能要求说明及总体方案介绍1.1 课题设计任务设计一个能够测量矩形波信号的频率、周期、脉宽、占空比的频率计。
跟我学51单片机系列教程(九)——单片机简易频率计
皇 _ …… … … 颚 … … … i 程序设计
2 .测周 法
在前文提到,在对低频信号进行测量时 ,如果还采用测频
法 ,会 导致 由计数值 引起 的 巨大误差 。 因此 ,在低 频时通 常使 用测 周法 ,即利 用信号 的一个 周期作 为时 间闸 门信 号 ,在这个 信 号 周期 对单 片机 内部的 已知脉 冲 进行计 数 。如 图2 示 :其 所 中基 准信号 的周 期为T ,被 测信 号的 周期为 T ,则 在被测 信号 s X 的一个 周 期T 内 ,记录 基准 信号 的周期 数为N ,则 被测信 号的 x s 频 率可 以表示 为 :
中 ,定义 被测信 号 的频 率为 F,闸 门开 启时 间为T , 段时 间 x W 在这
原 理简介
众 所 周 知 ,在 电子技 术 领 域 内 ,频 率 是一 个 很 基本 的参
内所计量得 到的脉 冲个数 为N ,则被测信 号频 率可 以表示 为 : x
F = N ,w x xT 。 () 1
下 ,通过 实际 的测试显 示 ,从 而达 到实验和 验证 的 目的 。 当然 有 条件 的读者可 以采 用外接信 号源 的方法 ,这样更 准确 ,但是 应 当注 意 的是 ,所接 入 的信号 应为 T L T 方波 或者 经变 换整 形得 到 后的方 波信号 。 关键 程序如 程序清 单。
从公式 () 以看 出 ,要 得 到频 率 F ,应知道 Tg N。例 2中可 x s1s ] 如将 5 单片机 中的一 个定 时器用 于内部计 数 ,其每 计一次 的周 1 期 时间 即为基准 信号 的周期 T 这个 由单片 机的 晶振和 指令运 s(
频率计的制作实验报告
频率计的制作实验报告实验目的:本实验的目的是通过制作一个简单的频率计,了解频率计的工作原理以及实际应用。
实验仪器与材料:1. 模块化电子实验箱2. 函数信号发生器3. 示波器4. 电压表5. 电阻、电容等基本元件实验原理:频率计是用于测量信号频率的一种仪器。
其基本原理是利用周期性信号的周期长度与频率之间的倒数关系,通过计算周期长度来确定信号的频率。
实验步骤:第一步:搭建电路1. 将函数信号发生器的输出接入电路板上的输入端,作为输入信号源。
2. 将电路板上的元件按照电路图连接,包括电容、电阻等。
确保电路连接正确。
第二步:调试电路1. 将函数信号发生器的频率设置为一个已知的数值,例如1000Hz。
2. 使用示波器测量电路输出端信号的周期长度。
3. 使用计算器计算出信号的频率。
4. 调整电路参数,直到测量到的频率与设定的频率相等。
第三步:验证测量准确性1. 将函数信号发生器的频率调整到其他已知值,例如2000Hz。
2. 重复上述步骤,测量并计算信号的频率。
3. 比较测量到的频率与设定的频率,验证测量准确性。
实验结果与分析:通过实验,我们成功制作了一个简单的频率计。
在调试电路的过程中,我们可以通过测量输出信号的周期长度,并利用频率的倒数与周期长度的关系计算出信号的频率。
通过与设定的频率进行比较,验证了测量的准确性。
实验中可能存在的误差主要来自于电路元件的稳定性以及测量设备的精度。
为了提高测量准确性,可以选择更稳定的元件,并使用更精确的测量设备。
实验结论:本实验通过制作一个简单的频率计,深入了解了频率计的工作原理和实际应用。
通过测量信号的周期长度并计算出频率,我们可以准确地测量信号的频率。
实验结果验证了测量的准确性,并提出了进一步提高准确性的建议。
频率计在电子测量中具有重要的应用价值,可以广泛应用于通信、电子设备维修等领域。
简易数字频率计的设计与制作
简易数字频率计的设计与制作作者:赵玉龙【摘要】:本设计是基于单片机内部的两个定时器/计数器与外围硬件相结合,并通过一定的软件控制达到测量频率的目的的简易数字频率计,可以直接精确测量1KHZ到65.535KHZ的频率范围。
本设计的优点在于直接利用单片机进行频率的测量,更加的方便,实用。
【关键词】:单片机频率测量前言单片机即单片微控制器单元,由微处理器,存储器,I/O接口,定时器/计数器等电路集成在一块芯片上构成,现在应用于工业控制,家用民用电器以及智能化仪器仪表,计算机网络,外设,通信技术中,具有体积小、重量轻、性价比高、功耗低等特点, 同时具有较高的抗干扰性与可靠性可供设计开发人员灵活的运用各种逻辑操作,实现实时控制和进行必要的运算.目前单片机更朝着大容量、高性能与小容量、低廉化、外围电路内装化以及I/O接口的增强和能耗降低等方向发展.本设计的意义在于如何利用较少的硬件达到直接测量较高精度频率的目的,更加的方便,快捷,相对于传统的数字频率计实用性更高。
第一章 系统硬件电路的设计1.1方案的选择:方案一.采用组合电路和时序电路等大量的硬件电路来构成,利用555多谐振荡产生闸门时间,两个D 触发器来进行门控信号的选择,数码管,以及其他硬件电路组成。
方案二.利用一块AT89C51单片机芯片直接来驱动数码管。
比较方案一与方案二在实现功能一样的情况下,我们可以发现纯粹利用硬件电路来实现不仅产品体积较大,运行速度慢,而且增加了许多的硬件成本,而利用单片机体积小、功能强、性能价格比较高等特点,在实际使用时节约了很多的硬件成本,符合设计的要求,故而本设计选择方案二来实现频率的测量.1.2系统功能分析本系统是基于单片机的简易数字频率计,在硬件的基础上通过软件的控制达到频率测量的目的,整个系统工作由软件程序控制运行。
整个系统主要可以分为两个部分,频率测量单元和频率显示单元。
频率测量单元主要完成对被测信号的测量,而显示单元主要完成用数码形式将测量结果显示出来。
简易数字频率计设计
.《电工与电子技术基础》课程设计报告题目简易数字频率计学院(部)汽车学院专业车辆工程班级学生姓名学号6 月23 日至6 月28日共1 周目录前言 (2)第一章技术指标 (3)1.1、主要技术指标和要求: (3)1.2、系统结构要求 (3)1.3、所用元件 (4)第二章整体方案设计思路 (5)2.1、设计思路 (5)2.2、方案讨论 (5)第三章各部分电路的设计 (7)3.1、放大整形电路 (7)3.2、闸门电路 (9)3.3、计数电路 (10)3.4、时基电路与分频电路 (10)3.5、控制电路 (11)3.6、显示电路 (13)3.7报警电路 (14)第四章电路汇总 (15)4.1、整体电路图 (15)第五章课程设计总结与体会 (16)【附录】 (17)前言【摘要】本学期我们学习了《电工学电子技术》这本书的内容,经过课堂和实验两部分的学习,对基本的模电和数电电路知识有了基本的了解掌握。
正是运用所学知识加上小组合作研究,我们在基于课本内容、考虑实际能力水平、查找资料借鉴其他设计者的成功之处,设计了“简易数字频率计”。
本设计主要综合运用运用了信号的放大整形、门电路和时序逻辑电路等多方面的知识,是对所学知识的一种实践也是一种考验。
【关键字】数字频率计计数器信号处理与控制第一章技术指标1.1、主要技术指标和要求:(1)被测信号的频率范围100Hz~10kHz;(2)输入信号为正弦信号或方波信号;(3)用四位数码管显示所测频率值,并用红、绿色发光二极管表示单位;(4)具有超量程报警功能。
1.2、系统结构要求数字频率计的整体结构要求如图所示。
图中被测信号为外部信号,送入测量电路进行处理、测量,档位转换用于选择测试的项目频率、周期或脉宽,若测量频率则进一步选择档位。
图1-1 数字频率计整体方1.3、所用元件第二章整体方案设计思路2.1、设计思路利用《电工学电子技术》所学模电和数电两部分所学知识设计思路如图图2-1 设计思路图2.2、方案讨论(1)测频法(M法)对频率为f的周期信号,测频法的实现方法,是用以标准闸门信号对被测信号的重复周期进行计数,当计数结果为N时,起频率为:f1=N1/TG,TG为标准闸门宽度,N1是计数器计出的脉冲个数。
简单频率计的制作
一.设计的基本原理和框图1.1基本原理:数字频率计是用数字显示被测信号的频率的仪器,被测信号可以是正弦波,方波或者其他周期性变化的信号,它的基本原理是时基信号发生器提供标准的时基脉冲信号,若其周期为1s则门控电路的输出信号持续时间亦准确到1s。
闸门电路有标准秒信号控制,当秒信号到来时闸门开通,信号通过闸门送到计数译码显示电路,秒信号结束时闸门关闭,计数器停止计数,由于计数器记得脉冲数N的是一秒内的累积数,所以被测频率是NHZ。
闸门时间可以取大于或者小于1秒的值,测得的频率时间间隔与闸门时间的取值成正比,在这里取的闸门时间为1s。
在此,数字频率计由分频器,片选电路,计数器,锁存器,译码电路和显示电路作为主要组成部分。
1.2设计框图如图1.1所示:图2.2 片选信号电路图2.3计数器模块计数器模块为该电路中的核心模块,它的功能是:当门信号为上升沿时,电路开始计算半个周期内被测信号通过的周期数,到下升沿后结束。
然后送给锁存器锁存。
计数器电路图如图2.3所示:图2.3 计数器电路图2.4锁存器模块在分频信号的下降沿到来时,锁存器将计数器的信号锁存,然后送给编译模块中。
其电路图如图2.4所示:图2.4 锁存器电路图2.5译码信号模块此模块是对四个锁存器进行选择,按顺序的将四个锁存器中的数值送给译码模块中译码。
其电路图如图2.5图2.5 译码信号电路图2.6片选模块该模块接收到片选信号后,输出给显示器,选择显示那个显示管。
其电路图如图2.6所示:图2.6 片选电路图2.7译码模块译码模块的作用就是将译码信号模块中选择出的信号进行译码,并将其送给显示器。
其电路图如图2.7所示:图2.7 译码电路图2.8总电路图图2.8总电路图三.编程下载3.1分频模块的程序library ieee;use ieee.std_logic_1164.all;entity fen isport(clk:in std_logic;q:out std_logic);end fen;architecture fen_arc of fen isbeginprocess(clk)variable cnt:integer range 0 to 9;variable x:std_logic;beginif clk'event and clk='1'then if cnt<9 thencnt:=cnt+1;elsecnt:=0;x:=not x;end if;end if;q<=x;end process;end fen_arc;3.2片选信号模块的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel isport(clk:in std_logic;q:out std_logic_vector(2 downto 0));end sel;architecture sel_arc of sel isbeginprocess(clk)variable cnt:std_logic_vector(2 downto 0);beginif clk'event and clk='1' thencnt:=cnt+1;end if;q<=cnt;end process;end sel_arc;3.3计数器模块的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna isport(clr,sig,door:in std_logic;alm:out std_logic;q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0)); end corna;architecture corn_arc of corna isbeginprocess(door,sig)variable c3,c2,c1,c0:std_logic_vector(3 downto 0); variable x:std_logic;beginif sig'event and sig='1' thenif clr='0' thenalm<='0';c3:="0000";c2:="0000";c1:="0000";c0:="0000";elsif door='0' thenc3:="0000";c2:="0000";c1:="0000";c0:="0000";elsif door='1' thenif c0<"1001" thenc0:=c0+1;elsec0:="0000";if c1<"1001" thenc1:=c1+1;else c1:="0000";if c2<"1001" thenc2:=c2+1;elsec2:="0000";if c3<"1001" thenc3:=c3+1;elsec3:="0000";alm<='1';end if;end if;end if;end if;end if;if c3/="0000" thenq3<=c3;q2<=c2;q1<=c1;q0<=c0;dang<="0100";elsif c2/="0000" thenq3<="0000";q2<=c2;q1<=c1;q0<=c0;dang<="0011";elsif c1/="0000" thenq3<="0000";q2<="0000";q1<=c1;q0<=c0;dang<="0010";elseq3<="0000";q2<="0000";q1<="0000";q0<=c0;dang<="0001";end if;end if;end process;end corn_arc;3.4锁存器模块的程序library ieee;use ieee.std_logic_1164.all;entity lock isport(l:in std_logic;a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0);q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0));end lock;architecture lock_arc of lock isbeginprocess(l)variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0);beginif l'event and l='0' thent4:=a4;t3:=a3;t2:=a2;t1:=a1;t0:=a0;end if;q4<=t4;q3<=t3;q2<=t2;q1<=t1;q0<=t0;end process;end lock_arc;3.5译码信号模块的程序library ieee;use ieee.std_logic_1164.all;entity ch isport(sel:in std_logic_vector(2 downto 0);a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0);q:out std_logic_vector(3 downto 0));end ch;architecture ch_arc of ch isbeginprocess(sel)begincase sel iswhen "000"=>q<=a0;when "001"=>q<=a1;when "010"=>q<=a2;when "011"=>q<=a3;when "111"=>q<=dang;when others=>q<="1111";end case;end process;end ch_arc;3.6片选模块的程序library ieee;use ieee.std_logic_1164.all;entity ym isport(d:in std_logic_vector(2 downto 0);q:out std_logic_vector(7 downto 0));end ym;architecture ym_arc of ym isbeginprocess(d)begincase d iswhen "000"=>q<="00000001";when "001"=>q<="00000010";when "010"=>q<="00000100";when "011"=>q<="00001000";when "100"=>q<="00010000";when "101"=>q<="00100000";when "110"=>q<="01000000";when others=>q<="00000000";end case;end process;end ym_arc;3.7译码器模块的程序library ieee;use ieee.std_logic_1164.all;entity disp isport(d:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0)); end disp;architecture disp_arc of disp isbeginprocess(d)begincase d iswhen "0000"=>q<="0111111";when "0001"=>q<="0000110";when "0010"=>q<="1011011";when "0011"=>q<="1001111";when "0100"=>q<="1100110";when "0101"=>q<="1101101";when "0110"=>q<="1111101";when "0111"=>q<="0100101";when "1000"=>q<="1111111";when "1001"=>q<="1101111";when others=>q<="0000000";end case;end process;end disp_arc;3.8顶层文件的程序library ieee;use ieee.std_logic_1164.all;entity plj isport(sig,clr,clk:in std_logic;alm:out std_logic;q:out std_logic_vector(6 downto 0);se:out std_logic_vector(7 downto 0));end plj;architecture art of plj iscomponent cornaport(clr,sig,door:in std_logic;alm:out std_logic;q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0)); end component;component fenport(clk:in std_logic;q:out std_logic);end component;component lockport(l:in std_logic;a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0);q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0)); end component;component selport(clk:in std_logic;q:out std_logic_vector(2 downto 0));end component;component chport(sel:in std_logic_vector(2 downto 0);a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0);q:out std_logic_vector(3 downto 0));end component;component dispport(d:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0));end component;component ymport(d:in std_logic_vector(2 downto 0);q:out std_logic_vector(7 downto 0));end component;signal t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t12:std_logic_vector(3 downto 0); signal t11:std_logic;signal t20:std_logic_vector(2 downto 0);beginu1:corna port map (clr=>clr,sig=>sig,door=>t11,alm=>alm,q3=>t1,q2=>t2,q1=>t3,q0=>t4,dang=>t5);u2: fen port map (clk=>clk,q=>t11);u3: lock port map (l=>t11,a4=>t1,a3=>t2,a2=>t3,a1=>t4,a0=>t5,q4=>t6,q3=>t7,q2=>t8,q1=>t9,q0=>t 10);u4: sel port map (clk=>clk,q=>t20);u5: ch port map (sel=>t20,a3=>t6,a2=>t7,a1=>t8,a0=>t9,dang=>t10,q=>t12);u6: disp port map (d=>t12,q=>q);u7: ym port map (d=>t20,q=>se);end architecture art;四.仿真与调试4.1分频电路模块的仿真在quartus II中打开事先编译好的程序,然后建立工程文件,再打开波形图显示窗口,设置好参数,保存后编译,编译无错误既可以生成电路图。
简易频率测量仪设计
摘要数字频率计是一种能够直接用十进制数字来显示被测信号频率的测量装置。
用数字显示被测信号频率的仪器,被测信号能够是正弦波、方波或其它周期性转变的信号。
如配以适当的传感器,能够对多种物理量进行测试,比如机械振动的频率、转速、声音的频率和产品的计件等等.该频率计使咱们能够迅速取得未知信号的频率,其读数方便,原理简单,精准度较高,能读出四位小数,有较高的有效价值.因此,数字频率计是一种应用很普遍的仪器。
关于本次课题“简易频率测量仪”,我选用了双可重单稳态触发器74LS123来操纵电路中的“锁存”和“清零”,计数器74LS90来计数,555芯片来产生时基信号。
运用数字集成芯片给设计减少了很多没必要要的麻烦。
关键词:数字频率计;译码;时基电路;计数ABSTRACTDigital frequency meter can be directly used as a decimal to show the measu red signal frequency measuring device.Figures show that the measured signal with the frequency of the apparatus,the measured signal can be sine wave,square wave or other periodic signal change.Such as with the appropriate sensors,can test a wi de range of physical quantities,such as the frequency of mechanical vibration, spe ed,sound frequency,as well as piece-rate products and so on.The frequency allows us to quickly signal the frequency of the unknown,to facilitate their reading,The principle is simple,high accuracy,four decimal places allowed to deliv ide range.For this issue,"Simple frequency measurement",I re-selected double 74LS123 monostable multivibrator circuit to control the "latch" and "Clear",74LS90 counter to count,555-chip time base signal togenerate.The use of the number of integrate. Key words:Figure frequency meter; decoding; time-base circuit; count目录1绪论 (1)...........................................................................1 1.2 课题的意义 (1)1.3 频率计设计的指导思想 (2)1.4 本课题要解决的要紧问题 (2)2 频率计的设计原理 (3)2.1 数字频率计的原理 (3)原理框图 (3)组成图与波形 (4)数字频率计的要紧技术指标 (5)3 数字频率计的电路设计 (6)时刻基准T产生电路 (6)555电路 (6)晶振 (7)计数脉冲形成电路 (7)放大电路 (8)整形电路 (9)逻辑操纵电路 (10)计数器 (14)锁存器 (16)显示部份 (17)LED显示原理 (17)LED显示器 (18)七段LED显示器的工作原理 (19)硬件译码显示口 (20)4 数字频率计的电路总图 (23)总结 (25)致谢 (26)参考文献 (27)1 绪论在现今电子系统超级普遍的应用领域内,处处可见处处置离散信息的数字电路。
基于STC15单片机的频率计及方波发生器设计
基于STC15单片机的频率计及方波发生器设计频率计是一种测量信号频率的仪器,而方波发生器是一种能够产生方波信号的电路。
本文将介绍基于STC15单片机的频率计和方波发生器的设计。
一、引言频率计和方波发生器是电子领域常用的测试仪器和电路。
本文中,我们将结合STC15单片机的特性,设计一种简单、稳定且易于使用的频率计和方波发生器。
二、频率计设计频率计是一种能够测量信号频率的仪器。
对于频率计的设计,我们需要通过捕获信号的上升沿和下降沿并计算时间差来计算频率。
1.硬件设计硬件设计主要包括信号捕获电路和单片机的连接。
信号捕获电路中,我们可以使用一个触发器电路来捕获信号的上升沿和下降沿。
触发器电路可以使用CD4013等型号的D触发器芯片。
通过将信号接入D触发器的CLK引脚,并将Q和/CLR引脚连接到单片机的输入脚,我们可以通过检测D触发器输出的脉冲来捕获信号的边沿。
在信号捕获电路中,我们还需要使用一个电阻和一个电容来形成一个低通滤波器,以滤除高频噪声。
将信号捕获电路的输出接入单片机的外部中断引脚,可以方便地触发单片机中断服务程序进行频率计的测量。
2.软件设计频率计的软件设计主要包括中断服务程序和主程序。
中断服务程序中,我们需要在捕获到信号边沿时,记录当前时间并清除中断标志位。
通过记录上升沿和下降沿时间的差值,我们可以得出信号的周期和频率。
主程序中,我们可以定时地调用频率计测量函数,并将测量结果显示在LCD屏幕上。
方波发生器是一种能够产生方波信号的电路。
在方波发生器的设计中,我们可以通过单片机的IO口来控制信号的频率和占空比。
1.硬件设计硬件设计中,我们需要连接单片机的IO口和电路中的相关元件。
在方波发生器电路中,我们可以使用一个555定时器芯片或者一个RC电路来产生方波信号。
通过单片机的IO口来控制触发信号的频率和高低电平持续的时间,我们可以产生所需的方波信号。
2.软件设计方波发生器的软件设计主要包括主程序的编写和IO口状态的控制。
(完整版)简易数字频率计毕业课程设计论文
摘要频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称基础时间为1秒。
基础时间也可以大于或小于一秒。
基础时间越长,得到的频率值就越准确,但基础时间越长则没测一次频率的间隔就越长。
基础时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。
本文数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。
关键词:数显、频率计、时基、protues仿真、555构成多谐振荡器简易数字频率计的设计数字频率计是直接用十进制数字来显示被测量信号频率的一种测量装置,它不仅可以测量正弦波、方波、三角波和尖端冲信号的频率,而且还可以测量它们的周期。
频率,就是周期性信号在单位时间 (1s) 内变化的次数.若在一定时间间隔 T 内测得这个周期性信号的重复变化次数为 N ,则其频率可表示为 f=NT 。
原理框图中,被测信号 Vx经放大整形电路变成计数器所要求的脉冲信号Ⅰ,其频率与被测信号的频率fx相同。
时基电路提供标准时间基准信号Ⅱ,其高电平持续时间t1=1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束时闸门关闭,停止计数。
若在基础时间1S内计数器计得的脉冲个数为N,则被测信号频率fx=NHz。
逻辑控制电路的作用有两个:一是产生锁存脉冲Ⅳ,使显示器上的数字稳定;二是产生“0”脉冲Ⅴ,使计数器每次测量从零开始计数。
1.电路设计方案及其论证1-1 ICM7216D构成数字频率计电路图1.1由ICM7216D构成的数字频率计由ICM7216D构成的10MHZ频率计电路采用+5V单电源供电。
高精度晶体振荡器和构成10MHz并联振荡电路,产生时间基准频率信号,经内部分频后产生闸门信号。
输出分别连接到相应数码显示管上。
ICM7216D要求输入信号的高电平大于3.5V,低电平小于1.9V,脉宽大于50ns,所以实际应用中,需要根据具体情况增加一些辅助电路。
数字频率计(51单片机)
数字频率计(51单片机)数字频率计(51单片机)数字频率计(Digital Frequency Counter)是一种常用的电子测量仪器,可用于测量信号的频率。
在本文中,我们将介绍如何使用51单片机实现一个简单的数字频率计。
一、原理简介数字频率计的基本原理是通过计算信号波形周期内的脉冲数来确定频率。
在实际应用中,我们通常使用51单片机作为微控制器,通过计数器和定时器模块来实现频率计算。
二、硬件设计1.信号输入首先,我们需要将待测信号输入到频率计中。
可以使用一个输入接口电路,将信号连接到51单片机的IO口上。
2.计时模块我们需要使用51单片机的定时器/计数器来进行计时操作。
在这里,我们选择使用定时器0来进行计数,同时可以利用定时器1来进行溢出次数的计数,以扩展计数范围。
3.显示模块为了显示测量结果,我们可以使用数码管、LCD液晶显示屏等显示模块。
通过将结果以可视化的方式呈现,方便用户进行观察和读数。
三、软件设计1.定时器配置首先,我们需要对定时器进行配置,以确定计时器的计数间隔。
通过设置定时器的工作模式、计数范围和时钟频率等参数,可以控制定时器的计数精度和溢出时间。
2.中断服务程序当定时器溢出时,会触发中断,通过编写中断服务程序,实现对计数器的相应操作,例如将计数值累加,记录溢出次数等。
3.数字频率计算根据计数器的值和溢出次数,我们可以计算出信号的频率。
通过简单的公式计算,即可得到测量结果。
四、实验步骤1.搭建硬件电路,将待测信号连接到51单片机的IO口上,并连接显示模块。
2.根据硬件设计要求,配置定时器的工作模式和计数范围。
3.编写中断服务程序,实现对计数器的相应操作。
4.编写主程序,实现数字频率计算和显示。
5.下载程序到51单片机,进行测试。
五、实验结果与分析通过实验,我们可以得到信号的频率测量结果,并将结果以数码管或LCD屏幕的形式进行显示。
通过对比实际频率和测量频率,可以评估数字频率计的准确性和稳定性。
如何设计一个简单的频率计
如何设计一个简单的频率计频率计是一种用于测量信号频率的设备,广泛应用于电子、通信、自动化等领域。
本文将介绍如何设计一个简单的频率计,并提供相关原理和步骤。
一、简介频率计是一种测量频率的仪器。
它可以通过测量信号周期的时间来计算频率。
频率计可以根据测量的频率范围和精度要求,选择不同的设计方案。
下面将介绍一种简单的频率计设计。
二、设计原理该频率计设计基于计数器原理。
其思想是通过计数已知时间内信号周期的脉冲数来确定频率。
三、所需元器件1. 计数器芯片:选择适合频率范围的计数器芯片。
2. 晶振:提供稳定的时钟信号作为计数器的时基。
3. 预处理电路:用于处理输入信号,确保其满足计数器的输入要求。
四、设计步骤1. 确定测量范围和精度要求:根据应用需求确定频率计所需要测量的频率范围和精度要求,选择合适的计数器芯片。
2. 选择计数器芯片和晶振:根据测量范围和精度要求,选择适合的计数器芯片和晶振。
计数器芯片的型号选择要能满足测量范围,并具有足够的计数位数。
晶振的频率要足够稳定。
3. 设计输入信号预处理电路:根据计数器芯片的输入要求,设计合适的输入信号预处理电路。
例如,如果输入信号幅值过大或过小,需要进行合适的电平转换或调整。
五、连接设计1. 将输入信号接入预处理电路,确保信号满足计数器芯片的输入要求。
2. 将预处理后的信号接入计数器芯片的计数端。
3. 将晶振连接至计数器芯片的时钟输入端。
4. 连接供电电源,确保设计正常工作。
六、测试与调试1. 给设计供电,确保所有连接正确。
2. 输入已知频率的信号,观察频率计是否能准确测量。
3. 如果测量结果不准确,检查元器件连接是否正确、晶振频率是否稳定等。
4. 根据实际情况调整设计参数,直至测量结果满足要求。
七、注意事项1. 设计中要注意信号的幅值范围和频率范围。
2. 选择合适的计数器芯片和晶振,以保证测量精度和稳定性。
3. 调试时要注意设计的连通性和元器件的正确连接。
八、总结设计一个简单的频率计需要确定测量范围和精度要求,选择适合的计数器芯片和晶振,并设计合适的输入信号预处理电路。
单片机频率计实验报告
单片机频率计实验报告实验报告:单片机频率计摘要:本实验通过使用单片机设计和实现了一种简单的频率计,通过测量输入信号的周期来计算其频率。
实验结果表明,该方法可以准确地测量信号的频率,并且具有较高的稳定性和精确度。
1.引言在电子测量领域中,频率是一个重要的参数,它是指单位时间内信号变化周期的次数。
测量信号的频率可以帮助我们了解信号的特性和性能。
而单片机作为常见的嵌入式微处理器,提供了较高的计算和控制能力,可以应用于频率计的设计和实现中。
2.实验原理在本实验中,我们使用了一种简单的基于单片机的频率测量方法。
该方法基于计算输入信号的周期,并以此计算信号的频率。
具体实验原理如下:(1)信号输入:将需要测量频率的信号接入单片机的输入口。
(2)信号计数:通过单片机的定时器,测量输入信号的时间间隔。
(3)计算频率:将信号的周期时间转换为频率值。
3.实验设备与材料(1)单片机:使用STC89C52单片机。
(2)信号发生器:产生需要测量频率的信号。
(3)蜂鸣器:用于发出测量结果。
(4)杜邦线:用于连接单片机和其他器件。
4.实验步骤(1)搭建实验电路:将单片机与信号发生器、蜂鸣器等器件通过杜邦线连接。
(2)编写程序:使用汇编语言或C语言编写程序,设置定时器,测量输入信号的时间间隔。
(3)烧录程序:将编写好的程序烧录到单片机中。
(4)测量频率:通过信号发生器产生不同频率的信号,并使用单片机进行测量。
(5)显示结果:将测量得到的频率值通过蜂鸣器等方式显示出来。
5.实验结果经过多次测量和对比,我们得到了较为准确的信号频率测量结果。
实验结果表明,该频率计具有较高的稳定性和精确度,可以满足日常实验工作的要求。
6.实验总结通过本次实验,我们了解了基于单片机的频率计的设计和实现方法,并成功地搭建了一个简单的频率计电路。
实验结果表明,这种方法可以比较准确地测量信号的频率,并且具有较高的稳定性和精确度。
然而,在实际应用中可能还需要考虑一些其他因素,如输入信号的幅度和噪声等。
基于51单片机的简易频率计设计
基于51单片机的简易频率计设计下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!引言在电子测量领域,频率计是一种常用的仪器,用于测量信号的频率大小。
简易数字频率计设计
引言数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。
它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。
经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。
因此数字频率计在测量物理量方面应用广泛。
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
测量频率的办法有多种,其中电子计数器测量频率具有精度高、使用方便,测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
电子计数器测频有两种方法:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。
直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。
其测频原理总框图如下图1所示:图1 数字频率计整体方案结构方框图本次设计要求设计一个频率计数器,能够用来测量正弦信号和矩形信号波形工作频率的电路。
其测量结果直接由四位十进制数字显示。
其原理是根据每个闸门时间内高频标准脉冲的个数,求得被测信号的个数,从而求得被测信号频率。
设计主要由时基电路,放大整形电路,闸门电路,计数器等实现。
电路的涉及主要依据了数字电路和模拟电路的知识,并将完成其对信号的频率和周期的测量。
关键词:频率频率计设计1 系统概述1.1 整体功能要求频率计主要用于测量正弦波、方波、三角波等周期信号的频率值和周期,以及脉冲波的脉冲宽度。
1.2 系统结构要求数字频率计的整体结构要求如图1-1所示。
图中被测信号为外部信号,送入测量电路进行处理、测量。
图1-1 数字频率计整体结构框图上图各单元电路的工作原理如下:(1)整形电路:将输入的非矩形周期信号(如正弦波、三角波等)进行整形,使之成为矩形脉冲。
整形输出波形频率不变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.设计的基本原理和框图1.1基本原理:数字频率计是用数字显示被测信号的频率的仪器,被测信号可以是正弦波,方波或者其他周期性变化的信号,它的基本原理是时基信号发生器提供标准的时基脉冲信号,若其周期为1s则门控电路的输出信号持续时间亦准确到1s。
闸门电路有标准秒信号控制,当秒信号到来时闸门开通,信号通过闸门送到计数译码显示电路,秒信号结束时闸门关闭,计数器停止计数,由于计数器记得脉冲数N 的是一秒内的累积数,所以被测频率是NHZ。
闸门时间可以取大于或者小于1秒的值,测得的频率时间间隔与闸门时间的取值成正比,在这里取的闸门时间为1s。
在此,数字频率计由分频器,片选电路,计数器,锁存器,译码电路和显示电路作为主要组成部分。
1.2设计框图如图1.1所示:图1.1二.单元电路设计2.1分频电路模块分频器在总电路中有两个作用。
由总图框图中分频器有两个输出,一个给计数器,一个给锁存器。
时钟信号经过分频电路形成了20分频后的门信号。
另一个给锁存器作锁存信号,当信号为低电平时就锁存计数器中的数。
分频电路图如图2.1图2.1 分频电路图2.2片选信号电路模块这个电路有两个用途:一是为后面的片选电路产生片选信号,二是为译码模块提供选择脉冲信号。
电路图如图2.2图2.2 片选信号电路图2.3计数器模块计数器模块为该电路中的核心模块,它的功能是:当门信号为上升沿时,电路开始计算半个周期内被测信号通过的周期数,到下升沿后结束。
然后送给锁存器锁存。
计数器电路图如图2.3所示:图2.3 计数器电路图2.4锁存器模块在分频信号的下降沿到来时,锁存器将计数器的信号锁存,然后送给编译模块中。
其电路图如图2.4所示:图2.4 锁存器电路图2.5译码信号模块此模块是对四个锁存器进行选择,按顺序的将四个锁存器中的数值送给译码模块中译码。
其电路图如图2.5图2.5 译码信号电路图2.6片选模块该模块接收到片选信号后,输出给显示器,选择显示那个显示管。
其电路图如图2.6所示:图2.6 片选电路图2.7译码模块译码模块的作用就是将译码信号模块中选择出的信号进行译码,并将其送给显示器。
其电路图如图2.7所示:图2.7 译码电路图2.8总电路图图2.8总电路图三.编程下载3.1分频模块的程序library ieee;use ieee.std_logic_1164.all;entity fen isport(clk:in std_logic;q:out std_logic);end fen;architecture fen_arc of fen isbeginprocess(clk)variable cnt:integer range 0 to 9;variable x:std_logic;beginif clk'event and clk='1'then if cnt<9 thencnt:=cnt+1;elsecnt:=0;x:=not x;end if;end if;q<=x;end process;end fen_arc;3.2片选信号模块的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel isport(clk:in std_logic;q:out std_logic_vector(2 downto 0));end sel;architecture sel_arc of sel isbeginprocess(clk)variable cnt:std_logic_vector(2 downto 0);beginif clk'event and clk='1' thencnt:=cnt+1;end if;q<=cnt;end process;end sel_arc;3.3计数器模块的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna isport(clr,sig,door:in std_logic;alm:out std_logic;q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0)); end corna;architecture corn_arc of corna isbeginprocess(door,sig)variable c3,c2,c1,c0:std_logic_vector(3 downto 0); variable x:std_logic;beginif sig'event and sig='1' thenif clr='0' thenalm<='0';c3:="0000";c2:="0000";c1:="0000";c0:="0000";elsif door='0' thenc3:="0000";c2:="0000";c1:="0000";c0:="0000";elsif door='1' thenif c0<"1001" thenc0:=c0+1;elsec0:="0000";if c1<"1001" thenc1:=c1+1;else c1:="0000";if c2<"1001" thenc2:=c2+1;elsec2:="0000";if c3<"1001" thenc3:=c3+1;elsec3:="0000";alm<='1';end if;end if;end if;end if;end if;if c3/="0000" thenq3<=c3;q2<=c2;q1<=c1;q0<=c0;dang<="0100";elsif c2/="0000" thenq3<="0000";q2<=c2;q1<=c1;q0<=c0;dang<="0011";elsif c1/="0000" thenq3<="0000";q2<="0000";q1<=c1;q0<=c0;dang<="0010";elseq3<="0000";q2<="0000";q1<="0000";q0<=c0;dang<="0001";end if;end if;end process;end corn_arc;3.4锁存器模块的程序library ieee;use ieee.std_logic_1164.all;entity lock isport(l:in std_logic;a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0);q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0));end lock;architecture lock_arc of lock isbeginprocess(l)variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0);beginif l'event and l='0' thent4:=a4;t3:=a3;t2:=a2;t1:=a1;t0:=a0;end if;q4<=t4;q3<=t3;q2<=t2;q1<=t1;q0<=t0;end process;end lock_arc;3.5译码信号模块的程序library ieee;use ieee.std_logic_1164.all;entity ch isport(sel:in std_logic_vector(2 downto 0);a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0);q:out std_logic_vector(3 downto 0));end ch;architecture ch_arc of ch isbeginprocess(sel)begincase sel iswhen "000"=>q<=a0;when "001"=>q<=a1;when "010"=>q<=a2;when "011"=>q<=a3;when "111"=>q<=dang;when others=>q<="1111";end case;end process;end ch_arc;3.6片选模块的程序library ieee;use ieee.std_logic_1164.all;entity ym isport(d:in std_logic_vector(2 downto 0);q:out std_logic_vector(7 downto 0)); end ym;architecture ym_arc of ym isbeginprocess(d)begincase d iswhen "000"=>q<="00000001";when "001"=>q<="00000010";when "010"=>q<="00000100";when "011"=>q<="00001000";when "100"=>q<="00010000";when "101"=>q<="00100000";when "110"=>q<="01000000";when "111"=>q<="10000000";when others=>q<="00000000";end case;end process;end ym_arc;3.7译码器模块的程序library ieee;use ieee.std_logic_1164.all;entity disp isport(d:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0));end disp;architecture disp_arc of disp is beginprocess(d)begincase d iswhen "0000"=>q<="0111111";when "0001"=>q<="0000110";when "0010"=>q<="1011011";when "0011"=>q<="1001111";when "0100"=>q<="1100110";when "0101"=>q<="1101101";when "0110"=>q<="1111101";when "0111"=>q<="0100101";when "1000"=>q<="1111111";when "1001"=>q<="1101111";when others=>q<="0000000";end case;end process;end disp_arc;3.8顶层文件的程序library ieee;use ieee.std_logic_1164.all;entity plj isport(sig,clr,clk:in std_logic;alm:out std_logic;q:out std_logic_vector(6 downto 0);se:out std_logic_vector(7 downto 0));end plj;architecture art of plj iscomponent cornaport(clr,sig,door:in std_logic;alm:out std_logic;q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0)); end component;component fenport(clk:in std_logic;q:out std_logic);end component;component lockport(l:in std_logic;a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0);q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0));end component;component selport(clk:in std_logic;q:out std_logic_vector(2 downto 0));end component;component chport(sel:in std_logic_vector(2 downto 0);a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0);q:out std_logic_vector(3 downto 0));end component;component dispport(d:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0));end component;component ymport(d:in std_logic_vector(2 downto 0);q:out std_logic_vector(7 downto 0));end component;signal t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t12:std_logic_vector(3 downto 0);signal t11:std_logic;signal t20:std_logic_vector(2 downto 0);beginu1:corna port map (clr=>clr,sig=>sig,door=>t11,alm=>alm,q3=>t1,q2=>t2,q1=>t3,q0=>t4,dan g=>t5);u2: fen port map (clk=>clk,q=>t11);u3: lock port map (l=>t11,a4=>t1,a3=>t2,a2=>t3,a1=>t4,a0=>t5,q4=>t6,q3=>t7,q2=>t8,q1=>t 9,q0=>t10);u4: sel port map (clk=>clk,q=>t20);u5: ch port map (sel=>t20,a3=>t6,a2=>t7,a1=>t8,a0=>t9,dang=>t10,q=>t12);u6: disp port map (d=>t12,q=>q);u7: ym port map (d=>t20,q=>se);end architecture art;四.仿真与调试4.1分频电路模块的仿真在quartus II中打开事先编译好的程序,然后建立工程文件,再打开波形图显示窗口,设置好参数,保存后编译,编译无错误既可以生成电路图。