洗衣机控制电路数电实验

合集下载

数字电路实验 洗衣机程序设计

数字电路实验 洗衣机程序设计

1数字电路与逻辑设计实验报告题目: 洗衣机控制器设计2一、洗衣机控制器要求设计制作一个全自动洗衣机的控制器:_ 洗衣机的工作步骤为洗衣、漂洗和脱水三个过程,工作时间分别为:洗衣20 秒,漂洗30 秒,脱水15 秒;_ 用一个按键实现洗衣程序的手动选择:A 、单洗涤;B 、单漂洗;C 、单脱水; D 、漂洗和脱水;E 、洗涤、漂洗和脱水全过程;_ 用显示器件显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个 状态的工作时间,全部过程结束后,应提示使用者;_ 用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前 保留的状态;_ 选做:三个过程的时间有多个选项供使用者选择。

_ 选做:可以预约洗衣时间。

_ 选做:自拟其它功能。

二、系统设计基本思想电路由模式选择、计数器、报警模块以及译码驱动电路和数字显示电路等模块组成。

1、模式选择模块五种洗衣模式可供用户选择,模式选择模块将用户的选择信息传递到控制模块。

2、减计数计数器模块计数器洗衣以倒计时模块的方式提示用户当前剩余的洗衣时间,该计数器能读取不同的模值进行计数。

计时单位为一秒钟。

3、译码和数码显示电路译码和数码显示电路是将计时状态直观清晰地反映出来,被人们的视觉器官所接受。

显示器件选用LED 七段数码管。

在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

4、报警模块当系统运行到“报警”状态时,蜂鸣器将会报警,时间为5 秒。

4、分频器模块设计一个大小合适的分频器使得系统能够正确的实现一秒的计时。

三、总体设计图以及转移图流程图示:3状态选择开始信号输入变量A 为1YESNO进行洗涤变量B 为1YESNO进行漂洗变量C 为1YES进行脱水NO完成洗衣后报警提示完成4总体逻辑设计图:状态转移图示:控制器分频器OSC时间计数器洗涤漂洗脱水译码时间显示ClkClk1Clk2T15 T20 T2Cnt clr 报警Pause状态选择 译码5管脚设计图:WAITA =’1’进行洗涤进行漂洗A =’0’ B=‘1’B =’0’B =’1’进行脱水A =’0’ B=‘0’C =’1’C =’0’完成洗衣报警提示仿真情况:6简要说明:本次仿真执行的是第五个状态即洗涤、漂洗和脱水全过程。

洗衣机VHDL控制器实验报告

洗衣机VHDL控制器实验报告

数字电路和逻辑设计综合实验实验报告实验名称:洗衣机控制器班级:班内序号:姓名:学号:数电设计综合实验—洗衣机控制器一.设计课题的任务要求设计制作一个全自动洗衣机的控制器:●洗衣机的工作步骤为洗衣、漂洗和脱水三个过程,工作时间分别为:洗衣20秒,漂洗30 秒,脱水15 秒;●用一个按键实现洗衣程序的手动选择:A、单洗涤;B、单漂洗;C、单脱水;D、漂洗和脱水;E、洗涤、漂洗和脱水全过程;●用显示器件显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全部过程结束后,应提示使用者;●用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前保留的状态;●选做:三个过程的时间有多个选项供使用者选择。

●选做:可以预约洗衣时间。

●选做:自拟其它功能。

二.系统设计(包括设计思路、总体框图、分块设计)◆设计思路首先从题目进行分析,采用VHDL模块化的设计方法来进行洗衣机控制器的设计,即自顶向下,从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块.最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。

本控制器基本功能描述洗衣机控制器可工作于五种模式下:单洗涤、单漂洗、单脱水、漂洗十脱水、洗涤十漂洗+脱水,可以使洗衣机控制器工作在任意一种模式,并显示出洗衣机的工作状态和剩余工作时间,在剩余时间结束后有报警声提示使用者,并且可实现暂停洗衣和继续的功能,此外,加入附加功能,可自选三个过程是使用时间并且可预约洗衣时间。

