多功能计数器课程设计

合集下载

多功能计数器设计

多功能计数器设计

2011- 2012学年第一学期《单片机原理及接口技术》课程设计报告题目:多功能计数器设计专业:通信工程班级:电气工程系09通信2班姓名: 2222指导教师: 2222成绩:电气工程系2011 年12月15日课程设计任务书摘要近年来,高精度频率测量仪器广泛应用在晶体和晶体振荡器等需求量大和要求高精度的行越来越多的电子产品要求具备高性能和低功耗的特点,一般精度的测量仪器不能满足对其测量要求,而高精度仪器成本由过高。

因此,亟待设计一种测量精度高、成本低的多功能测量仪器以满足大众需求。

而我们设计的这款多功能测量仪器具有设计精良、易操作、精度高、成本低的特点,具有良好的市场前景和经济效益。

众所周知,频率、周期、相位是交流信号的3大要素。

一般情况下,分析交流信号需研究其频率与相位,而周期可直接由频率计算。

对于正弦信号的频率、相位测量准确度的要求不断提高,而随着电子技术的发展,对其测量方法仍不断改进完善。

较早采用直接频率测量的测频法,为了保证测试精度,一般低频信号采用测周期法,而高频信号采用测频法,测量很不方便。

而相位测量最初采用测量信号一个周期参数的方法,该方法精度适用于低频,而高频时误差变大。

该多功能计数器采用等精度测量法来测量信号频率,同时采用基于单片机和FPGA的计数相位测量方法完成精确相位测量,并能在液晶显示器实时显示当前信号的频率、周期和相位差。

该计数器将正弦信号频率和相位的测量于一体,精度高,实用性强。

关键字:频率周期相位多功能计数器目录一、多功能计数器特点和技术指标1.1多功能计数器主要特点- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 51.2多功能计数器技术指标- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - -5二、方案设计论证2.1系统总体方案- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - 62.2频率(周期)的测量- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 62.3相位测量- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 72.4时间的间隔测量- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - 7三、系统的软硬件设计3.1系统硬件电路设计3.1.1 程控放大电路- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - -83.1.2过零比较电路- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - -93.2系统软件设计四、系统测试与误差分析4.1系统测试- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - -- - -104.2误差与结果分析- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -11五、课程设计结束语附录参考文献一、多功能计数器特点和技术指标:1.1多功能计数器主要特点:1.单片机控制2.等精度测量3.测量速度20次/秒4.高性价比,高可靠性5.PPM测量时F0可任意设置6.晶体行业专用PPM调频计7.A通道具有低通滤波器和20倍衰减功能8.10位LED显示(8位数据位,2位指数值) 11.新型导电橡胶轻触式按键,外形美观大方1.2多功能计数器技术指标:功能测频、测周、计数、自校计数容量10(8) -1灵敏度1Hz~10Hz (40mVrms)10Hz~10MHz/100MHz (20mVrms)低通滤波器截止频率约1MHz/100kHz阻抗A通道:1M Ω /40pF B通道:50Ω最大输入幅度A通道:交流加直流≤250Vp-pB通道:≤3Vp-p波形适应性正弦波、脉冲波、三角波耦合方式AC 耦合分辨率闸门时间10ms 显示6位闸门时间100ms 显示7位闸门时间1s 显示8位闸门时间10s 显示8位测量误差±时基准确度±触发误差×被测频率(或周期)± LSD时基标称频率:10MHz二、方案设计论证2.1系统总体方案根据设计任务和要求,本计数器在硬件上由电源模块、预处理模块、分频器、C8051芯片、LCD、键盘、温度测量模块、语音模块等部分组成,如图2-1所示。

多功能计算器课程设计

多功能计算器课程设计

多功能计算器课程设计一、课程目标知识目标:1. 学生能理解多功能计算器的基本功能与操作原理;2. 学生掌握计算器上进行基础的四则运算、百分比计算、乘方运算等操作;3. 学生了解计算器在日常生活和学习中的应用场景。

技能目标:1. 学生能熟练运用计算器进行各类数值计算,提高计算速度和准确性;2. 学生能通过计算器解决实际问题,培养解决数学问题的能力;3. 学生学会在计算器上设置、切换功能,培养信息处理和操作能力。

情感态度价值观目标:1. 学生养成积极使用计算器辅助学习的态度,认识到科技对学习的帮助;2. 学生在团队合作中使用计算器,培养沟通协作能力和团队精神;3. 学生在使用计算器过程中,树立正确的科技观念,关注环保和资源节约。

