EDA课设——定时器
单片机定时器实验报告
一、实验目的1. 理解单片机定时器的工作原理和功能。
2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。
3. 学会使用定时器实现定时功能,并通过实验验证其效果。
二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。
51单片机内部有两个定时器,分别为定时器0和定时器1。
定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。
定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。
四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。
2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。
3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。
4. 编写定时器中断服务函数,用于处理定时器溢出事件。
5. 编写主函数,设置定时器中断,并启动定时器。
6. 编译并下载程序到单片机实验板。
7. 使用示波器观察定时器0的溢出信号。
五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。
eda课程设计30个题目
1数字频率计1)设计一个能测量方波信号的频率的频率计。
2)测量的频率范围是0 999999Hz。
3)结果用十进制数显示。
2乒乓球游戏机1)用8个发光二极管表示球;用两个按钮分别表示甲乙两个球员的球拍2)一方发球后,球以固定速度向另一方运动(发光二极管依次电量),当球达到最后一个发光二极管时,对方击球(按下按钮)球将向相反方向运动,在其他时候击球视为犯规,给对方加1分;都犯规,各加1分;3)甲乙各有数码管计分4)裁判有一按钮,可系统初始化,每次得分后,按下一次3彩灯控制器1)设计一个彩灯控制器,使十个彩灯(LED管)能连续发出四种以上不同的显示形式(如奇数依次亮),;2)随着彩灯显示图案的变化,发出不同的音响声(可用不同频率的矩形波产生)。
4速度表1)显示汽车时速Km/h2)车轮每转一圈,有一个传感脉冲;每个脉冲代表1m的距离3)采样周期设为10S4)*要求显示到小数点后2位5)数码管显示6)*超速报警5拔河游戏机1)设计一个能进行拔河游戏的电路。
2)电路使用15个(或9个)发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3)游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4)亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5)*用数码管显示获胜者的盘数6 6 数字跑表1)具有暂停/启动功能2)具有重新开始功能3)用6个数码管分别显示百分秒、秒和分钟4)能计两个人跑步时间,并能选择显示77 电梯控制器1)5层电梯控制器,用5个led显示电梯行进过程,并用数码管显示电梯当前所在楼层位置,每层电梯入口处设有上楼和下楼请求按钮,按下按钮,则相应楼层的led亮2)电梯到达请求楼层,相应的请求led灯灭,电梯门打开,开门5S,电梯自动关门,继续上行(下行)3)每层设有电梯上行和下行指示灯4)能记忆电梯内部的请求信号88 篮球计分器1)具有30秒计时、显示2)可对计时器清零、置数、启动和暂停3)30秒倒计时4)两个数码管显示两队比分5)超时报警并可解除报警99电子琴1)设计一个简易电子琴;2)利用一基准脉冲产生1,2,3,。
eda课程设计5篇[修改版]
第一篇:eda课程设计数字钟一、设计要求设计一个数字钟,具体要求如下:1、具有时、分、秒计数显示功能,以24小时循环计时。
2、具有清零、校时、校分功能。
3、具有整点蜂鸣器报时以及LED花样显示功能。
二、设计方案根据设计要求,数字钟的结构如图8-3所示,包括:时hour、分minute、秒second计数模块,显示控制模块sel_clock,七段译码模块deled,报时模块alert。
三、VHDL程序library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM;--use UNISIM.VComponents.all;entityddz is port(rst,clk: in std_logic; hour_h: out std_logic_vector( 6 downto 0); hour_l: outstd_logic_vector( 6 downto 0); min_h: out std_logic_vector( 6 downto 0);min_l: out std_logic_vector( 6 downto 0);sec_h: out std_logic_vector( 6 downto 0);sec_l: out std_logic_vector( 6 downto 0)); endddz;architecture Behavioral of ddz is signalcnt: std_logic_vector(15 downto 0); signalsec_h_in: std_logic_vector( 3 downto 0); signalsec_l_in: std_logic_vector( 3 downto 0); signalmin_h_in: std_logic_vector( 3 downto 0); signalmin_l_in: std_logic_vector( 3 downto 0); signalhour_h_in: std_logic_vector(3 downto 0); signalhour_l_in: std_logic_vector(3 downto 0);signalclk_s,clk_m,clk_h: std_logic; begin process(rst,clk) begin if rst='0' then sec_h_in'0');sec_l_in'0');clk_msec_l_inifsec_h_in=5 thensec_h_inclk_melsesec_h_inclk_mend if; else sec_l_inclk_mend if; end if; end process;process(rst,clk_m) begin if rst='0' then-- min_h_in'0');min_l_in'0'); -- clk_hmin_l_inmin_h_inclk_mend if; else min_l_inend if; end if; end process;process(rst,clk_n) begin if rst='0' then-- hour_h_in'0');hour_l_in'0'); -- clk_hhour_l_inhour_h_inclk_nend if; else hour_l_inend if; end if; end process;process(sec_l_in) begin casesec_l_in iswhen "0000" =>sec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lprocess(sec_h_in) begin casesec_h_in iswhen "0000" =>sec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hprocess(min_l_in) begin casemin_l_in iswhen "0000" =>min_lmin_lmin_lwhen "0011" =>min_lmin_lmin_lmin_lmin_lmin_lmin_lmin_lprocess(min_h_in) begin casemin_h_in iswhen "0000" =>min_hmin _h min _hmin _hmin _h min _hmin _hmin _hmin _hmin _hmin _hend case; end process;process(hour_l_in) begin casehour_l_in iswhen "0000" =>hour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lprocess(hour_h_in) begin casehour_h_in iswhen "0000" =>hour_hhour_hhour_hhour_h hour _h hour _h hour _h hour _h hour _hhour_h hour _h四、VHDL仿真结果五、课程设计心得通过这次课程设计,有效得巩固了课本所学的知识,而且通过上机仿真不断发现问题并及时改正,加深了我们对该课程设计的印象。
定时器的设计实验报告
定时器的设计实验报告1. 引言定时器是一种常见的计时装置,广泛应用于各个领域,如电子设备、工业自动化、交通运输等。
本实验通过设计一个基于脉冲计数的定时器电路,旨在研究其工作原理,探索其在实际应用中的可行性和性能表现。
2. 原理及设计2.1 工作原理脉冲计数定时器是一种通过计数器累加输入脉冲信号的数量来实现计时的装置。
其基本原理是利用脉冲信号的频率和计数器的计数速度之间的关系,通过计数器的累加值计算时间间隔。
2.2 设计步骤1. 确定定时器的时间基准。
时间基准可以选择外部脉冲输入或者由稳定的晶振产生。
2. 设计计数器的位数。
根据计时的范围确定计数器的位数,以保证计数范围的覆盖。
3. 计算计数器的计数速度。
根据计时的最大时间间隔和计数器的位数,计算所需的输入脉冲频率。
4. 根据计数器的位数和计数速度,选择合适的计数器芯片。
5. 配置计数器芯片的工作模式和输入脉冲的触发方式。
6. 连接电路并验证设计是否符合要求。
2.3 接线图_______________input > Counter > output________ Display_________3. 实验结果及分析3.1 实验设置- 输入脉冲频率:1kHz- 计数器位数:4位- 计数器芯片:74HC163- 时间基准:晶振(频率为10MHz)3.2 实验结果在实验过程中,我们通过将输入脉冲接到74HC163计数器芯片的CP 输入端,将74HC163的输出接到数码显示器,观察并记录实时的计数结果。
在实验进行中,我们发现计数器芯片的最大计数范围是15(4位二进制),对应的时间间隔为15ms(1kHz输入脉冲时)。
3.3 实验分析通过实验结果可以看出,该定时器电路能够准确计时,实际测量的时间结果与理论计算非常接近。
由于74HC163计数器芯片的高稳定性和高精度,使得定时器的性能表现较好。
然而,该设计存在一个缺点,即计数器位数的限制。
由于计数器位数的限制,导致定时的最大时间间隔受到了限制。
EDA课程设计报告用电器电源自动控制电路
EDA课程设计报告用电器电源自动控制电路燕山大学EDA课程设计报告书题目:用电器电源自动控制电路一、设计题目及要求设计题目:用电器电源自动控制电路要求:1控制电路能使用电器的电源自动开启_秒,然后自动_秒,如此周而复始的工作2_可以设置,范围为130s;3定时范围Y可以调节,范围为160分;4单独设置置数输入控制端实现范围调节;5要有工作状态指示;并有分秒的倒计时显示。
二、设计过程及内容总体设计由三部分构成第一部分:_模块的设计_模块的功能:控制电路能使用电器的电源自动开启_秒,然后自动_秒,如此周而复始的工作此模块由一30进制的减法计数器实现,减法计数器由两个74190组成,通过置数实现_秒的设置。
当_减至0时,输出信号使触发器反转,输出端在0和1之间以_秒反转,实现电路的工作_秒,停止_秒。
设计电路如图所示:_模块结构图仿真图如图图(1-2)_模块的仿真图第二部分:y模块的设计Y模块的功能:由两个60进制的减法器组成,每个减法器由两个74190组成。
实现秒和分的进制关系,并将输出端和扫描电路相连,使数码管显示Y的值。
当记数停止时,整个电路停止工作。
设计电路如图:仿真图如图:第三部分:分频器和扫描电路由于实验箱说需要的频率和实际的不匹配,制作了分频电路,此电路将原有的频率,进行四分频,实现秒的脉冲。
分频电路,如图:扫描电路,在一定的时间内多次循环,达到对Y模块的输出数据的多次扫描,结果常亮,其现实的结果为分和秒的倒计时,当地址端不同时,不同的Y模块的输出得到显示,从而让四个输出共同显示.扫描电路如图:第四部分:多个模块的连接,完成总的实验要求。
_in和yin两个输入端为控制端,可以设置规定范围内的数值作为量程,led输出端接二极管显示,用二极管的亮灭显示其工作状态。
总的电路图如图:图(3-1)仿真图如图:三、心得体会在这两周的EDA课程设计中,不仅仅在专业知识上,而且在其他方面都有很大的提高。
定时器的定义与使用方法
定时器的定义与使用方法1.引言1.1 概述定时器是一种用于计时和调度任务的工具。
它允许我们在特定的时间间隔内执行某个任务,或者在特定的时间点执行某个操作。
定时器在计算机系统中的应用非常广泛,它可以用于控制程序的执行顺序,实现定时任务,以及进行事件触发等。
在计算机领域中,定时器被广泛用于各种应用场景,例如操作系统的任务调度、网络传输的控制、实时系统的处理等。
它可以帮助我们准确地控制时间,实现精确的任务执行。
定时器通常由硬件和软件两部分组成。
硬件定时器通过计时器芯片或者计数器来实现时间的度量和计算,而软件定时器则是通过编程语言提供的函数或者类库来设置和处理定时任务。
定时器的使用方法也非常简单,我们可以通过编程语言中提供的接口来创建一个定时器对象,并设置好时间间隔或者触发时间。
一旦定时器被启动,它将按照预定的时间间隔或者触发时间来执行指定的任务或操作。
总的来说,定时器是一种非常有用的工具,它可以帮助我们实现各种时间相关的任务和操作。
在本文的后续部分中,我们将详细介绍定时器的定义和使用方法,以及一些常见的注意事项和实例应用。
1.2文章结构1.2 文章结构本文主要讨论定时器的定义与使用方法。
为了更好地组织内容并便于读者理解,文章将按照以下结构进行展开:1. 引言:引言部分将概述本文的背景和目的,为读者提供初步认识定时器的必要背景知识。
2. 正文:2.1 定时器的定义:本节将介绍定时器的基本概念和定义。
首先,我们将解释什么是定时器以及其作用。
随后,将从软件和硬件两个角度来讨论定时器的不同类型和工作原理。
2.2 定时器的使用方法:本节将详细介绍定时器的使用方法。
我们将从编程角度出发,讲解定时器在不同编程语言(如C、C++、Python 等)中的使用方法和常见的应用场景。
此外,还将重点介绍定时器的参数设置、中断处理以及注意事项等方面的内容,以便读者能够深入理解和合理使用定时器。
3. 结论:3.1 总结:本节将对全文进行总结,回顾定时器的定义和使用方法。
课程设计定时打铃器
课程设计—定时打铃器的设计课程名称:专业课程设计学院名称:南昌航空大学科技学院专业: 电子信息工程班级:1482052学号:148205216姓名:彭少锟同组人:刘晶晶指导教师:评分:20 17 年 6 月19 日摘要现代社会定时打铃器已广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手,因此研究实用性更强的电子闹钟具有十分重要的意义。
本设计是基于单片机的电子钟设计,不仅具有时分秒的显示功能,还具有定时打铃和倒计时的功能,实用性非常强。
电子钟的计时部分采用AT89S52单片机内部定时器实现,而显示功能是采用液晶模块LCD1602来实现,该定时打铃器可以让使用者通过按键来轻松选择的功能菜单和调节时间,具有非常良好地人机界面。
关键词:定时打铃器;倒计时;AT89S52;液晶LCD1602;按键目录1 设计要求 (1)2 方案论证 (1)2.1 计时方案的选择 (1)2.2 显示方案的选择 (1)2.3 按键功能方案设计 (1)2.4 指示灯和响铃方案设计 (2)3 系统组成 (2)4 硬件设计 (2)4.1 单片机最小系统设计 (2)4.2 显示电路设计 (4)4.3 蜂鸣器电路设计 (4)4.4 按键电路设计 (5)5 软件设计 (5)5.1 走时部分 (5)5.2 定时打铃检测部分 (6)5.3 键盘扫描部分 (6)5.4 液晶部分 (7)5.5 流程图 (7)6 仿真设计 (11)7 系统调试及结果 (11)7.1 软件调试 (11)7.2 硬件调试 (13)7.3 调试结果 (13)8 总结 (13)参考文献 (14)附录 (15)1 设计要求1.显示时钟格式:**时**分**秒。
2.可任意设定时间达到定时控制,定时点至少有两个3.可对设定的时间进行存取,实现掉电保护功能。
3.定时时间到,打铃一分钟,自动关闭打铃继续计时。
2 方案论证2.1 计时方案的选择1、采用专门的时钟芯片,例如美国DALLAS公司推出的DS1302实时时钟芯片,它的工作电压为2.5V-5.5V,采用三线接口与CPU进行同步通信,并可采用突发式一次传送多个字节的时钟信号或RAM数据,优点是高性能、低功耗,可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,但DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点,并且会增加电路硬件复杂性。
EDA单片机课程设计大全
EDA单片机课程设计大全第一篇:EDA单片机课程设计大全EDA与单片机课程设计安排EDA课程设计参考题目课程设计一:五人抢答器要求:1、五人抢答逻辑:只有一个最先抢答有效。
2、在主持人控制下,10秒内抢答有效。
3、采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果。
4、抢答结束后用数码管显示抢答结果:抢答有效人编号;若有异常(提前抢答,犯规),显示E,本次抢答结束。
5、设主持人控制键、复位键。
控制键:启动抢答复位键:系统复位课程设计二:五人多数表决器要求:1、五人多数表决逻辑:多数通过。
2、在主持人控制下,10秒内表决有效。
3、采用数码管显示表决10秒倒计时。
4、表决结束后用发光二极管及数码管显示表决结果,数码管显示结果:通过、不通过。
5、设主持人控制键、复位键。
控制键:启动表决复位键:系统复位课程设计三:日历和数字种要求:1、数字钟:时、分,小时用二十四进制显示,分钟用六十进制显示。
2、日历为30天,并显示星期几。
3、显示采用动态数码管显示方式或静态显示方式。
动态时显示八位:日期星期几小时分钟静态时显示四位:分别显示(日期30天星期)和(小时分钟)采用控制键切换或周期轮流显示。
课程设计四:LED彩灯控制器设计要求: 1、9个发光管6种花样自动变换,循环往复。
2、彩灯花样变换的快慢节拍可以选择。
3、系统复位清零开关。
课程设计五:汽车尾灯控制器设计要求:1、汽车车尾左右两侧各有三盏灯:黄灯、红灯、照明灯(远光、近光)2、白天正常行驶时照明灯都不亮,夜间行驶时两个前照明灯都亮。
3、左转弯时左侧黄灯亮,右转弯时右侧黄灯亮。
4、汽车刹车时,两个红灯都亮。
5、夜间行驶时红色尾灯闪烁。
单片机课程设计参考题目课程设计一:秒表要求:1、整数和小数各两位,共计四位数;2、同时对两对象(A、B)计时;3、设开始、停止A、停止B、显示A、显示B、复位按键。
课程设计二:交通灯控制器要求:1、红灯和绿灯相互转换时经过黄灯,黄灯闪烁三次(三秒);2、主干道方向通行30秒,辅干道方向通行20秒;3、以十字形路口的交通灯设计课程设计三:数字钟要求:1、显示时、分,小时用二十四进制显示,分钟用六十进制显示。
定时器计数器定时功能的应用实验总结
定时器计数器定时功能的应用实验总结
定时器和计数器在很多应用中都有着重要的作用,尤其是在嵌入式系统和自动控制领域。
下面是一个关于定时器计数器定时功能应用的实验总结:
1. 实验目的:
了解定时器和计数器的基本工作原理,掌握定时功能的应用。
2. 实验器材:
单片机开发板、LED灯、Jumper线、电源等。
3. 实验步骤:
a. 将LED灯连接到开发板的一个GPIO口,设置为输出模式。
b. 初始化定时器和计数器,设置定时时间和计数器值。
c. 启动定时器,并在定时器中断处理函数中将LED灯的状态翻转。
d. 在主循环中等待定时时间到达。
4. 实验结果:
定时器定时时间到达时,LED灯会翻转一次。
5. 实验总结:
定时器和计数器的应用可以实现一些精确的定时操作,比如控制设备的定时开关、定时采集数据等。
在实际应用中,还可以根据需要设置不同的定时时长和计数器初值,实现更多功能。
需要注意的是,在实际应用中,要根据具体情况合理选择定时器和计数器的参数,以保证定时功能的准确性和稳定性。
另外,在使用定时器定时功能时,也要考虑对系统资源的合理利用,避免造成系统负荷过重。
数字电路课程设计-数字式定时开关设计
数字电路课程设计-数字式定时开关设计本设计旨在设计一个数字式定时开关,即可设置时间后自动控制开关的开/关状态。
该设计采用120V AC电源。
整个系统的核心是AT89C51微控制器。
在控制电路中,用户可以设置开关的启动时间和关闭时间。
在此设计中,我们使用了倒计时计数器,可以使开关在设定时间到达时自动关闭或打开。
以下是数字电路课程设计-数字式定时开关设计的详细说明:材料清单:1. AT89C51微控制器2. 16位数码管显示模块3. 蜂鸣器4. LED灯5. 继电器6. 按钮开关7. 电源电线8. 杜邦线9. 电阻和电容电路设计:图-1:数字式定时开关电路图如上图所示,整个电路由AT89C51微控制器,计数器,16位数码管,继电器,蜂鸣器,LED灯和按钮开关组成。
整个电路的供电电压为120V AC。
MCU输入为120V交流电源电压,为保证MCU安全,采用了稳流二极管电路降压至5V,在MCU和计数器外部电路中采用了电阻器和电容器滤波处理。
在该电路中,16位数码管用于显示倒数计时器的时间。
数码管显示模块使用计时寄存器来设置显示时间和更改时间。
倒计时计数器由74LS192芯片实现。
继电器用于控制电源的开关。
按键用于启动和停止计数器以触发继电器开关的动作。
操作:1. 设置时间:按下时间设置按钮,数码管显示时间设置,你可以更改时间,包括小时和分钟,用按键切换需要更改的位。
设置完成后,按时间设置按钮再次退出时间设置模式。
2. 开始计时:按下开始/停止按钮,计时器开始倒计时,同时继电器也开始工作。
3. 关闭计时器:当计时器到达指定时间后,它将停止计数并触发继电器打开/关闭开关。
此时,LED灯将发出信号。
总结:数字式定时开关是一种非常实用的电路设计,它可以自动打开/关闭设备,而无需实时操作。
此设计通过采用AT89C51微控制器和倒计时计数器等组件,实现了大量自动控制电路的功能。
设计过程中,需要注意安全问题,保证电路稳定运行,同时合理设计各个模块,并进行联合测试验收。
eda课程设计数字钟
eda课程设计 数字钟。
一、课程目标知识目标:1. 让学生理解数字时钟的基本原理,掌握数字时钟电路的设计方法。
2. 使学生掌握EDA工具的使用,学会利用工具进行电路设计、仿真和调试。
3. 帮助学生了解数字时钟中各个模块的功能和相互关系。
技能目标:1. 培养学生运用EDA工具进行数字电路设计的能力。
2. 培养学生分析问题、解决问题的能力,能够根据实际需求设计简单的数字时钟电路。
3. 提高学生的动手实践能力,学会使用相关仪器设备进行电路调试。
情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养创新意识和探索精神。
2. 培养学生良好的团队协作精神,学会与他人共同解决问题。
3. 培养学生严谨的科学态度和勤奋刻苦的学习精神。
课程性质:本课程为实践性课程,旨在通过数字时钟电路设计,提高学生的电子设计能力。
学生特点:学生具备一定的电子基础知识,对EDA工具感兴趣,但动手实践能力有待提高。
教学要求:注重理论与实践相结合,充分调动学生的积极性,引导学生主动参与教学活动,提高学生的实践能力。
教学过程中,注重培养学生的团队合作精神和创新能力,为学生的未来发展奠定基础。
通过本课程的学习,使学生能够具备独立设计、制作和调试数字时钟电路的能力。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 数字时钟原理:讲解数字时钟的基本原理,分析数字时钟的各个模块功能,如秒脉冲发生器、计数器、显示驱动等。
2. EDA工具使用:介绍EDA工具的基本操作,如原理图绘制、电路仿真、PCB设计等,使学生掌握使用EDA工具进行数字电路设计的方法。
3. 数字时钟电路设计:根据实际需求,制定数字时钟设计方案,包括选择合适的元器件、绘制原理图、编写程序等。
4. 电路仿真与调试:指导学生利用EDA工具进行电路仿真,分析电路性能,优化设计方案;并进行实际电路搭建与调试,培养学生的动手实践能力。
教学大纲安排如下:1. 第一周:数字时钟原理学习,熟悉各个模块功能。
《EDA(VHDL)课程设计》任务书
3.四组数字智力抢答器的VHDL设计(每班1-30号的双号选择)
系统设计要求是:
(1)设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
(1)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。
(2)主干道处于常允许通行状态,而支干道有车来才允许通行。
(3)当主、支道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5s的黄灯作为过渡,并进行减计时显示。
设计的基本要求
3.输入、输出接口说明
4.报告中有分频器、定时器相关模块的功能仿真和时序仿真结果。
5.编写内容充实、完整和规范的课程设计报告书。
6.课程设计报告要求校对仔细,无错字,A4纸打印,左侧装订。
主要参考文献
[1]谭会生,张昌凡.EDA技术及应用.西安:西安电子科技大学出版社,2006,12.
[2]潘松,黄继业.EDA技术实用教程.北京:科学出版社,2008,8.
2.99分钟定时器的VHDL设计(每班1-30号的单号选择)
任务要求:具有整体清零(reset)功能,定时99分钟。以秒速度递增至99分钟停止,启动报警(cout)5秒钟。具有置位(cn)控制,即cn高电平时,clk脉冲上升沿到来,计数加一;cn低电平时,置位结束,进入倒计时阶段,以秒速度使输出计数减一至零结束,并同时报警(cout)5秒钟。
为了防止雷同,建议每班1-4号设计2.5分频,5-8号设计3.5分频,9-12号设计4.5分频,13-16号设计5.5分频,17-20号设计6.5分频,21-24号设计7.5分频,25-28设计8.5分频,29-32设计9.5分频,33-36设计10.5分频,37-40号设计11.5分频,41-44号设计12.5分频计数器。
EDA课程设计毕业课程设计
设计题目:抢答器的设计与仿真一.课程设计的目的EDA课程设计是电子信息科学与技术专业开设的一门独立实践环节课程。
通过课程设计使学生具体掌握将理论知识与实际应用相结合的方法,提高分析问题和解决问题的能力,激发学习兴趣、锻炼动手能力和科研能力。
了解CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。
二.设计方案论证1. 设计原理抢答器原理是根据所要设计的系统功能,将整个系统划分成几个主要模块,再将每个模块细分成几个子模块,直到最底层的小模块容易编程实现为止。
只需对底层元件编程实现,最后将各模块连接起来组成所需的系统。
对于一个抢答器系统,可将其分为五个模块:选手抢答模块、抢答启动模块、加减分模块、显示模块、蜂鸣器控制模块,整体框图如图(1)所示。
图(1)总体框图其中抢答启动模块具有启动抢答及启动定时功能,输出使能信号给选手识别模块,以及抢答剩余时间给显示模块;选手识别模块完成锁存抢答信号的功能,并输出选手号给显示模块;蜂鸣器对抢答成功以及超时鸣声报警;显示模块对输入的数据进行显示。
2. 设计内容沈阳大学(1)设计一智力竞赛抢答器,可同时供8名选手参加比赛。
(2)给节目主持人设置一个控制开关,控制系统清零和抢答开始。
(3)抢答器具有锁存功能和显示功能。
抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示选手编号,同时扬声器响,禁止其他选手抢答。
(4)抢答器具有抢答定时功能,时间由主持人确定。
(5)参赛选手在设定的时间内抢答有效,定时器停止工作。
(6)如果定时时间到,无人抢答,本次抢答无效,系统报警,并封锁输入电路,禁止超时抢答,定时器显示00 。
(7)为每组设计一个计分电路,0~999分,可加分,也可减分。
3. 设计整体原理图图(2)设计原理图三.设计结果与分析1、抢答启动模块启动模块除了有启动的功能外,还有启动定时的功能。
《eda技术》课程教学
VHDL编程实例分析
1 2
组合逻辑电路设计
通过实例分析,讲解如何使用VHDL语言设计组 合逻辑电路,如编码器、译码器、数据选择器等。
时序逻辑电路设计
通过实例分析,讲解如何使用VHDL语言设计时 序逻辑电路,如触发器、计数器、寄存器等。
3
状态机设计
通过实例分析,讲解如何使用VHDL语言设计状 态机,包括Moore型状态机和Mealy型状态机。
05
CPLD/FPGA应用与开发
CPLD/FPGA器件概述
CPLD(Complex Programmable Logic Device)和FPGA(Field Programmable Gate Array)的基本概念和原理
CPLD和FPGA的结构和特点
CPLD和FPGA的编程方式和编程语言
CPLD/FPGA开发流程
综合与优化
将设计转换为门级网表,并进 行优化
仿真与验证
对设计进行功能仿真和时序仿 真,确保设计的正确性
设计输入
使用硬件描述语言(HDL)或 原理图输入设计
布局与布线
将门级网表映射到 CPLD/FPGA器件上,并进行 布局和布线
下载与调试
将设计下载到CPLD/FPGA器 件中,并进行调试和测试
典型应用案例分析
用操作。
合理利用图层
02
通过图层管理可以方便地组织和编辑复杂的原理图,提高可读
性。
灵活运用编辑工具
03
掌握各种编辑工具的使用技巧,如选择、移动、旋转、镜像等。
层次化设计思想
自顶向下设计
从系统最高层次开始,逐 步细化到低层次的设计方 法。
模块化设计
将复杂的系统划分为若干 个相对独立的模块,分别 进行设计。
EDA课程设计——基于VHDL语言的数字时钟设计(可编辑)
EDA课程设计——基于VHDL 语言的数字时钟设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)一、设计要求 0二、设计原理及框图 01、设计原理 02、结构框图 0三、设计过程 (1)1、模块化设计 (1)2、顶层文件生成 (2)四、仿真调试过程 (3)1、各模块时序仿真图 (3)2、仿真过程中遇到的问题 (4)五、设计体会及收获 (4)一、设计要求1、稳定的显示时、分、秒。
2、当电路发生走时误差时,要求电路有校时功能。
3、电路有整点报时功能。
报时声响为四低一高,最后一响高音正好为整点。
二、设计原理及框图1、设计原理系统框图由六个模块组成,分别为:秒、分、时计数模块,整点报时模块,LED动态显示扫描模块,调时控制模块组成。
其工作原理是:基准脉冲输入信号同时加到秒、分、时、分隔符的脉冲输入端,采用并行计数的方式,秒的进位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到时的使能端上,完成秒、分、时和分隔符的循环计数。
整点报时是根据分的A、B输出同时为0时,整点报时模块输出高电平控制报时。
LED显示扫描模块根据输入的扫描信号CKDSP轮流选通秒、分、时、分隔符的8位八段数码管,LED显示译码器完成计数器输出的BCD的译码。
2、结构框图三、设计过程1、模块化设计(1)秒计时模块秒计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Setmin:分钟设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(2)分计时模块分计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk、clk1:计时时钟信号Reset:异步清零信号Sethour:小时设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(3)时计时模块时计时模块由24位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Daout[6:0]:BCD码输出(4)显示模块系统时间输出由六个七段数码管显示。
定时器课程设计心得
定时器 课程设计心得一、课程目标知识目标:1. 学生能理解定时器的概念和基本原理;2. 学生能掌握定时器的种类、功能及应用场景;3. 学生能了解定时器在生活中的实际应用,如智能家居、物联网等领域。
技能目标:1. 学生能通过实际操作,学会使用定时器完成简单的定时任务;2. 学生能运用所学知识,设计并实现一个简单的定时器应用案例;3. 学生能通过团队合作,分析问题、解决问题,提高实践操作能力。
情感态度价值观目标:1. 学生能认识到定时器在生活中的重要性,培养对电子科技产品的兴趣;2. 学生在学习过程中,培养自主学习、合作探究的良好习惯;3. 学生通过了解定时器的应用,增强环保意识,提高对节能环保的认识。
课程性质:本课程为信息技术课程,旨在让学生了解定时器的基本原理和应用,培养实际操作能力和团队合作精神。
学生特点:五年级学生具备一定的信息技术基础,对新鲜事物充满好奇,善于合作,但操作能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,通过实际操作和团队合作,提高学生的信息技术素养。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效评估。
二、教学内容本课程以《信息技术》教材中“定时器与计数器”章节为基础,结合课程目标,组织以下教学内容:1. 定时器的基本概念:介绍定时器的定义、分类及工作原理;2. 定时器的功能与应用:讲解定时器在实际应用中的功能,如定时开关、倒计时等,并结合实例进行分析;3. 定时器的编程与操作:学习定时器的编程方法,掌握相关软件和硬件的操作;4. 定时器应用案例:设计并实现一个简单的定时器应用案例,如智能家居定时开关灯等;5. 定时器在生活中的应用:探讨定时器在节能、环保等方面的作用,提高学生的环保意识。
教学大纲安排如下:1. 导入新课:通过生活实例,引出定时器的概念,激发学生兴趣;2. 理论讲解:介绍定时器的基本原理、分类及功能,结合教材内容进行讲解;3. 实践操作:指导学生进行定时器的编程与操作,巩固所学知识;4. 应用案例:分组讨论,设计并实现定时器应用案例,提高实践能力;5. 总结拓展:回顾所学内容,探讨定时器在生活中的应用,培养学生的节能环保意识。
EDA课程设计—闹钟(燕山大学)
燕山大学课程设计说明书题目:闹钟学院(系):电气工程学院年级专业: 11级计控1班学号: 110103010052 学生姓名:袁翔指导教师:李建霞吕宏诗教师职称:实验师实验师燕山大学课程设计(论文)任务书院(系):电气工程学院基层教学单位:电子实验中心说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。
目录第一章设计说明┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄3一、设计要求┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄3二、功能拓展┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄3三、设计思路┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄3四、模块介绍┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄3五、真值表┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄6 第二章原理图┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄7 MAX+plus 2原理图设计┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄7 第三章波形仿真┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄8 MAX+plus 2 simulator仿真┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄8 第四章硬件设计┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄9一、管脚锁定┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄9二、硬件连线┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄9 第五章总结┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄10 参考文献┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄11第一章设计说明一、设计要求设计简易的一分钟闹钟,具体参数如下:1、可手动输入定时时间(0~59s),如30s;2、两个动态数码管上跟踪显示时间的变化:如30,29,28……到了指定时间蜂鸣器发出8s的提示音;3、有暂停闹钟可使两动态数码管倒计时暂停;4、拨码开关设置定时时间。
数字定时控制器电子技术课程设计
北京理工大学电子技术课程设计数字定时控制器第1章设计任务及要求1.1设计任务及要求设计一个具有数字钟功能的数字定时控制器1、计时显示范围要求自00时00分00秒到23时59分59秒2、具有校时功能,可对小时、分、秒分别进行校准3、要求预选时刻到达时被控对象连续响10秒,蜂鸣器在10秒内断续鸣叫5次,即响1秒停1秒第2章课题分析及EDA仿真分析2.1 设计方案与分析整体分为震荡电路、计时电路、校时电路、闹钟电路、分频电路用振荡电路产生2Hz信号,来实现时钟的计时脉冲时分秒计时电路分别用24进制、60进制、60进制计数器完成,通过分频得到1Hz信号,周期即1秒,从而实现24小时计时功能校时电路用4位状态移位寄存器实现,分别实现计时-校时-校分-校秒闹钟电路用与非门将需要的时刻译码,与0.5Hz相与,使得在两秒周期内,响一秒、断一秒分频电路产生2Hz信号供校时、0.5Hz供闹钟电路其基本逻辑框图如图2-1所示。
图2-1数字时钟电路结构图计时电路工作时,通过分频得到的1Hz信号作为秒的脉冲输入,当秒计数器计数满60时,输出进位脉冲,送至分计数器计数,同时对秒清零。
当分计数器计数满60时,输出进位脉冲,送至时计数器计数。
当时计数器计数满24时,输出清零脉冲,分别送至秒、分、时计数器的清零端完成清零,开始新一天的计时。
2.2 电路的仿真与论证2.2.1振荡电路由于通过三五定时器产生脉冲信号没有晶振稳定,且实验室没有555定时器,所以采用晶振电路。
振荡电路采用晶振电路,如图,4060为14 级二进制串行计数器,可以将32.768HZ进行14分频,得到2HZ。
晶振电路结构如图2-2图2-2 555定时器RC振荡电路2.2.2分频电路振荡电路获得2HZ的方波信号后,需要将其进行分频,得到1HZ、0.5HZ。
采用74LS160作为分频器,74LS160是8421编码的10进制计数器,将其功能设定为计数功能,把2HZ的信号输出到CLK管脚,则其QA管脚便输出1HZ的方波信号,QB管脚输出0.5HZ的方波信号,仿真结果如图2-3图2-3 分频电路(图中2HZ由555定时器产生)2.2.3时、分、秒计时电路计时功能由6片74LS160实现,秒位由两片构成60进制,各位的作为十进制,进位信号给十位;将十位的QB、QC相与作为进位信号给分位的CLK,同时作为清零信号给十位的CLR,实现从0到59的循环计数。
定时器电路调试实训报告
一、实训目的1. 理解定时器电路的工作原理和基本结构。
2. 掌握定时器电路的调试方法和技巧。
3. 培养实际操作能力和故障排除能力。
二、实训时间2023年10月26日至2023年10月30日,共5天。
三、实训地点电子信息工程实验室四、实训内容本次实训主要涉及555定时器电路的调试,包括以下内容:1. 555定时器电路的搭建。
2. 电路原理图的分析与设计。
3. 电路调试与故障排除。
五、实训步骤1. 电路搭建(1)根据电路原理图,准备所需的元器件,包括555定时器、电阻、电容、二极管、三极管、连接线等。
(2)按照电路原理图,将元器件连接成定时器电路。
(3)检查电路连接是否正确,确保无短路、断路等现象。
2. 电路原理图分析(1)分析555定时器的工作原理,了解其内部结构和引脚功能。
(2)分析电路中各个元器件的作用,以及它们之间的相互关系。
(3)根据电路原理图,推导出电路的工作过程和输出波形。
3. 电路调试(1)使用示波器观察电路输出波形,判断电路是否正常工作。
(2)根据电路原理和输出波形,分析电路存在的问题,并进行调整。
(3)调整电路参数,如电阻、电容等,使电路输出满足设计要求。
4. 故障排除(1)检查电路连接是否正确,确保无短路、断路等现象。
(2)分析电路工作原理,找出故障原因。
(3)采取相应的措施,如更换元器件、调整电路参数等,排除故障。
六、实训结果与分析1. 电路搭建经过5天的努力,成功搭建了555定时器电路,并完成了电路连接和检查。
2. 电路原理图分析通过对电路原理图的分析,了解了555定时器的工作原理和电路结构,掌握了电路的工作过程和输出波形。
3. 电路调试在调试过程中,遇到了以下问题:(1)输出波形不稳定:通过调整电阻、电容等参数,使输出波形稳定。
(2)输出频率不正确:根据电路原理,推导出输出频率的计算公式,并调整电阻、电容等参数,使输出频率满足设计要求。
(3)输出波形失真:分析电路工作原理,找出失真原因,并采取相应的措施,如调整电阻、电容等参数,使输出波形恢复正常。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定表课程设计任务书目录1 概述 (1)1.1 设计背景和意义 (1)1.2 设计任务 (1)1.3 设计要求 (1)2 原理设计及层次划分 (1)2.1 工作原理 (1)2.2 层次划分 (2)3 软件设计 (2)3.1控制计数模块模块代码设计 (2)3.2 报警器模块代码设计 (4)3.3 译码器模块代码设计 (5)3.4 定时器原件例化模块代码设计 (5)4 仿真及测试 (6)4.1 控制计数模块仿真 (6)4.2报警器模块仿真 (8)4.3 译码器模块代码仿真 (9)4.4 定时器原件例化模块代码仿真 (10)5 总结 (11)6 参考文献 (11)1 概述1.1 设计背景和意义EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
EDA技术是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
1.2 设计任务通过设计,定时器可以整体清零;可以定时最高到99MIN;以秒速度递增至预定时间,以秒速度递减至零。
1.3 设计要求具有整体清零(reset)功能,定时99分钟。
以秒速度递增至99分钟停止,启动报警(cout)5秒钟。
具有置位(cn)控制,即cn高电平时,clk脉冲上升沿到来,计数加一;cn低电平时,置位结束,进入倒计时阶段,以秒速度使输出计数减一至零结束,并同时报警(cout)5秒钟。
时钟信号提供秒信号(1HZ);四位数码管静态显示,高位high(3 downto0)显示分,低位low(3 downto 0)显示秒2 原理设计及层次划分2.1 工作原理1.系统设计方案通过记数器控制中心输入秒信号,并输出两个四位的BCD码,可分别来表示各位与十位,也可整体复位清零。
通过该记数器实现以秒速度递增至清零,该记数器以秒的速度递增至99来实现置位,而以秒的速度递减至零以实现定时功能。
当以秒速度递增至99分钟停止,启动报警(cout)5秒钟。
cn低电平时,置位结束,进入倒计时阶段,以秒速度使输出计数减一至零结束时也同时报警(cout)5秒钟。
通过二选一选择器对个位和十位进行扫描输出,并将输出送到译码器,通过译码器对输入的四位BCD码进行七段码编译,然后输出到数码管。
2.2 层次划分2.2.1控制计数模块Aaa控制计数模块,是该定时器的核心部分.res为复位端,用来清零,采用异步复位方式;cn用于置位,高电平有效。
cout端将在定时结束时产生高电平。
Low和high为四位BCD码输出端口,可用于显示。
当cn有效时,clk脉冲上升沿到来,计数加1;当cn为低电平时,置位结束,进入计时阶段,每1个时钟周期发出一个脉冲,使输出记数减1,直到记时结束,令cout位为高电平为止。
2.2.2报警器模块主要功能是计数器以秒速度递增至99分钟停止时启动报警(cout)5秒钟。
倒计时阶段,计时器以秒速度使输出计数减一至零结束时也同时报警(cout)5秒钟。
当始终把脉冲clk上升沿到来时count开始计数,同时speak置高电平开始报警,当计数达到5s后speak 置0,停止报警。
它的操作源程序如下:2.2.3 译码器模块译码器yima是对四位BCD码进行七段码译码,其输出p0~p6分别接数码管各段进行显示输出。
2.2.4 定时器原件例化模块3 软件设计3.1 控制计数模块代码设计Aaa控制计数模块,是该定时器的核心部分.res为复位端,用来清零,采用异步复位方式;cn用于置位,高电平有效。
cout端将在定时结束时产生高电平。
Low和high为四位BCD码输出端口,可用于显示。
当cn有效时,clk脉冲上升沿到来,计数加1;当cn为低电平时,置位结束,进入计时阶段,每1个时钟周期发出一个脉冲,使输出记数减1,直到记时结束,令cout位为高电平为止。
该模块的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jsq isport (cn,res,clk:in std_logic;cout :out std_logic;flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0));end jsq;architecture art of jsq issignal fdisplow,fdisphigh,mdisplow,mdisphigh:std_logic_vector(3 downto 0);--定义信号分别表示分钟和秒钟的十位和个位beginprocess(clk,cn,res)beginif(res='1')thenmdisplow<="0000";mdisphigh<="0000";fdisplow<="0000";fdisphigh<="0000";cout<='0'; --res高电平执行复位elsif (clk'event and clk='1')thenif cn='1'thenif mdisplow<9 thenmdisplow<=mdisplow+1;--秒钟个位数小于9时执行计数加1cout<='0';elsif mdisplow="1001" and mdisphigh<5 thenmdisplow<="0000";mdisphigh<=mdisphigh+1;--秒钟十位进位加1elsif mdisphigh="0101" and fdisplow<9 thenmdisplow<="0000";mdisphigh<="0000";fdisplow<=fdisplow+1;--满59秒后分钟个位加1elsif fdisplow="1001" and fdisphigh<9 thenmdisplow<="0000";mdisphigh<="0000";fdisplow<="0000";fdisphigh<=fdisphigh+1;--满9分59秒后分钟十位加1elsif fdisplow="1000" and fdisphigh="1001" thenmdisplow<="0000";mdisphigh<="0000";fdisplow<="1001";--计时至99分停止elsif fdisplow="1001" and fdisphigh="1001" thencout<='1';--计时停止cout变为高电平end if;elsif cn='0' then --cn为0进入倒计时if mdisplow>0 thenmdisplow<=mdisplow-1;--秒钟减1cout<='0';elsif mdisplow="0000" and mdisphigh>0 thenmdisplow<="1001";mdisphigh<=mdisphigh-1;--个位0时十位减1elsif mdisphigh="0000" and fdisplow>0 thenmdisplow<="1001";mdisphigh<="0101";fdisplow<=fdisplow-1;--分减1elsif fdisplow="0000" and fdisphigh>0 thenmdisplow<="1001";mdisphigh<="0101";fdisplow<="1001";fdisphigh<=fdisphigh-1;--分减10elsif fdisphigh="0000"and fdisplow="0000"and mdisphigh="0000"and mdisplow="0000"thencout<='1';--倒计时结束cout变为高电平end if;end if;end if;end process;mhigh<=mdisphigh;mlow<=mdisplow;fhigh<=fdisphigh;flow<=fdisplow;end art;3.2 报警器模块代码设计主要功能是计数器以秒速度递增至99分钟停止时启动报警(cout)5秒钟。
倒计时阶段,计时器以秒速度使输出计数减一至零结束时也同时报警(cout)5秒钟。
当始终把脉冲clk上升沿到来时count开始计数,同时speak置高电平开始报警,当计数达到5s后speak置0,停止报警。
它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cou5 isport(clk,reset,en:in std_logic;speak:out std_logic);end cou5;architecture behavior of cou5 issignal count:std_logic_vector(2 downto 0);--定义计数信号beginprocess(reset,clk)beginif reset='1' or en='0' thencount(2 downto 0)<="000";speak<='0';--有复位信号或始能端低电平时输出0elseif(clk'event and clk='1')thencount<=count+1;speak<='1';--有时钟上升沿计数加1,报警信号speak高电平if count>5 thenspeak<='0'; --5秒之后停止报警speak为0end if;end if;end if;end process;end behavior;3.3 译码器模块代码设计译码器yima是对四位BCD码进行七段码译码,其输出p0~p6分别接数码管各段进行显示输出,它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;entity yima isport(a:in std_logic_vector(3 downto 0);p:out std_logic_vector(6 downto 0));end yima;architecture arc of yima isbeginprocess(a)begincase a iswhen"0000"=>p<="0111111";when"0001"=>p<="0000110";when"0010"=>p<="1011011";when"0011"=>p<="1001111";when"0100"=>p<="1100110";when"0101"=>p<="1101101";when"0110"=>p<="1111101";when"0111"=>p<="0000111";when"1000"=>p<="1111111";when"1001"=>p<="1101111";--七段译码器显示0—9when others=>p<="0000000";end case;end process;end arc;3.4 定时器原件例化模块代码设计library ieee;use ieee.std_logic_1164.all;entity yjlh isport(sen,resa,clka,resb: in std_logic;myimal:out std_logic_vector(6 downto 0); --秒钟个位译码输出 myimah:out std_logic_vector(6 downto 0); --秒钟十位译码输出 fyimal:out std_logic_vector(6 downto 0); --分钟个位译码输出 fyimah:out std_logic_vector(6 downto 0); --分钟十位译码输出 baoj:out std_logic);end entity yjlh;architecture art of yjlh iscomponent jsq isport (cn,res,clk:in std_logic;cout :out std_logic;flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0)); end component jsq; --jsq控制模块component yima isport(a:in std_logic_vector(3 downto 0);p:out std_logic_vector(6 downto 0));end component yima;--译码模块component cou5 isport(clk,reset,en:in std_logic;speak:out std_logic);end component cou5;--报警模块signal s1,s2,s3,s4:std_logic_vector(3 downto 0);signal s5:std_logic;beginu1:jsq port map(sen,resa,clka,s5,s1,s2,s3,s4);u2:yima port map(s1,fyimal);u3:yima port map(s2,fyimah);u4:yima port map(s3,myimal);u5:yima port map(s4,myimah);u6:cou5 port map(clka,resb,s5,baoj);--各模块通过位置关联end architecture art;4 仿真及测试4.1 控制计数模块仿真该计数器生成的原件如下图所示:图一计数器原件生成图计数器波形仿真图如下图所示:图二计数器波形仿真Aaa控制计数模块,是该定时器的核心部分.res为复位端,用来清零,采用异步复位方式;cn用于置位,高电平有效。