由此分析可将洗衣机控制器分为控制模块、倒计时模块,初始模式选择模块,报警模块,洗衣时间选择模块,选通译码模块和分频器模块。

【设计过程】:1)审题,初步确定思路。

2)用VHDL语言进行编程。

3)适时对程序进行修改。

4)编译成功后,进行仿真,观察波形图。

5)将程序下载到实验板上,调试各功能。

6)通过计算机仿真和下载调试,发现问题,返回原程序进行修改。

7)进行总体的调试。

【含源代码】北邮数电实验洗衣机控制器点阵动态显示VHDL报告

【含源代码】北邮数电实验洗衣机控制器点阵动态显示VHDL报告

2015~2016 学年第一学期《数字电路与逻辑设计实验(下)》实验报告题目:基于 CPLD 的简易洗衣机控制器的设计与实现班级:学号:班内序号:学生姓名:一、设计课题的任务要求任务要求:基本要求:1、基于 CPLD 的简易洗衣机控制器的工作步骤为洗涤、漂洗和脱水三个过程,工作时间分别为:洗涤30 秒(进水5秒,洗衣15秒,排水5秒,甩干5秒),漂洗25秒(进水5秒,漂洗10秒,排水5秒,甩干5秒),脱水15秒(排水5秒,甩干10秒);2、用一个按键实现洗衣程序的手动选择:A、单洗涤;B、单漂洗;C、单脱水;D、漂洗和脱水;E、洗涤、漂洗和脱水全过程;3、用发光二极管显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全部过程结束后,应有声音提示使用者,并保持在停止状态,直至再次开始;4、用点阵动画显示洗衣机工作过程中进水、波轮或滚筒转动、排水和甩干等的工作情况,四种工作情况的动画显示要有区别且尽可能的形象。

5、用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前保留的状态;提高要求:1、三个过程的时间有多个选项供使用者选择。

2、可以预约洗衣时间。

3、自拟其它功能。

二、系统设计(包括设计思路、总体框图、分块设计)A.设计思路:本程序采用自顶向下的设计方法。

先从所需要实现的功能入手,把整个洗衣机的程序分为分频(cp)模块,模式设置(fset)模块,控制(foption)模块和点阵模块(dianzhen)等分别实现,最后再合成一个整的程序。

B.设计过程::1.计算机编程:按照上述设计,用VHDL语言进行编程实现,并通过编译,观察资源使用情况。

2.系统仿真:通过仿真软件仿真,观察波形图,如果不对,对程序进行反复推敲修改.3.下载调试:将程序下载到实验板上,调试各功能看是否满足设计要求。

4.修改程序:通过计算机仿真和下载调试,发现问题,返回原程序进行修改,再次进行下载调试,直到成功为止。

洗衣机控制电路实验报告

洗衣机控制电路实验报告

北京邮电大学实验报告题目:洗衣机控制器实验报告专业:信息与通信工程学院学号:09210670班级:2009211125姓名:刘明巍1.实验目的与实验要求2.实验原理及设计过程3.仿真波形及波形分析4.源程序5.元器件清单及资源利用情况6.故障及问题分析7.总结和结论一、实验目的与实验要求目的1. 熟练掌握 VHDL 语言和QuartusII 软件的使用;2. 理解状态机的工作原理和设计方法;3. 掌握利用 EDA 工具进行自顶向下的电子系统设计方法;基本要求1.洗衣机的工作步骤为洗衣、漂洗和脱水三个过程,工作时间分别为:洗衣20秒,漂洗15秒,脱水10秒;2.用一个键实现洗衣程序的手动选择:A、单脱水;B、单漂洗;C、单洗涤;D、漂洗和脱水;E、洗涤、漂洗和脱水全过程;3.用显示器显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全过程结束后,应提示使用者;4.用一个键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前保留的状态;提高要求1. 三个过程的时间有多个选项供使用者选择2. 可以预约洗衣时间3. 自拟其他功能二、实验原理及设计过程1.整个洗衣机的控制程序分为:状态控制及倒计时模块、初始模式选择模块、报警模块、洗衣时间选择模块、选通译码模块、分频器模块等分别实现,最后连接为整体。