分析课程性质、学生特点和教学要求,本课程旨在让学生掌握多功能计算器的使用方法,提高计算能力,培养解决实际问题的能力。

课程目标具体、可衡量,便于教学设计和评估。

通过本课程的学习,学生将能够更好地运用计算器为学习和生活服务,提升自身综合素质。

二、教学内容1. 计算器基本结构与功能介绍:包括按键功能、显示屏幕、电源开关等部分,让学生对计算器形成整体认识。

教材章节:第一章 认识计算器2. 基础四则运算操作:加、减、乘、除以及括号运用,培养学生熟练进行数值计算的能力。

教材章节:第二章 计算器四则运算3. 复杂运算操作:百分比计算、乘方运算、开平方运算等,拓展学生的计算能力。

教材章节:第三章 计算器复杂运算4. 计算器在实际应用中的使用:购物、计算速度、面积、体积等,让学生了解计算器的实用价值。

教材章节:第四章 计算器在实际生活中的应用5. 计算器功能设置与切换:包括单位换算、记忆功能、模式切换等,提高学生操作计算器的能力。

教材章节:第五章 计算器功能设置与切换教学内容按照以上五个方面进行组织,确保科学性和系统性。

教学大纲制定详细,教学内容安排合理,进度适中,旨在让学生在掌握计算器基本操作的基础上,进一步提高计算能力和解决实际问题的能力。

教案范例(计数器)

教案范例(计数器)

教案范例(计数器)第一章:认识计数器1.1 教学目标让学生了解计数器的概念和基本功能。

学会使用计数器进行基本的数学运算。

1.2 教学内容计数器的定义和作用。

计数器的组成部分。

计数器的使用方法。

1.3 教学步骤1. 引入计数器的概念,让学生观察并描述计数器的外观和功能。

2. 讲解计数器的使用方法,示范如何进行加减乘除等基本运算。

3. 让学生分组讨论并尝试使用计数器进行计算。

1.4 作业布置第二章:计数器的进制转换2.1 教学目标让学生了解计数器在不同进制下的使用方法。

学会将十进制数转换为其他进制数。

2.2 教学内容不同进制数的概念和表示方法。

计数器在不同进制下的使用方法。

十进制数与其他进制数之间的转换方法。

2.3 教学步骤1. 讲解不同进制数的概念,介绍二进制、八进制、十六进制等。

2. 示范如何在计数器上进行不同进制数的转换。

3. 让学生分组讨论并尝试使用计数器进行不同进制数的转换。

2.4 作业布置请学生使用计数器将十进制数255 转换为二进制、八进制和十六进制。

第三章:计数器的程序设计3.1 教学目标让学生了解计数器的基本编程方法。

学会使用计数器编写简单的程序。

3.2 教学内容计数器的编程语言和语法。

计数器的编程方法和技巧。

计数器编程实例。

3.3 教学步骤1. 讲解计数器的编程语言和语法,介绍常用的指令和操作符。

2. 示范如何使用计数器编写简单的程序。

3. 让学生分组讨论并尝试使用计数器编写简单的程序。

3.4 作业布置请学生使用计数器编写一个程序,实现计算1到100的所有整数之和的功能。

第四章:计数器的扩展应用4.1 教学目标让学生了解计数器在其他领域的应用。

学会使用计数器解决实际问题。

4.2 教学内容计数器在科学、工程、商业等领域的应用。

计数器解决实际问题的方法和技巧。

4.3 教学步骤1. 讲解计数器在不同领域的应用实例,如测量时间、计数物品数量等。

2. 示范如何使用计数器解决实际问题。

3. 让学生分组讨论并尝试使用计数器解决实际问题。

多功能计数器课程设计模板

多功能计数器课程设计模板

学号:2011 - 2012 学年第1 学期《多功能计数器》课程设计报告题目:多功能计数器专业:班级:姓名:指导教师:成绩:电气工程系201 年月日课程设计任务书一.设计目的(所有正文均为四号,宋体,行间距为20磅)设计一个简易功能计数器,实现多功能计数器。

二、设计任务设计一个简易多功能计数器,由特定型号的单片机控制,个。

通过单片机对、配合相应的测量电路以及相应的软件,实现对频率、周期和时间间隔、被测信号峰值、温度的测量,可记录10个历史数据,且具有掉电保持功能。

其主要电路包括电平电路,时基电路、测频电路、测周电路、测温电路、键盘输入电路、显示电路等,信号输入后先自动判断频率的范围,然后选择需要的测量电路。

