简单频率计的制作
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 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中打开事先编译好的程序,然后建立工程文件,再打开波形图显示窗口,设置好参数,保存后编译,编译无错误既可以生成电路图。