(1)按键模块由防抖模块和按键信号产生模块构成:防抖模块用来增加按键的灵活性和有效性;按键控制信号产生模块是通过按键来产生模式选择信号、各模式时间选择信号和开始/暂停信号,形成控制模块需要的各种控制信号。

(2)显示模块由时间显示设置模块、数码管显示模块和选通信号模块以及指示灯构成:其中时间设置模块用来完成时间显示个位和十位信号的设计;数码管显示模块用用来完成模式选择选项的显示数字、模式时间选择选项的显示数字和倒计时时间的显示数字的信号设计;选通信号用来实现六个七段数码管的同时显示的设计;而指示灯用来完成对各种状态的指示的设计。

洗衣机控制电路

洗衣机控制电路

一、概述本设计要求完成洗衣机控制电路的设计。

控制洗衣机按定时启动、正转20秒、暂停10秒、反转20秒、暂停10秒的洗涤模式不停的循环,到达定时时间后停止。

并要求有数码管显示时间,LED显示状态,声音报警。

通过以上要求,洗衣机洗涤模式是以60秒钟即一分钟作为循环。

计时方式是通过预置时间定时,因而初步设想使用一个六十进制倒计时电路作为核心控制。

预置时间以分为单位,则还需要分计时器,并且要能预置时间。

同时,时间的计时按秒来进行,则需要用一个妙信号发生器。

最后,用两位数码管作为时间显示电路,三个LED灯作为状态显示电路,蜂鸣器作为报警电路。

根据以上分析,设计电路基本框图入下:二、方案论证计时器芯片选择采用74LS192芯片实现中规模集成电路74LS192进行设计较为简便,74LS192是十进制可编程同步加减计数器,它采用8421码二·十进制编码,并具有直接清零、置数。

加/减计数功能,为双时钟芯片,计数采用DOWN时钟,而置数可以采用UP时钟,因而置数显得十分简单,是很好的选择。

显示电路选择显示电路用单位的数码管和相适应的显示译码器,这儿采用共阴极的单位数码管,应用十分简单。

状态显示电路使用三个不同颜色的数码管来表示不同的洗涤状态,通过74LS138作为译码器,来实现该功能。

经过以上分析,计时电路采用四片74LS192实现,两片组成六十进制计数器实现秒信号计数,当计满六十秒后向前借位。

另外两片构成一百进制计数器,来计数秒的借位信号,同时实现预置数功能。

数码管、报警电路和LED灯分别与逻辑电路进行组合,接到74LS192的输出,以完成时间显示、报警和状态显示,洗衣机控制则使用74LS138作为译码输出进行不同的组合,完成控制。

其中显示电路实际连接为:图1 显示电路具体图三、电路设计计时电路我们用四片74LS192来实现分计数和秒计数功能,对于秒信号,我们要的只是减计数,所以我们把两片秒计数的74LS192芯片的UP端接到高电平上去,DOWN端接到秒脉冲上;十分秒位上的输入端B、C端接到高电平上,即从输入端置入0110(十进制的6),秒十位的LD端和借位端BO联在一起,再把秒位的BO端和十秒位的DOWN联在一起。

实验二 洗衣机控制实验

实验二 洗衣机控制实验

贵 州 大 学 实 验 报 告 纸系 别电科班 级电科091班姓 名 学号 课 程名 称微机接口技术成 绩 评 定 教师签名实 验时 间2012年 6 月8日实验二 洗衣机控制实验一、实验目的掌握自动洗衣机的控制方法。

二、实验内容1、利用系统提供的双色LED显示电路模拟洗衣机控制信号灯。

2、8255修改程序实现洗衣机顺序控制,要求如下:(1)初始状态:只输出一个红灯亮,表示机器处于停止,延时1秒。