通过单片机对数据进行处理,在误差允许范围内显示各个测量值。

三、具体要求设计的多功能计数器必须满足以下要求,可细分为两种设计要求:1.基本设计要求(1)具有测量周期、频率、时间间隔的功能;(2)可以用键盘选择上述三种功能;(3)周期、时间间隔测量:0.1mS~1S,误差≦0.1%;频率测量:1Hz~200KHz,误差0.1%;(4)能够显示至少六位数码,并自制计数器电源2.发挥设计要求1)周期、时间间隔测量:1µS~10S,误差≦0.1%;频率测量:0.01Hz~10MHz,误差≤0.1%;(2)可以记忆10个历史测量数据,且能够随时查看;(3)实现语音报数功能,并且显示被测信号的峰值;(4)其他(如温度、时间等功能)。

2、摘要设计一个简易多功能计数器,由特定型号的单片机控制,个。

通过单片机对、配合相应的测量电路以及相应的软件,实现对频率、周期和时间间隔、被测信号峰值、温度的测量,可记录10个历史数据,且具有掉电保持功能。

其主要电路包括电平电路,时基电路、测频电路、测周电路、测温电路、键盘输入电路、显示电路等,信号输入后先自动判断频率的范围,然后选择需要的测量电路。

通过单片机对数据进行处理,在误差允许范围内显示各个测量值。

计数器课程设计

计数器课程设计

计数器 课程设计一、课程目标知识目标:1. 学生能理解计数器的概念,掌握计数器的基本使用方法。

2. 学生能够运用计数器进行100以内的数的计数和基数认识。

3. 学生了解计数器在生活中的应用,认识到数学与日常生活的密切联系。

技能目标:1. 学生通过操作计数器,培养动手操作能力和观察能力。

2. 学生能够运用计数器进行数的分解和组合,提高问题解决能力。

3. 学生通过小组合作活动,培养团队协作能力和沟通能力。

情感态度价值观目标:1. 学生在学习过程中,培养对数学的兴趣和好奇心,激发学习热情。

2. 学生通过计数器的使用,感受数学的实用性和趣味性,增强自信心。

3. 学生在小组活动中,学会尊重他人意见,培养合作精神,形成积极向上的学习态度。

课程性质:本课程为小学一年级数学课程,以计数器为教学工具,帮助学生直观地理解数的概念。

学生特点:一年级学生好奇心强,活泼好动,注意力集中时间较短,喜欢动手操作和游戏。

教学要求:教师应以学生为主体,注重启发式教学,让学生在操作实践中掌握知识,培养技能,提高情感态度价值观。

教学过程中要关注学生的个体差异,因材施教,确保每个学生都能达到课程目标。

通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。

二、教学内容本节教学内容依据课程目标,结合教材内容进行选择和组织。

主要包括以下部分:1. 计数器介绍- 认识计数器,了解其基本结构和功能。

- 学习计数器的使用方法,包括数的增加和减少。

2. 数的认识与计数- 运用计数器进行100以内的数的计数和基数认识。

- 学习数的分解和组合,巩固对数的概念的理解。

3. 实践与应用- 通过实际操作,运用计数器解决简单的数学问题。

- 结合生活实际,举例说明计数器在生活中的应用。

教学大纲安排如下:第一课时:计数器介绍与基本操作- 引入计数器,让学生观察、了解计数器的基本结构。

- 讲解和演示计数器的使用方法,学生跟随操作。

第二课时:数的认识与计数- 运用计数器进行数的计数,让学生直观感受数的增加和减少。

proteus设计计数器课程设计

proteus设计计数器课程设计

proteus设计计数器课程设计一、教学目标本课程旨在通过Proteus设计计数器,让学生掌握计数器的基本原理和设计方法,培养学生的动手能力和创新能力。

具体目标如下:1.了解计数器的基本原理和结构;2.掌握Proteus软件的基本操作;3.掌握计数器的设计方法和步骤。

4.能够运用Proteus软件进行计数器的设计和仿真;5.能够分析并解决计数器设计过程中遇到的问题;6.能够独立完成计数器的设计和制作。

情感态度价值观目标:1.培养学生对电子技术的兴趣和热情;2.培养学生团队合作精神和动手实践能力;3.培养学生创新思维和解决问题的能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.计数器的基本原理和结构;2.Proteus软件的基本操作;3.计数器的设计方法和步骤;4.计数器设计的仿真和测试;5.计数器的制作和调试。