(2)加水过程:只输出一个红灯亮、一个黄灯亮,表示开始加水,延时1秒加水结束(3)只输出四个绿灯亮,开始洗衣正转,延时2秒(4)只输出四个黄灯亮,开始洗衣反转,延时2秒(5)3、4两个过程重复3次表示洗衣过程(6)洗衣结束,只输出一个红灯1秒,表示停止(7)只输出一个红灯亮、二个黄灯亮,表示开始放水,延时1秒(8)只输出二个红灯亮、二个绿灯亮,表示放水结束,进行甩干,延时1秒(9)加水过程:只输出一个红灯亮、一个黄灯亮,表示开始加水,延时1秒加水结束(10)只输出三个绿灯亮、一个黄灯亮,开始清洗正转,延时2秒(11)只输出三个红灯亮,一个黄灯亮,表示清洗反转,延时2秒(12)10、11两个过程重复3次表示清洗过程(13)只输出一个红灯亮、二个黄灯亮,表示开始放水,延时1秒(14)只输出二个红灯亮、二个绿灯亮,表示放水结束,进行甩干,延时1秒(15)只输出四个红灯亮,表示机器处于停止,洗衣结束3、观察并记录控制过程及调试过程,写出实验得到的结论和收获。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。

开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后,东西路口的绿灯,闪烁若干次后,东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后,东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后,南北路口的绿灯闪烁若干次后,南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后,再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。

洗衣机控制电路设计 电子电路设计课程设计 毕业设计

洗衣机控制电路设计 电子电路设计课程设计 毕业设计

洗衣机控制电路设计电子电路设计课程设计毕业设计洗衣机控制电路设计摘要本设计是基于数字电路定时器的洗衣机简易控制电路。

通过预置洗衣机的洗涤时间来自动的正反转和暂停,并且用不同的指示灯来表示洗衣机的正逆暂停三状态。

当到达定时时间后,会自动报警,发出蜂鸣声。

同时,用两位数码管来显示预置时间和洗涤剩余时间。

具有良好的用户界面。

电路主要分为显示电路、秒脉冲发生电路、计时电路、报警状态电路和洗衣机正反转控制电路。

显示电路使用的是两个单位的共阴极八段数码管,使用两片74ls48作为数码管译码芯片。

秒脉冲发生电路采用了使用成熟广泛的555定时器芯片,通过电脑USB插口供电,产生秒信号,作为各芯片的时钟信号。

计时电路使用的是四片十进制可逆计数器74ls192芯片,分别设计为十进制和六进制电路,用于完成时间的定时、计时功能。

报警电路和状态显示电路使用的是简单的74ls04非门、74LS21双4输入与门、74LS125三态门组成的逻辑组合电路,分别控制蜂鸣器和发光二极管,来实现报警和状态显示。

实验通过电脑软件仿真和实物验证,具有良好的可行性,能够稍加修改后用于洗衣机控制电路中,能满足一般的要求。

关键词:洗衣机控制;数字电子控制;定时器目录摘要 (2)1 设计要求分析与方案选择 (4)1.1 设计要求分析 (4)1.1.1洗衣机控制电路原理及电路设计1.2 方案选择 (7)1.2.1 单片机方案 (7)1.2.2 数字电路方案 (7)2 方案总体框图设计 (7)2.1 方案总体设计思路 (7)2.1.1 各模块器件选择 (8)2.1.2 模块总体电路实现 (8)2.2 方案总体电路图 (8)3 电路各模块设计与参数选择 (12)3.1 秒脉冲电路 (12)3.2 计时电路 (14)3.3 显示电路 (16)3.4 状态显示电路 (18)4 仿真调试分析 (22)4.1 仿真软件介绍 (22)4.2 仿真总体电路图分析 (22)4.3 仿真结果分析 (24)5 电路实物验证结果 (24)5.1 实物总体图片和介绍 (24)5.2 实物功能演示 (24)6 方案的分析与总结体会 (24)6.1 方案选择总结与分析 (25)6.2 仿真调试总结与体会 (25)6.3 实物制作总结与体会 (26)6.4 设计优点分析 (26)6.5 设计不足分析 (26)7 参考文献 (26)8 附录 (27)1 设计要求分析与方案选择1.1 设计要求分析设计制作一个洗衣机控制器,具有如下功能:1)采用中小规模集成芯片设计洗衣机的控制定时器,控制洗衣机电机作如下运转:2)洗涤电机用两个继电器控制。

数电实验 洗衣机

数电实验 洗衣机

数电实验报告——简易全自动洗衣机控制器03111班09号迟帅简易全自动洗衣机控制器实验报告摘要:我们制作的系统可以模拟全自动洗衣机控制器。

分为4个按键,分别为模式选择、暂停、开始和复位。

有五个指示灯来显示当前工作模式,分别为单洗涤、单漂洗、单脱水、漂洗和脱水以及洗涤漂洗脱水。

有三个指示灯显示当前工作状态,红灯是正在工作中,黄灯是暂停中,绿灯是停止中。

通过数码管显示当前操作的剩余时间,当操作完成时蜂鸣器会报警提示完成。

通过两个指示灯显示剩余操作数。

Abstract:We made a system that control washing machine. It has 4 buttons: mode choosing, pause, start, reset. We use 5 green lights to show working mode and it has 5 modes. It has one red light to show it is working, one yellow light to show it is pausing and one green light to show it is stopping. The system can show leaving-time and give an alarm when it has finished. It shows how many acts left by two light.设计任务要求:制作一个简易全自动洗衣机控制器:1、洗衣机的动作有洗涤、漂洗和脱水,每个动作持续的时间分别为20秒、15秒和10秒;2、用一个按键实现洗衣程序的手动选择:A、单洗涤B、单漂洗C、单脱水D、漂洗和脱水E、洗涤、漂洗和脱水全过程3、无论选择何种洗衣服的程序,在所选择的程序完成之后,控制器应处于暂停状态;4、用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前的状态;5、用发光二极管指示当前状态;6、用数码管以倒计时的方式显示当前状态的剩余时间。

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

2010—2011学年第二学期《数字电子技术课程设计》报告课题:简易洗衣机控制电路专业班级:自动化 09-1姓名:仇涛学号: 09051107设计日期: 2011年7月7日~10日目录一、设计任务及要求-------------------------------------------------------------------------------2(一)具体要求--------------------------------------------------------------------------------2(二)输入输出资源说明--------------------------------------------------------------------2二、设计原理与方案--------------------------------------------------------------------------------4(一)顶层设计方案---------------------------------------------------------------------------4(二)分频器设计方案------------------------------------------------------------------------5(三)计时器(倒计时)设计方案---------------------------------------------------------5(四)显示器设计方案------------------------------------------------------------------------5(五)暂停设计方案---------------------------------------------------------------------------5三、电路设计、仿真与实现-----------------------------------------------------------------------6(一)顶层的设计实现------------------------------------------------------------------------6(二)分频器的设计实现---------------------------------------------------------------------8(三)计数器(倒计时)的设计实现-----------------------------------------------------10(四)显示器设计实现-----------------------------------------------------------------------15(五)暂停设计实现--------------------------------------------------------------------------17(六)Fit Design 结果------------------------------------------------------------------------18四、分析与讨论-------------------------------------------------------------------------------------18一、设计任务及要求:洗衣机是家庭常用电器,一般可以有多种工作模式可供选择。

在此要求设计具有两种工作模式的简易洗衣机控制电路,具有复位、模式设置、启动、暂停功能,并能显示洗衣机的工作状态(如洗涤时间倒计时,电动机的正反转、暂停)。

(一)具体要求:1、设置为复位按钮S0,按钮状态S0=0时,对系统状态进行复位,计数器清零。

S0=1时,进入模式选择。

2、设置模式选择按钮S1。

按钮状态S1=0时,执行洗衣模式一,控制洗衣机的电机按照图1的规律循环运转;S1=1执行洗衣模式二,控制洗衣机的电机按照图2规律循环运转。

图1 洗衣模式一图2 洗衣模式二3、设置启动按钮S2。

洗衣模式设定后,按钮状态S2=1时,设定洗衣时间为30分钟,按钮状态S2=0时,设定洗衣时间为15分钟。

在洗衣过程中分别用3个LED灯来显示电动机的正转、翻转,间歇等状态。

4、设置暂停按钮S3。

当按钮状态S3=0时,洗衣暂停,计数器状态、显示均保持,并点亮1个LED灯显示暂停状态。

S3=1时正常运转。

(二)输入输出资源说明:1、输入信号:四个控制按钮S0、S1、S2、S3(按钮按下时S=0,松开时S=1)。