第1周:计数器的基本原理和结构第2周:Proteus软件的基本操作第3周:计数器的设计方法和步骤(1)第4周:计数器的设计方法和步骤(2)第5周:计数器设计的仿真和测试第6周:计数器的制作和调试三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解计数器的基本原理和结构,Proteus软件的基本操作;2.案例分析法:分析典型的计数器设计案例,引导学生掌握设计方法和步骤;3.实验法:让学生亲自动手进行计数器的设计和制作,提高实践能力;4.讨论法:鼓励学生积极参与课堂讨论,培养团队合作精神和创新思维。

四、教学资源本课程所需的教学资源包括:1.教材:《Proteus设计计数器教程》2.参考书:《电子技术基础》、《数字电路设计》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、Proteus软件、电路实验板、电子元器件等以上教学资源将贯穿整个课程,为学生提供丰富的学习体验。

五、教学评估本课程的教学评估采用多元化评价方式,全面客观地评价学生的学习成果。

评估方式包括:1.平时表现:考察学生的出勤、课堂参与度、提问回答等情况,占总评的20%。

推荐-多功能计时电路的设计数字钟的实验设计 精品

推荐-多功能计时电路的设计数字钟的实验设计 精品

实验1多功能计时电路的设计——数字钟1.1 实验目的1.通过实验掌握十进制加法计数、译码、显示电路的工作过程。

2.通过实验深入掌握电路的分频原理和数字信号的测量方法。

3.熟悉集成电路构成的计数、译码、显示器件的外部功能及其使用方法。

1.2 实验要求1.秒信号发生电路:为计时器提供秒信号2.计时电路:完成0分00秒~9分59秒的计时功能。

3.清零电路:具有开机自动清零功能;在任何时候,按动清零开关,可进行计时器手动清零。

4.译码显示电路:显示计时电路产生的数字信息。

5.系统级联调试:将以上电路进行级联完成计时器的所有功能。

1.3 实验原理及框图图1.1 三位计时器示意图计时电路示意图如图1.1所示,计时电路完成计时功能,并且将计时结果传送至显示电路,进而实现显示功能。

原理框图如图1.2所示,主要由计时电路,秒信号发生电路,清零电路和译码显示电路组成。

计时电路在秒信号的作用下,产生0:00~9:59的循环计时,清零电路控制计时电路的清零端,实现时钟的清零,最终将计时电路的输出送至译码显示电路,实现时钟的显示。

图1.2 数字钟的原理框图1.4 单元电路设计1.秒信号发生电路图1.3 秒信号发生电路秒信号发生电路为计时电路提供驱动信号,电路原理如图1.3所示。

为提供较为精确的秒信号,本设计中振荡电路采用215Hz 的石英晶体管为主体的晶振电路,并作为电路的秒信号源。

由于振荡电路产生的源信号为215Hz ,而秒的基准信号频率为1Hz ,则需要对215Hz 信号进行分频,得到1Hz 信号。

分频器采用CD4060和74LS74来实现,CD4060为14位二进制串行计数器,各管脚功能如表1.1所示,功能表如表1.2所示。

虽然CD4060内部有14级由T 触发器构成的二分频器,但实际输出端只有10个:Q 4~Q 10、Q 12~Q 14。

Q 1~Q 3以及Q 11并不引出。

CP 1̅̅̅̅、CP 0̅̅̅̅̅、CP 0为晶振电路的引出端,需接外部石英晶体。

99计数器课程设计

99计数器课程设计

99计数器课程设计一、课程目标知识目标:1. 学生能理解99计数器的原理和操作方法。

2. 学生掌握运用99计数器进行100以内数的加减运算。

3. 学生了解99计数器在数学运算中的实际应用。

技能目标:1. 学生能够熟练使用99计数器进行数的拆分、组合和运算。

2. 学生通过实际操作,提高解决问题的策略能力和逻辑思维能力。

3. 学生能够将99计数器的运用迁移到其他数学领域,如乘除法运算等。

情感态度价值观目标:1. 学生培养对数学学习的兴趣,增强数学学习的自信心。

2. 学生在小组活动中,学会合作、交流、分享,培养团队精神。

3. 学生通过探索和实践,体验数学的实用性和趣味性,形成积极的学习态度。

课程性质:本课程以实际操作和小组活动为主,注重培养学生的动手能力、逻辑思维能力和团队协作能力。

学生特点:二年级学生具有较强的求知欲和好奇心,动手能力强,喜欢探索和发现,但注意力集中时间较短。