2、外部输入脉冲信号时钟源CP(50MHz),应设计一分频器得到5Hz信号供计数器使用。

3、输出3组显示译码信号,并在FPGA内部经过译码后获得7段LED显示码,并通过扫描方式在三个发光LED显示数码管上显示当前洗衣时间的倒计时(分钟)、每个洗衣循环的60s倒计时的十位和个位。

4、输出4个高低电平信号,分别接到外部的4个LED灯指示电机的正转、间歇、反转和系统的暂停。

(输出高电平时,对应的LED灯亮)其具体框图如下:(此图只是大概结构,设计时可根据自己的思路稍微改动电路图)图3 洗衣机控制器结构框图根据如上说明,本设计的主要任务和设计要求是:1、按照现代数字系统的Top-Down模块化设计方法,提出简易洗衣机控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码等模块化子系统的设计方案。

2、在Quartus的EDA设计环境中,采用原理图和Verilog语言混合输入的方法,完成系统的顶层设计、各子系统的模块化设计。

分别完成各个基于Verilog语言实现的子模块(包括分频器、计数器、主控制器、扫描显示译码四部分)的逻辑功能仿真,并对顶层设计进行功能仿真。

3、在2步的基础上,采用Altera公司的CPLD器件EP1C12F324C8对顶层设计进行适配(Fit Design),生成下载文件。

4、采用DownLoad软件将设计的JED文件烧录到试验板的芯片上,实际测试。

二、设计原理与方案(一)、顶层设计方案:本系统主要有分频器,计时器(倒计时),和显示器三大部分。

整体设计框图如下:其中,分频器为其他模块提供合适的脉冲信号,计时器(倒计时)接受外部控制信号(S0 S1 S2),根据不同的信号进行不同的洗衣时间的倒计时并且根据倒计时的时间控制三个LED 灯(正转、反转与间歇)以及将倒计时结束的信号输出,显示器将倒计时的现态时间显示。

S3与倒计时结束信号一起控制计数器的暂停与暂停灯的亮灭。

(二)、分频器设计方案:分频器一输入两输出,输入为50MHZ 的原脉冲信号,输出clko1为1HZ 脉冲信号(给计数器),输出clko2为1KHZ 脉冲信号(给显示器)。

(三)、计时器(倒计时)设计方案:计时器的输入有:clk (1HZ 脉冲输入),S0(复位控制输入),S1(模式控制输入),S2(时间控制输入)。

输出有:out (倒计时结束输出,与S3一起控制计数器的暂停与暂停灯的亮灭),fenshi (倒计时现态时间的分的十位输出,给显示器),fenge (倒计时现态时S 3间分的个位输出,给显示器),miaoshi(倒计时现态时间的秒的十位输出,给显示器),miaoge (倒计时现态时间秒的个位输出,给显示器),LED(正转、反转与间歇)。

计时器的工作原理是:当clk出现上升沿时,将时间自减一秒,在按下S0(系统复位)后进入时间选择上,如果S2(时间输入)发生了改变则按新输入时间倒计时,如果没有发生改变则按原有状态时间继续倒计时直到时间为0:00为止并且反馈倒计时结束(out)信号。

其中S1控制模式信号,不按S1时S1=0,执行模式一;按下S1时,S1=1,执行模式2。

.(四)、显示器设计方案:将输入的倒计时现态时间(fenshi,fenge,miaoshi,miaoge)以七段码的形式通过数码管输出,数码管的扫描信号del。

(五)、暂停设计方案:本系统中的暂停主要是通过控制CLK的脉冲输入来控制计时器的计算。

当无脉冲输入时,计时器不运算,即暂停。

三、电路设计、仿真与实现:(一)顶层的设计实现:顶层设计的原理图:顶层设计的RTL 视图:整体的仿真结果:(二)、分频器的设计实现:分频器的源程序:module fenpin (clk,//源脉冲输入clko1,//1HZ脉冲输出 clko2//1KHZ脉冲输出 );/*==================================*/input clk;output clko1;output clko2;/*==================================*/reg clko1;reg clko2;reg [31:0]clk1;//控制1HZ的中间变量reg [31:0]clk2; //控制1KHZ的中间变量/*==================================*/initial//初始化beginclk1<=32'd0;clk2<=32'd0;end/*==================================*/always @(posedge clk )//变频beginclk1 <= (clk1 == 32'd50_000_000) ? 32'd0 : (clk1 + 32'd1);//仿真的时候//把50_000_000改小clko1 <= (clk1 == 32'd50_000_000) ? 1'd1 : 1'd0;clk2 <= (clk2 == 32'd50_000) ? 32'd0 : (clk2 + 32'd1);clko2 <= (clk2 == 32'd50_000) ? 1'd1 : 1'd0;end/*==================================*/Endmodule分频器的仿真结果:(三)计数器(倒计时)的设计实现:计数器(倒计时)的源程序:module daojishi(clk,//脉冲s0,//开关s0s1,//开关s1s2,//开关s2fenshi,//分的十位fenge,//分的秒位miaoshi,//秒的十位miaoge,//秒的个位LED,//3个指示out);/*===========================================*/input clk;//1HZ脉冲input s0;input s1;input s2;output out;output [2:0]fenshi;//四位输出,分十,分个,秒十,秒个output [2:0]miaoshi;output [3:0]fenge;output [3:0]miaoge;output [2:0]LED;/*===========================================*/reg [3:0]fenge;reg [2:0]fenshi;reg [2:0]miaoshi;reg [3:0]miaoge;reg [2:0]LED;reg out;/*===========================================*/initialbeginmiaoshi=3'b000;out=1'd1;miaoge=4'b0000;LED=4'b0000;end/*===========================================*/always @ (posedge clk)beginif(s0===1'd0)//判断是否复位,并且判断s2,从而改变分的初值 beginfenshi=3'd0;fenge=4'd0;miaoshi=3'd0;miaoge=4'd0;LED=3'b000;out=1'd1;if(s2===1'd0)beginfenshi=3'd1;fenge=4'd5;endelse if(s2===1'd1)beginfenshi=3'd3;fenge=4'd0;endendelse if(s0!=1'd0)beginbeginif(fenshi===0&&fenge===0&&miaoshi===0&&miaoge===0)//呈0:00,则结束,且输出OUT为0,使LED3暗beginLED=4'b0000;out=1'b0;endelse if(fenshi!=0||fenge!=0||miaoshi!=0||miaoge!=0)//如果还有时间,则倒计时beginbegin//倒计时if(miaoge===4'b0000)//秒的个位为0则借位beginif(miaoshi!=3'd0)beginmiaoshi=miaoshi-3'd1;miaoge=4'd9;endelse if(miaoshi===3'b000)//如果秒的十位也为0则向分个借位beginif(fenge!=4'd0)beginfenge=fenge-4'd1;miaoshi=3'd5;miaoge=4'd9;endelse if(fenge===4'd0) //如果分个为0则向分十借位beginfenshi=fenshi-3'd1;fenge=4'd9;miaoshi=3'd5;miaoge=4'd9;endendendelsebeginmiaoge=miaoge-4'd1;endend/*===========================================*/begin//模式选择if(s1===1'b0)//模式1beginif(miaoshi===3'd5||miaoshi===3'd4)//正转beginLED[0]=1'b1;LED[1]=1'b0;LED[2]=1'b0;endif(miaoshi===3'd3||miaoshi===3'd0)//间歇beginLED[0]=1'b0;LED[1]=1'b0;LED[2]=1'b1;endif(miaoshi===3'd2||miaoshi===3'd1)//反转beginLED[0]=1'b0;LED[1]=1'b1;LED[2]=1'b0;endend/*===========================================*/else if(s1===1'b1)//模式2beginif(miaoshi===3'd5||miaoshi===3'd4||(miaoshi===3'd3&&miaoge>=4'd5))//正转beginLED[0]=1'b1;LED[1]=1'b0;LED[2]=1'b0;endif((miaoshi===3'd3&&miaoge<=4'd4&&miaoge>=4'd0)||(miaoshi===3'd0&&miaoge<=4'd4& &miaoge>=4'd0))//间歇beginLED[0]=1'b0;LED[1]=1'b0;LED[2]=1'b1;endif(miaoshi===3'd2||miaoshi===3'd1||(miaoshi===3'd0&&miaoge>=5))//反转beginLED[0]=1'b0;LED[1]=1'b1;LED[2]=1'b0;endendend/*===========================================*/endendendend/*===========================================*/Endmodule计数器(倒计时)的仿真结果:(四)显示器设计实现:显示器源程序:module xianshi (clk,fenshi,fenge,miaoshi,miaoge,del,duanma);/*==============================================*/ input clk;//1KHZ脉冲input [2:0]fenshi;//分input [2:0]miaoshi;input [3:0]fenge;//秒十input [3:0]miaoge;//秒个output [2:0]del;//3-8output [6:0]duanma;//7段码/*==============================================*/ reg [2:0]del;reg [6:0]duanma;reg [6:0]fenshio;reg [6:0]fengeo;reg [6:0]miaoshio;reg [6:0]miaogeo;/*==============================================*/ initialbegindel<=3'b000;duanma<=7'b0000_000;end/*==============================================*/ always @(posedge clk)//3-8译码器扫描beginif(del===3'b111)begindel<=3'b000;endelsebegindel<=del+3'b001;endend/*==============================================*/always@(fenshi or fenge or miaoshi or miaoge)//翻译成七段码begincase(miaoge)//秒的个位4'b0000: miaogeo<=7'B0111_111;//04'b0001: miaogeo<=7'b0000_110;//14'b0010: miaogeo<=7'b1011_011;//24'b0011: miaogeo<=7'b1001_111;//34'b0100: miaogeo<=7'b1100_110;//44'b0101: miaogeo<=7'b1101_101;//54'b0110: miaogeo<=7'b1111_101;//64'b0111: miaogeo<=7'b0000_111;//74'b1000: miaogeo<=7'b1111_111;//84'b1001: miaogeo<=7'b1101_111;//9default: miaogeo<=7'b0000_000;//暗 endcasecase(miaoshi)//秒的十位3'b000: miaoshio<=7'B0111_111;//03'b001: miaoshio<=7'b0000_110;//13'b010: miaoshio<=7'b1011_011;//23'b011: miaoshio<=7'b1001_111;//33'b100: miaoshio<=7'b1100_110;//43'b101: miaoshio<=7'b1101_101;//5default: miaoshio<=7'b0000_000;//暗 endcasecase(fenge)//分的个位4'b0000: fengeo<=7'B0111_111;//04'b0001: fengeo<=7'b0000_110;//14'b0010: fengeo<=7'b1011_011;//24'b0011: fengeo<=7'b1001_111;//34'b0100: fengeo<=7'b1100_110;//44'b0101: fengeo<=7'b1101_101;//54'b0110: fengeo<=7'b1111_101;//64'b0111: fengeo<=7'b0000_111;//74'b1000: fengeo<=7'b1111_111;//84'b1001: fengeo<=7'b1101_111;//9default: fengeo<=7'b0000_000;//暗 endcasecase(fenshi)//分的十位3'b000: fenshio<=7'B0111_111;//03'b001: fenshio<=7'b0000_110;//13'b010: fenshio<=7'b1011_011;//23'b011: fenshio<=7'b1001_111;//33'b100: fenshio<=7'b1100_110;//43'b101: fenshio<=7'b1101_101;//5default: fenshio<=7'b0000_000;//暗endcaseend/*==============================================*/always @(fenshio or fengeo or miaoshio or miaogeo)//对应数码管输出begincase (del)3'b000: duanma<=miaogeo;//秒的个位3'b001: duanma<=miaoshio;//秒的十位3'b010: duanma<=7'b1000_000;// -3'b011: duanma<=fengeo;//分的个位3'b100: duanma<=fenshio;default: duanma <= 7'b0000_000;//暗endcaseend/*=========================================*/edmodule显示器的仿真结果:(五)暂停设计实现将开关S3与CLK构成一个与门再接到倒计时模块的CLK(脉冲输入)端上,松开S3,S3=1,1Hz的脉冲输入倒计时模块,倒计时模块正常运作,当按下S3后,S3=0,无脉冲输入倒计时模块,模块暂停。

相关文档
最新文档