教学要求:教师需以生动活泼、富有启发性的教学方式,引导学生主动参与,关注学生的个别差异,鼓励学生积极思考、勇于实践。

通过本课程的学习,使学生在轻松愉快的氛围中掌握知识,提高技能,培养良好的情感态度价值观。

1. 引入99计数器:通过故事、图片等形式,介绍99计数器的历史、构造和操作方法,让学生对99计数器产生兴趣。

2. 99计数器基本操作:讲解和演示99计数器进行加、减运算的操作步骤,使学生掌握其基本使用方法。

- 教材章节:第二章第二节《认识99计数器》- 内容列举:99计数器的构造、操作方法、加法运算、减法运算3. 实践活动:组织学生进行小组活动,运用99计数器进行加减运算,提高学生的实际操作能力。

- 教材章节:第二章第三节《99计数器的运用》- 内容列举:小组活动、实际操作、加减运算4. 运用拓展:引导学生将99计数器的运用拓展到其他数学领域,如乘除法运算,培养学生的逻辑思维和迁移能力。

- 教材章节:第二章第四节《99计数器的拓展运用》- 内容列举:乘法运算、除法运算、逻辑思维、迁移能力5. 总结与反思:对本节课的学习内容进行总结,让学生分享学习心得,教师进行点评和指导。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、题目及内容要求题目:多功能计数器:内容要求:设计一个20进制多功能计数器,实现从0~19连续变化和0~38偶数变化的递增与递减功能,两位数码管显示计数值。

2、设计思路使用KHF—3型CPLD/FPGA实验开发系统,因为系统无法提供秒脉冲,故选用10MHz 的方波时钟源,对其进行分频,使之产生占空比为50%的1Hz的方波时钟源作为计数器的时钟输入。

将整个计数器分个三模块进行设计:1Hz方波时钟源模块(clkdiv)、可逆计数模块(CNT)和两位七段译码器模块(seg7),先将各模块的程序设计出来,编译并仿真通过后,用例化语句实现三个模块的连接,再进行编译与仿真,就能实现该多功能计数器的设计要求。

系统的逻辑功能可用下面的框图表示出来:系统方框图3、设计方案3.1、1Hz方波时钟源模块(clkdiv)选用10MHz的方波时钟源,对脉冲进行计时,当计满5M个时钟脉冲时,对输出端口进行取反,即可获得1Hz的时钟脉冲源。

脉冲的计算:100×100×100×5=5000000(5M)程序中clk为10MHz时钟信号输入端口,clk_div为分频时钟信号输出端口,clk与clk_div 都为一位二进制数。

因为软件与计算机功能限制,无法对其进行仿真与波形输出,只能通过在编译后,下载到器件上进行验证。

1Hz方波时钟源源程序及注释如下:LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clkdiv ISPORT(clk:IN STD_LOGIC;clk_div:BUFFER STD_LOGIC );END ENTITY clkdiv;ARCHITECTURE one OF clkdiv ISSIGNAL clk_div2,clk_div4,clk_div6,clk_div7:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINPROCESS(clk)BEGINIF clk'EVENT AND clk='1'THENIF clk_div2="1100011" THEN clk_div2<=(OTHERS=>'0');ELSE clk_div2<=clk_div2+1;END IF; --计算100个脉冲;IF clk_div2="1100011" THEN clk_div4<=clk_div4+1;ELSIF clk_div4="1100011" THEN clk_div4<="0000000";END IF; --计算10000个脉冲;IF clk_div4="1100011" THEN clk_div6<=clk_div6+1;ELSIF clk_div6="1100011" THEN clk_div6<="0000000";END IF; --计算1000000个脉冲; IF clk_div6="1100011" THEN clk_div7<=clk_div7+1;ELSIF clk_div7="0000101" THEN clk_div7<="0000000"; --计算5000000个脉冲; clk_div<=NOT clk_div; --对输出进行取反; END IF;END IF;END PROCESS;END;3.2、可逆计数模块(CNT)将整个模块再分成四个单元模块:0~19递增单元模块、0~38递增单元模块、19~0递减单元模块和38~0递减单元模块,再设计一个控制端,利用不同的状态对四个单元模块进行选择,以实现四种计数的切换选择,实现多功能计数的要求。

在源程序中,将分频后的1Hz时钟源作为脉冲输入,sel为两位二进制输入使能端,有两个四位二进制数端出端口,其中data_out0为个位数输出,data_out1为十位数输出,利用IF 语句的嵌套对四种功能模块进行判断选择。

利用使能端sel的控制输出四种状态实现0~19连续变化递增模块、0~38偶数变化递增模块、19~0连续变化递减模块、38~0偶数变化递减模块的切换选择如下表所示:可逆计数模块(CNT)源程序及注释如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT ISPORT(clk_div_s:IN STD_LOGIC;sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0);data_out0,data_out1 :BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY CNT;ARCHITECTURE one OF CNT ISBEGINPROCESS(clk_div_s)BEGINIF clk_div_s'EVENT AND clk_div_s='1' THENIF sel="00" THEN --"00"时,选择0~19连续变化递增;IF data_out0<9 THEN data_out0<=data_out0+1;ELSE data_out0<="0000";IF data_out0="1001" AND data_out1<1 THEN data_out1<=data_out1+1;ELSE data_out1<="0000";END IF;END IF;ELSIF sel="01" THEN --"01"时,选择19~0连续变化递减; IF data_out0=0 THEN data_out0<="1001";IF data_out1=0 THEN data_out1<="0001";ELSE data_out1<=data_out1-1;END IF;ELSE data_out0<=data_out0-1;END IF;ELSIF sel="10" THEN --"10"时,选择偶数变化0~38递增;IF data_out0<8 THEN data_out0<=data_out0+2;ELSE data_out0<="0000";IF data_out0="1000" AND data_out1<3 THEN data_out1<=data_out1+1;ELSE data_out1<="0000";END IF;END IF;ELSE --"11"时,选择38~0偶数变化递减; IF data_out0=0 THEN data_out0<="1000";IF data_out1=0 THEN data_out1<="0011";ELSE data_out1<=data_out1-1;END IF;ELSE data_out0<=data_out0-2;END IF;END IF;END IF;END PROCESS;END;对源程序进行编译、仿真与波形输出:选择clk_div_s、sel、data_out0、data_out1四个端口,其中clk_div_s为时钟信号输入端口(为方便仿真与波形输出,取clk_div_s为周期10ns时钟信号信号输入),sel输入的四种状态(00、01、10、11)切换不同的计数功能,data_out0、data_out1作为数据输出,为方便验证,将data_out0、data_out1的数据数型设置为Unsigned Decimal,设置好之后即可进行仿真与波形输出,根据sel的不同状态可以得到如下四个仿真输出波形图:"00":0~19连续变化递增波形图"01":19~0连续变化递减波形图"10":0~38偶数变化递增波形图"11":38~0偶数变化递减波形图3.3、两位七段译码器模块(seg7)利用七段显示译码器将输入的8421BCD码译成数码管对应a~g七段显示信号,采用共阴极连接,则1对应的二极管亮,而0不亮。

程序中data_out_0为个位输入,data_out_1为十位输入,out0为个位输出,out1为十位输出,out0(0)~out0(6)对应数码管的a~g二极管,out1(0)~out1(6)对应数码管的a~g二极管。

两位七段译码器模块源程序及注释如下所示LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY seg7 ISPORT (data_out_0,data_out_1 :IN STD_LOGIC_VECTOR(3 DOWNTO 0);out0,out1 :OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY seg7;ARCHITECTURE one OF seg7 ISBEGINWITH data_out_0 SELECTout0<="0111111" WHEN "0000", --显示0"0000110" WHEN "0001", --显示1"1011011" WHEN "0010", --显示2"1001111" WHEN "0011", --显示3"1100110" WHEN "0100", --显示4"1101101" WHEN "0101", --显示5"1111101" WHEN "0110", --显示6"0000111" WHEN "0111", --显示7"1111111" WHEN "1000", --显示8"1101111" WHEN "1001", --显示9"0000000" WHEN OTHERS; --不显示WITH data_out_1 SELECTout1<="0111111" WHEN "0000","0000110" WHEN "0001","1011011" WHEN "0010","1001111" WHEN "0011","1100110" WHEN "0100","1101101" WHEN "0101","1111101" WHEN "0110","0000111" WHEN "0111","1111111" WHEN "1000","1101111" WHEN "1001","0000000" WHEN OTHERS;END;对源程序进行编译、仿真与波形输出(以输出19和89两个数字为例):显示18的波形图显示89的波形图3.4、功能模块的连接(circuit)使用例化语句COMPONENT将1Hz方波时钟源模块(clkdiv)、可逆计数模块(CNT)和两位七段译码器模块(seg7)连接起来,实现多功能计数器的功能要求。

相关文档
最新文档