数电课程设计报告 洗衣机控制电路
数电课程设计 洗衣机定时控制器
数字电子技术课程设计报告题目:洗衣机定时控制器班级:洗衣机定时控制器一、设计任务及要求:1.设计脉冲信号源(秒脉冲)2.至少能显示 1:00—12:593.具备校时功能4.附加特殊功能设计(报时功能)二、方案设计与论证:所谓数字钟,是指利用电子电路构成的计时器。
相对机械钟而言,数字钟能达到准确计时,并显示小时、分、秒,同时能对该钟进行调整。
在此基础上,还能够实现整点报时的功能。
其中有振荡器,分频器,校时电路,报时电路,计数器,译码器和显示器七部分组成。
振荡器和分频器组成标准秒信号发生器,不同进制的计数器产生计数,译码器和显示器进行显示,通过校时电路实现对时,分的校准方案一:使用 COMS 数字芯片,使用专用时钟芯片,使用十进制计数器,以及使用万用板焊接电路,分模块搭建电路,使用专用电源供电。
优点:计时准确,反应灵敏,思路简单,性能稳定,成功率高,便于调试。
缺点:驱动能力弱,走线复杂,对数电知识的利用并不充分。
方案二:使用 TTL 数字芯片,使用 74LS93 多进制计数器,用 555 定时器自建时钟模块,使用 USB 供电,使用 PCB 制板。
优点:电路驱动能力强,不必考虑输入脚悬空的问题,充分利用了模电、数电的知识,外观漂亮,供电方便。
缺点:整体布局比较麻烦,排查错误比较麻烦,时钟性能一般。
在比较两个方案的优缺点后,选择了第二个方案,进行由上而下层次化的设计,先定义和规定各个模块的结构,再对模块内部进行详细设计。
通过仿真,原理图设计,PCB 制作,分步骤调试,来解决方案二的不足。
使做出来的效果又好,又能充分利用学过的数电知识。
可以体现数电课设的真正内涵。
我们设计的电子钟,严格按照设计要求,具有整点报时,调时,调分等功能;特别是,我们的调时调分开关,都加上了消抖电路,使用了模拟电路消抖,省去了一些数字芯片,这些都是我们组,区别于其他组的地方。
设计原理及框图定时控制器实际上是一个对标准频率进行计数的计数电路,由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的 1kHZ 时间信号必须做到准确稳定。
洗衣机的简易控制电路设计
2008—2009学年第二学期《数字电子技术课程设计》设计报告专业班级电气07-1姓名学号开课系室电工电子学教学中心设计日期 2009年7月4日~7日洗衣机的简易控制电路设计一、设计任务及要求:洗衣机是家庭常用电器,一般可以有多种工作模式可供选择。
在此要求设计具有两种工作模式的简易洗衣机控制电路,具有复位、模式设置、洗衣时间预置、启动、暂停功能,并能显示洗衣机的工作状态(如洗涤时间倒计时,电动机的正反转、暂停)。
(一)具体要求:1、设置为复位开关S0,开关状态S0=1时,对系统状态进行复位,计数器清零。
S0=0时,进入模式选择。
2、设置模式选择开关S1。
开关状态S1=0时,执行洗衣模式一,控制洗衣机的电机按照图1的规律循环运转;S1=1执行洗衣模式二,控制洗衣机的电机按照图2规律循环运转。
图1 洗衣模式一图2 洗衣模式二3、洗衣时间预置键K1和K2。
当S1=0,S2=0时,预置模式一的洗衣时间;当S1=1,S2=0时,预置模式二的洗衣时间。
在时间预置功能下,按一下K1按键洗衣时间增加1分钟(一个洗衣循环),按一下K2按键洗衣时间减少1分钟(一个洗衣循环),预置时间范围为0-9分钟。
4、设置启动开关S2。
洗衣模式设定后,开关状态S2=1时,按照设定的洗衣模式启动电机运转。
在洗衣过程中分别用3个LED灯来显示电动机的正转、翻转,间歇等状态。
5、设置暂停开关S3。
当开关状态S3=1时,洗衣暂停,计数器状态、显示均保持,并点亮LED灯显示暂停状态。
S3=0时正常运转。
(二)输入输出资源说明:1、输入信号:四个控制开关S0、S1、S2、S3(开关拨下时S =0,开关拨上时S =1),两个按键K1和K2(按下时K=1,松开时K=0)。
2、外部输入脉冲信号时钟源CP (10Hz ),经适当分频后供计数器使用。
3、输出3组显示译码信号(每组7个输出端),分别接到外部的三个七段数码管M1、M2,M3上(共阴极接法)。
数字电路课程设计---洗衣机控制电路设计
数字电路课程设计---洗衣机控制电路设计辽宁工业大学数字电子技术基础课程设计(论文)题目: 洗衣机控制电路设计院(系):电子与信息工程学院专业班级: 电子102班学号: 100404056学生姓名: 李宏指导教师: 吕娓教师职称: 副教授起止时间: 2012.12.17~2012.12.28数字电子技术基础课程设计(论文)课程设计(论文)任务及评语院(系):电子与信息工程学院教研室:电子信息工程学号 100404056 学生姓名李宏专业班级电子102班课程设计(论洗衣机控制电路设计文)题目设计要求:普通洗衣机的主要控制电路是一个定制器,它按照一定的洗涤程序控制电机做正向和反向转动。
定时器可以采用机械式,也可以采用电子式,这里要求用中小规模集成芯片设计制作一个电子定时器,来控制洗衣机的电机作如下运转。
课定时转动正转(20s) 暂停(10s) 反转(20s) 暂停(10s) 停止程设计定时未到 )论如果定时时间到,则停机并发出音响信号。
文1. 设电机用继电器控制。
洗涤定时时间在0~20min内由用户任意设定。
) 任2. 用两为数码管显示洗涤的预置时间,倒计时方式对洗涤过程作计时务显示,显示至时间到而停机。
3. 当定时时间到达终点时,一方面使电机停转,同时发出音响信号提醒用户注意。
洗涤过程在送入预置时间后即开始运转。
指导教师评语及平时成绩(20%): 论文成绩(60%): 成绩答辩成绩(20%): 总成绩 :指导教师签字: 学生签字:年月日II数字电子技术基础课程设计(论文)摘要本设计是基于数字电路定时器的洗衣机简易控制电路。
通过预置洗衣机的洗涤时间来自动的正反转和暂停,并且用不同的指示灯来表示洗衣机的正逆暂停三状态。
当到达一定时间后,会自动报警,发出蜂鸣声。
同时,用两位数码管来显示预置时间和洗涤剩余时间,具有良好的用户界面。
电路主要分为显示电路,秒脉冲发生电路,计时电路,报警状态电路和洗衣机正反转控制电路。
课程设计---洗衣机控制器的设计
电子技术课程设计报告书课题名称洗衣机控制器的设计姓名学号院、系、部专业电子信息工程指导教师2010年 11 月 25日洗衣机控制器的设计1 设计目的(1) 熟悉集成电路的引脚安排。
(2)掌握各芯片的逻辑功能及使用方法。
(3)了解面包板结构及其接线方法。
(4)了解洗衣机控制器的组成及工作原理。
(5)熟悉洗衣机控制器的设计与制作。
(6)运用HVDL 语言完成洗衣机控制器的编程。
2 设计思路(1)设计洗衣机控制器电路。
(2)设计可预置时间(10-30分钟)的定时模块。
(3)设计洗衣机运作模块,控制洗衣机的进水,洗衣,放水,脱水运转。
(4)设计分频模块,为洗衣机提供‘秒’时钟。
(5)设计译码模块,完成对时间(分)的二进制译码和LED 管的动态扫描。
(6)设计电源电路和按键判别电路。
(7)设计显示电路,完成对剩余时间和工作状态的显示3 设计过程3.1 方案论证洗衣机控制器的整体框图如下(图一)所示:图 一(洗衣机控制器原理框图)FPGA 芯片 电源总控制键盘电路 译码模块洗衣机运作模块 显示电路 分频模块 时钟(1K )工作原理:1、开启电源后,洗衣机进入总控模块的时间设定模式,由7段LED 灯显示所设定时间;2、时间设定后,启动洗衣机,进入洗衣机运转模式,即启动洗衣机运转模块,同时屏蔽总控模块总时间(Time_all )信号。
每次自动洗衣时间由总控模块自动分配。
七段LED 灯轮换显示工作模式(进水=1,洗衣=2,放水=3,脱水=4)和剩余时间。
3、3次自动洗衣完成后,洗衣机进入待机模式,七段LED 灯灭,再次等待时间设定。
电路设计洗衣机控制器主要电路如图所示:ULN2803是高电压大电流达林顿晶体管阵列,用于高电压大电流负载。
74LS138为动态扫描译码电路,可基于该电路扩展LED 显示为最高8位动态。
增加了VCC 所接上拉电阻,为LED 显示提供足够的驱动电流。
KEY 为机械开关,只针对单个按键进行合键判别,无对应行列扫描。
洗衣机控制电路的设计
控制逻辑主要包括微处理器、存储器、 输入/输出接口等部分。
微处理器负责处理用户指令和数据,存 储器负责存储程序和数据,输入/输出 接口负责接收用户指令和输出控制信号。
洗衣机控制电路 的设计步骤
确定电路功能需求
确定洗衣机的基本功能,如洗 涤、脱水、烘干等
确定洗衣机的附加功能,如预 约、定时、智能控制等
智能决策:根据监 测数据自动调整洗 涤程序和参数
智能交互:支持 语音、手势等多 种人机交互方式
智能诊断:自动 检测洗衣机故障 并给出解决方案
节能环保设计
采用高效节能电机,降低能耗
采用环保材料,减少对环境的污染
添加标题
添加标题
添加标题
添加标题
采用智能控制技术,实现自动调节 水量和洗涤时间
采用太阳能、风能等可再生能源, 实现绿色环保
损坏或故障
检查水路系统:检查水 路系统是否正常工作, 有无漏水或堵塞等情况
检查洗涤效果:检查洗 涤效果是否达到预期, 有无洗涤不彻底或洗涤
过度等情况
优化控制程序:根据调 试结果,对控制程序进 行优化,提高洗衣机的
性能和稳定性
优化方案
优化控制算法,提高响应速 度
增加传感器数量,提高检测 精度
采用模块化设计,便于维护 和升级
洗衣机控制电路的设计
汇报人:abc
目录
添加目录标题
01
洗衣机控制电路的基 本原理
02
洗衣机控制电路的设 计步骤
03
洗衣机控制电路的调 试与优化
04
洗衣机控制电路的安 全与可靠性
05
洗衣机控制电路的未 来发展趋势
06
添加章节标题
洗衣机控制电路 的基本原理
洗衣机控制电路报告
课程设计课程名称数字电子技术基础课程设计题目名称洗衣机控制电路设计学生学院物理与光电工程学院专业班级电子科学与技术学号学生姓名指导教师2014-05-241一.设计题目1.设计目的 (3)二.设计任务与要求 (3)三.洗衣机控制电路原理 (3)四.单元模块化设计与选择 (4)1.秒脉冲发生器 (4)2.六十进制计数器 (5)①芯片的选择 (5)②六十进制同步加法计数器 (5)③六十进制计数器的进位 (6)3.洗衣机正反转模块 (7)4.定时模块 (8)①芯片介绍 (8)②自锁开关的说明 (8)③实现定时以及减法计数功能 (9)5.七段码译码和显示模块 (10)①七段码译码器 (10)②八段数码管 (11)6.蜂鸣器及结束控制电路 (12)①结束控制(正反转停止) (12)②蜂鸣器驱动电路 (13)7.洗衣机控制电路完整的元件清单: (13)五.总结与心得体会 (14)六.附录 (15)2一.设计题目:洗衣机控制电路设计1、设计目的1.掌握洗衣机控制电路的设计、组装与调试方法。
2. 熟悉数字和模拟集成电路的设计和使用方法。
二.设计任务与要求设计制作一个洗衣机控制器,具有如下功能:1)采用中小规模集成芯片设计洗衣机的控制定时器,控制洗衣机电机作如下运转:2)洗涤电机用两个继电器控制。
3)用两位数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直至时间到而停机。
洗涤定时时间在0~10min内用户任意设定。
4)当定时时间到达终点时,一方面使电机停转,同时发出音响信号提醒用户注意。
5)洗涤过程在送入预置时间后即开始运转。
三.洗衣机控制电路原理实现以上功能的洗衣机控制电路原理如图1:图1根据它的任务与要求,我们的得到这样一个简洁明了总体设计思路:3根据这个思路,我们进行了模块化设计,有些模块有不同的方案,我们进行择优选取。
四.单元模块化设计与选择1.秒脉冲发生器555定时器很方便地接成斯密特触发器,,在此基础上改接成多谐振荡器。
具有数字显示的洗衣机控制电路
一、课程题目:具有数字显示的洗衣机控制电路二、设计内容及要求此次课程设计将设计一个具有数字显示的洗衣机控制电路。
对于该电路有以下要求1.2.3.三、系统方案、系统框图系统框图如下1.定时器电路因为定时是以一分钟为单位量的,所以通过定时电路实现以六十秒为周期的脉冲信号,用以记时。
2.控制电路与执行电路控制电路接受记时信号,并将其转化为控制信号,输入到执行电路,模拟电机的转动情况。
3.预置及显示电路通过预置及显示电路,预置洗衣机的工作时间及实现数字显示。
四、单元电路设计、参数计算和器件选择1.定时器1)通过NE555定时器产生频率为一秒一个的秒脉冲。
为了让NE555定时器产生一秒一个的脉冲信号,首先把它接成多谐振荡器,如下图接法:(R1、R2、C1电阻电容的值的计算、C2的作用(滤波?))2)通过74LS160、74LS161和74LS138组成六十进制加法计数器六十进制加法计数器的电路图如下图所示74LS160是一个十进制上升沿计数器,它的CP端输入来自NE555多谐振荡器的一秒一个的脉冲信号,并在进位输出端产生每十秒一个的脉冲信号。
74LS161为可预置的4 位二进制同步计数器即十六进制计数器,它的CP端输入来自74LS160的每十秒一个的脉冲信号。
它的功能表如下为了组成六十进制加法计数器,采取置零的方法,并且通过74LS161的同步并行预置数功能实现置零。
为了实现将74LS161十六进制计数器通过置零的方法变成六进制计数器,需要74LS138译码器的帮助。
74LS138的译码器的功能表如下。
通过参照以上芯片的功能表,可以得到六十进制加法计数器的工作状态表,如下。
将74LS138的Y5输出端接在74LS161的LD非端,LD非端输入如下图所示的波形。
由于74LS161的同步并行预置数功能要在CR=1、LD=0、且有时钟脉冲CP 的上升沿作用时才能实现,所以置零功能在第60秒实现。
通过以上芯片的连接,实现了60进制加法计数器。
数电课程设计报告--洗衣机自动控制电路
洗衣机自动控制电路一、设计要求1.洗衣时间设定范围:1—99分钟(预设为30min)2.显示漂洗时间(显示分钟就好),时间到后会自动报警3.漂洗时(用发光二极管代替电动机)显示正转、反转、暂停4.定时时间内电机工作要求如下:启动正转20s 暂行10s 反转20s 暂行停止定时未到二、设计方案由于受现有知识的限制,我们不能使用单片机以及编写程序的方法来实现。
只能采用CMOS和TTL集成器件等中小型集成块,如计数器,锁存器,与非门,555定时器等构成洗衣机控制电路。
洗衣机的洗衣流程如框图:三、具体电路设计及工作原理说明1、多谐振荡器多谐振荡器是一种自激振荡器,产生振荡信号,用于计时。
在许多场合对多谐振荡器的频率稳定性要求严格,一般采用石英晶体振荡器。
但是由于洗衣机对时间的精确度要求不是很高,所以我们采用555定时器接成的500HZ多谐振荡器。
电路如图:图中是把555定时器接成施密特触发器,在用施密特触发器接成多谐振荡器的方法接成。
其中R7=100Ω,R8=200Ω,C3=5.77μF ,C4=1μF(滤波电容)把数据带入T=(R1+2R2)C2ln2 ,得T约为0.002s。
即周期为0.002秒,输出500HZ 的信号。
4号管脚即为脉冲信号输出管脚。
2、时钟电路及74LS192D功能表时钟电路采用计数器对输入的500HZ振荡信号进行计数,从而实现计时。
用十进制计数器接成两个60进制计数器,分别用于计秒和计分。
分和秒的计数图如下:加减计数器74LS192D(四个)、数码显示管等74LS192的功能表3、电机正转、反转、暂停的表示把秒十位上的数作为正反转控制系统的输入信号,把秒十位上输出的二进制数经74LS138 译码器译码成8个输出,然后再各取两位输出经由译码器、与非门、取反器作用到相应的3个指示灯(U15号灯亮表示正转,U13号亮表示反转,U14灯亮表示停止)。
4、分显示电路原理两个代表分的个位和十位的192的输出端接到74LS138D(3-8译码器)的对应输入端,然后经过74LS04D和74LS00D的处理,LED灯从左到右依次为正传、暂停、翻转。
数字电子技术课程设计--简易洗衣机控制器设计
课程设计任务书题目: 简易洗衣机控制器设计初始条件:利用定时器、数码管、LED等数字电路器件设计实现简易洗衣机功能。
(也可以使用单片机系统设计)要求完成的主要任务:(包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1 课程设计工作量:1周内完成对简易洗衣机控制电路的设计、仿真与调试。
2技术要求:洗衣机电机的工作顺序:启动——>正转20s——>暂停10s——>反转20s——>暂停10s——>停止①设计一个定时器控制洗衣机电机的运转,②三只LED灯表示“正转”、“反转”和“暂停”3个状态。
③用数码管显示洗涤时间,按倒计时方式对洗涤过程作计时显示,直到时间到停机,并发出音响信号报警。
④设置停止键,在洗涤过程中随时按该键可终止动作,并使显示器清0。
3 查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
时间安排:第17周(7、8节):理论讲解第18周:理论设计及实验室安装调试;地点:鉴主15通信工程实验室(1),鉴主13通信工程专业实验室;第19周:撰写设计报告及答辩;地点:鉴主17楼研究室。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录1 绪论 (3)2设计任务要求及总体思路 (3)3设计基本原理 (4)4设计方案 (4)5单元电路的设计和元件的选择 (6)5.1秒脉冲发生器 (6)5.2分秒计数器 (8)5.3时间译码及控制门 (11)5.4总电路图 (12)6仿真结果 (13)6.1秒脉冲发生器 (13)6.2分秒计数器 (13)6.2.1正转 (14)6.2.2暂停 (15)6.2.3反转 (16)6.2.4定时时间到 (17)7仿真结果分析 (18)8体会 (18)9元器件清单 (19)10 参考文献 (20)摘要现代生活人民生活水平越来越高,家家户户几乎都有一台洗衣机。
洗衣机由于洗涤方便受到广大用户的喜爱。
洗衣机的简易控制电路设计
2008—2009学年第二学期《数字电子技术课程设计》设计报告专业班级电气07-1姓名学号开课系室电工电子学教学中心设计日期 2009年7月4日~7日洗衣机的简易控制电路设计一、设计任务及要求:洗衣机是家庭常用电器,一般可以有多种工作模式可供选择。
在此要求设计具有两种工作模式的简易洗衣机控制电路,具有复位、模式设置、洗衣时间预置、启动、暂停功能,并能显示洗衣机的工作状态(如洗涤时间倒计时,电动机的正反转、暂停)。
(一)具体要求:1、设置为复位开关S0,开关状态S0=1时,对系统状态进行复位,计数器清零。
S0=0时,进入模式选择。
2、设置模式选择开关S1。
开关状态S1=0时,执行洗衣模式一,控制洗衣机的电机按照图1的规律循环运转;S1=1执行洗衣模式二,控制洗衣机的电机按照图2规律循环运转。
图1 洗衣模式一图2 洗衣模式二3、洗衣时间预置键K1和K2。
当S1=0,S2=0时,预置模式一的洗衣时间;当S1=1,S2=0时,预置模式二的洗衣时间。
在时间预置功能下,按一下K1按键洗衣时间增加1分钟(一个洗衣循环),按一下K2按键洗衣时间减少1分钟(一个洗衣循环),预置时间范围为0-9分钟。
4、设置启动开关S2。
洗衣模式设定后,开关状态S2=1时,按照设定的洗衣模式启动电机运转。
在洗衣过程中分别用3个LED灯来显示电动机的正转、翻转,间歇等状态。
5、设置暂停开关S3。
当开关状态S3=1时,洗衣暂停,计数器状态、显示均保持,并点亮LED灯显示暂停状态。
S3=0时正常运转。
(二)输入输出资源说明:1、输入信号:四个控制开关S0、S1、S2、S3(开关拨下时S =0,开关拨上时S =1),两个按键K1和K2(按下时K=1,松开时K=0)。
2、外部输入脉冲信号时钟源CP (10Hz ),经适当分频后供计数器使用。
3、输出3组显示译码信号(每组7个输出端),分别接到外部的三个七段数码管M1、M2,M3上(共阴极接法)。
洗衣机自动控制电路 数字逻辑课程设计
《数字逻辑》课程设计报告题目:洗衣机自动控制电路目录1 设计任务书2 总体方案设计2.1 功能和逻辑需求分析2.2 总体方案设计3 单元模块设计3.1分倒数单元电路设计3.2 秒倒数单元电路设计3.4 计数器单元电路设计3.2 状态译码器单元电路设计3.5总体电路设计(画出总体电路图)4 电路调试与测试4.1分倒数单元模块4.2秒倒数单元模块4.3计数器单元模块4.4状态译码器单元模块4.5全部器件5 总结1 设计任务书洗衣机自动控制电路为洗衣机设计一控制电路,当洗衣机控制开关打开后,电动机先正转20S,然后暂停10S,随后反转20S,再然后暂停10S;如果定时时间没到,则开始循环,若定时时间到,则停机断电。
定时时间设定范围为0~60分,显示分秒的倒计时。
用LED指示灯表示电机的正转、反转和暂停状态。
2 总体方案设计(1)、计时器:由两片芯片来分别完成分、秒的倒计时功能,分芯片提供预置功能,两片芯片的模均为60.(2)、计数器:通过计数来完成输出洗衣机四种状态(正转 > 暂停 > 反转 > 暂停 > 正转)的切换(3)、状态译码器:将输入的四种状态转换为三种状态(正转、暂停、反转)(4)、所有芯片都使用每秒一脉冲的统一脉冲,实现同步。
2.1 功能和逻辑需求分析1)、计时器:①由于平常用的基础器件无法简单做到倒数功能,所以决定用GAL器件,通过编写ABEL-HEL并在GAL器件上实现。
②计数器的分和秒分别需要8位输出(4位作为十位,另外4位作为个位,每4位二进制数在数码管上显示为一个十进制的数。
)③所以计数器的分和秒必须分为两个GAL器件,但同时秒需要有一个退位输出信号,分需要一个抑制秒继续倒数的输出信号,所以每个芯片需要9个输出端。
④总结:计数器需要两个GAL22v10分别实现分和秒的倒数。
2)、按周期显示正、反灯和暂停灯:①该功能仍然需要GAL器件来实现,首先需要内部能自己计数,电动机先正转20S,然后暂停10S,随后反转20S,再然后暂停10S,按20+10+20+10=60秒为一周期,所以需要6个输出来计数(作为内部计数,可以不必显示)。
课程设计--普通洗衣机的控制电路
课程设计--普通洗衣机的控制电路一﹑设计任务普通洗衣机的控制电路二、设计要求普通洗衣机的主要控制电器是一个定时器;按照一定的洗涤程序控制电机作正向反向转动,系统启动后按定时→正转(15秒)→暂停(5秒)→反转(15秒)→暂停(5秒) →正转(15秒) ……直到定时时间到,则停机并发生音响号。
三、设计内容1.设计思想首先,该电路要实现定时正转、反转、暂停、报警五个功能,可以将后面的四个功能理解为四个状态。
可以用发光二极管的亮灭来表示。
而定时功能可以用555定时器先构成一个时钟脉冲,再用集成芯片来构成一个时间计数器,通过在脉冲的作用计数来控制其状态,直到计数满足要求的时候报警。
2.设计说明方案一:用集成芯片74LS192构成一个时间加法器,用555定时器构成一个1HZ 的多谐振荡器,用来做时钟脉冲,用四个二极管来表示最后的四个状态,将秒位做成六十进制的计数器,然后将其划分为四个状态的时间段。
分别来表示其四个状态。
方案二:用集成芯片74LS192构成一个时间加法器,用555定时器构成一个1HZ 的多谐振荡器,用来做时钟脉冲,用四个二极管来表示最后的四个状态,将秒位做成四十进制的计数器,然后将其划分为四个状态的时间段。
分别来表示其四个状态。
两种方案比较:第一种方案优点是不需要时间转换,所以设置的时间是符合60进制的。
但是不能符合设计所要求的时间间隔,而且加法计数对报警这一功能不好控制,因为设置的时间不一样,所以逻辑关系不一样,所以不好找齐逻辑关系。
而第二种方案对于报警这一功能,特别容易实现,只需分钟位,秒位输出全为0,就可以了。
而且40进制的对设计所要求的时间段比较好划分。
唯一不足是不满足对定时的准确计数,这一方案是将40进制作为进位的,比日常的少二十秒。
启正报反暂暂计时时间定综上所述,选择第二种方案,更利于实现。
3.系统方案或者电路结构图⑴.1HZ的时钟脉冲。
输入输出阈值输入V1 触发输入V2复位R 输出Vo 放电管T××0 0 导通0 0 1 1 截止1 1 1 0 导通0 1 1 不变不变中t1≈0.7(R1+R2)C=0.651s为高电平时的时间,t2≈0.7R2×C=0.35s为低电平时的时间⑵.时间减法计数器:要求要实现置数功能,减数功能。
数电洗衣机时控电路课程设计报告
电子技术课程设计报告设计题目:洗衣机时控电路院(部):专业班级:学生姓名:学号:指导教师:目录洗衣机控制电路 (1)一、绪论 (1)1.1设计任务 (1)1.2 要求 (1)二、洗衣机控制电路分析 (2)2.1电路工作总体框图 (2)2.2六十进制秒计数器和一百进制分计数器 (3)2.3预置时间 (7)2.4循环电路 (8)三、总电路 (11)3.1正转仿真 (11)3.2反转仿真 (12)3.3停止仿真 (13)四、结束语与心得体会 (14)参考文献 (15)洗衣机控制电路摘要:本设计是基于数字电路定时器的洗衣机简易控制电路,着眼于目前普遍应用在洗衣机控制系统上的正反转动,设计了一个普通洗衣机的主要控制电路,定时器,它按照一定的洗涤程序控制电机做正向和反向转动,并且运用数码管来显示预置时间和洗涤剩余时间。
运用仿真电路实现其运转功能。
关键词:洗衣机数字电路proteus 仿真电路设计一、绪论1.1设计任务开始前我们通过控制三向开关来对其运行时间进行预置即洗涤时间设置,开始运转后,洗涤时间显示进行减计数功能,当秒计数器的个位减为零时就向十位借数,十位减一(分计时器同理),而在同时通过并行输出寄存器稳定输出秒十位数据,再经过门电路来控制洗衣机运行状态的显示灯,当设置的洗涤时间到后,显示器显示清零。
运转状态:定时转动→正转→暂停→反转→暂停→停止↑↓——定时未到———1.2 要求首先设计让倒计时显示器按规律运行的电路,再通过倒计时电路的信号来控制交通灯按4 种状态循环变换。
电源电路采用9V 变压器、整流桥和稳压管,使220V 的交流电转换为5V 的直流电。
4Hz 方波脉冲由555 定时器产生,再由74LS193 实现4 分频,最终输出1Hz 的脉冲信号;用两块74LS193 实现倒计时,一块显示十位,一块显示个位,用2 个D 触发器74HC74实现30s,20s,5s 时间的转换;利用倒计时电路控制4 个状态。
数字电路课程设计--洗衣机电路设计
数电课程设计论文论文题目:洗衣机控制电路设计课程名称数字电子技术基础课程设计学院专业班级学号姓名指导教师2013年 05月26 日一、设计题目 (2)1、设计地目地: (2)二、设计任务与要求 (2)三、设计思路 (2)四、单元模块地设计 (3)1、脉冲发生器 (3)2、60s计数器模块 (4)1)芯片说明 (4)2)60进制异步减法计数器 (5)3、定时模块 (6)4、显示模块 (8)1)CD4511 (8)2)8段数码管 (8)5、洗衣机正反转模块 (9)6、其他模块 (10)1)蜂鸣器 (10)2)正反转停止 (11)五、作品及元件清单: (13)六、总结及心得 (13)一、设计题目洗衣机控制电路设计1、设计地目地:1.)掌握洗衣机控制电路地设计、组装与调试方法.2.) 熟悉数字和模拟集成电路地设计和使用方法.二、设计任务与要求设计制作一个洗衣机控制器,具有如下功能:1)采用中小规模集成芯片设计洗衣机地控制定时器,控制洗衣机电机作如下运转:2)洗涤电机用两个继电器控制.3)用两位数码管显示洗涤地预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直至时间到而停机.洗涤定时时间在0~10min内用户任意设定.4)当定时时间到达终点时,一方面使电机停转,同时发出音响信号提醒用户注意.5)洗涤过程在送入预置时间后即开始运转.三、设计思路本定时器包括两级定时:一是总洗涤过程地定时;二是在总洗涤过程中包含电机地正转、反转和暂停三种定时,并且这三种定时是反复循环直至总定时时间到为止.总地洗涤时间定时器负责整个电路地时间定时功能,按照设计要求,需要可以自由设定1-10分钟地洗涤时间.第二个定时是电机地正反转定时,要求按照2s 暂停,8s 正转,8s 反转,并且不断地循环下去,直到定时时间到.根据思路:我们地设计模块电路为:四、单元模块地设计1、脉冲发生器用555定时器组成地多谐振荡器地原理图如图所示.R1、R2、C 是外接电阻元件.当uc 因电源接通对C 充电而上升到CC U 32时,比较器A1输出为低电平,使R-S 触发器输出置0,T 导通,电容C 通过T 放电;当uc 因电容放电而减小到略低于CC U 31时,比较器A2输出为低电平,使R-S 触发器输出置1,T 截止,电容C 继续充电直到uc 略高于CC U 32时,触发器又翻转到0,从而完成一个周期振荡.其振荡周期可用下式计算:计数器 一级定时器二级定时器暂停反转 正转显示定时T=ln2*(R1+2R2)C T=Ln2*(8.2k+2*68K)*10uf≈1s555连接电路 555脉冲产生周期2、60s 计数器模块 1)芯片说明74HC192是同步十进制可逆计数器,它具有双时钟输入,并具有清除和置数地功能.其引脚及功能如图所示:Uc555123456 7 8 555定时器地引脚图5k Ω- ∞ + + A 1 - ∞++ A 2- 1 5k Ω5k ΩRD- S D - QQU CC 电源地WR 4 8 5 6 27 555定时器地原理图3OUGN DIS TL TH VC 复位端输出端高触发放电端低触发电压控制端电源端T功能表如图2)60进制异步减法计数器根据功能表,要实现60进制地功能,则只需要使用2个192计数器,便可以组合成60进制异步减法计数器.该电路图地时序表如下第一个芯片为10进制计数器,第二个计数器为6进制计数器,脉冲电路状态等效十进制借位0Q3 Q2 Q1 Q01 1 0 1 01002 1 0 0 1903 1 0 0 080 0100 0 0 001脉冲电路状态等效十进制借位0Q3 Q2 Q1 Q010 1 1 060 20 1 0 15030 1 0 040 060 0 0 001当第一个192从10减到0之后,13脚会产生一个脉冲,此脉冲接入第二192地cpd脚,充当计数脉冲.当第二计数脉冲从6减为0时,U1 U2输出端输出0000 0000,此时通过与非和反相器组成地电路,接入U1 和U2地11脚,置为初始值,开始下一轮计数.真值表如图:QA QB QC QD QA QB QC QD PL1001 0110 11000 0101 1 (1)0000 0000 03、定时模块74HC192具有置数地功能,可以利用置数功能实现定时器地功能.其中,0-9分钟定时电路如图1所示.当开关S1打开时,U4脚接入低电平,允许置数,此时,脉冲对计数器无效,不计数.开关S2接高电平和U1地第5脚,按键按下时,充当计数脉冲.每按一次,计数器加1.U1地QA,QB,QC,QD端分别连接U4地A,B,C,D端,在U1计数时,同时将U4实时置数,实现定时功能.10分钟定时:由于10进制计数器只能定时0-9分钟,所以要实现10分钟地计数,还需要另外一个计数器74HC192.原理同0-9分钟地相似,由于该位只显示1和0两种状态,所以不需要使用另外地计数器来实现置数功能,使用单刀双掷开关,显示1时接高电平,显示0时连接低电平,实现置数功能.电路如图:3、显示模块显示模块使用CD4511和8位数码管.1)CD4511CD4511 是一片CMOS 地七段译码器.具有BCD转换、消隐和锁存控制、七段译码及驱动功能地CMOS电路能提供较大地拉电流.可直接驱动共阴LED数码管.引进功能如图所示.L E BLLT D C B A a b c d e f g显示X X0X X X X11111118X01X X X X00000000110000111111000110001011000010110010110110120110011111100130110100011001140110101101101150110110001111160110111111000070111000111111180111001111100192)8段数码管数码管是一种半导体发光器件,其基本单元是发光二极管.发光二极管单元连接方式分为共阳极数码管和共阴极数码管.共阴数码管是指将所有发光二极管地阴极接到一起形成公共阴极(COM)地数码管.共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管地阳极为高电平时,相应字段就点亮.当某一字段地阳极为低电平时,相应字段就不亮.当使用cd4511为译码器,必须使用共阴地数码管.显示电路如图所示5、洗衣机正反转模块设计要求该电路控制电机正转8s,暂停2s,反转8s,并不断循环直至定时时间到时显示暂停.该模块与一级定时模块连接.十位数字(二进制)A 个位数字(二进制)B转动方向0100 0010 00000111反转011001010100001100100001可以得到真值表如下图十位数字(二进制)A 个位数字(二进制)B转动方向0101 0011 00010111 正转0110 0101 0100 0011 0010 0001 0000BA Y =1十位数字(二进制)A 个位数字(二进制)B 转动方向0101 0100 0011 0010 000100001001 暂停1000由真值表经过化简得到地公式,可以得到图5-1地电路图,其中A 连接十位计数器地QA 输出脚,B 连接个位计数器地QD 输出脚,即可以实现正反转地功能.6、其他模块 1)蜂鸣器当定时时间结束之后,蜂鸣器启动,提醒用户定时时间到.当计数结束时,定时器应显示00状态.可以得到如下地真值表(6-1)定时器时间74HC192输出(U2 U1)蜂鸣器状态Y (0为停止,1启动)10 0001 0000 009 0000 1001 0 ………… ………… 0 000000 00001由上表可以得到公式21111)(A D C B A Y +++= 有公式可得电路图:0000AB 反转正转暂停BA Y =2BY =3图-5-1其中,A1 B1 C1 D1 分别连接定时器74HC192地QA QB QC QD 端2)正反转停止当定时器时间到时,需要断开洗衣机正反转功能,并让洗衣机处于暂停状态. 由真值表(6-1)可得,所需要地公式为21111)(A D C B A Y +++=可以利用蜂鸣器模块,利用三极管充当开关地功能,组合实现对计数器地停止功能.由蜂鸣器模块电路图可得,当定时时间未到时,p 端为高电平,此时三极管导通,电路正常,洗衣机开始正反转.当定时器时间到,p 端变为低电平,三极管截止,此时计数器暂停计数,洗衣机处于停止状态.电路如下所示各模块组合成地总电路图如下:A2A1 B1 C1 D1蜂鸣器pp74HC192三极管地集电极接74HC192地5脚,由192地真值表可得,当5脚恒定为低电平时,192暂停计数并置数为初始值.五、 作品及元件清单:PCB:总结及心得总结: 经过测试,该电路基本符合课程设计地要求,其中,时间可在0~19分钟内自由定时,正反转时间准确为8s ,暂停为2s.当定时时间到时,洗衣机暂停,蜂鸣器响起,提醒用户定时时间到.电路是有3个按钮,分别为十分钟定时按钮,个位定时按钮和启动按钮,操作方便.参考文献:数字电子技术基础(第五版) 阎石 高等教育出版社数字电子技术课程设计指导书(第二版) 物理与光电工程学院电工电子部原件名称 型号及大小 作用 封装 数量(个) 74HC192 直插16脚 计数器 DIP_16 5 NE555 直插8脚 产生脉冲 DIP_8 1 CD4511 直插16脚 译码器 DIP_16 1 74HC00 直插14脚 与非门 DIP_14 1 74HC02 直插14脚 或非门 DIP_14 3 74HC04 直插14脚反相器 DIP_14 3 数码管 --- 显示 RED_4GND 1可调电阻10k 调节脉冲频率 --- 1电阻 300 限流 AXIAL_0.4 8 68k --- AXIAL_0.4 1 开关 --- 断开与连接 --- 2 按键 --- 定时器按键 --- 1 Led 灯 红、绿、蓝 旋转地提示灯 LED-0 各1个 LED 灯 红 作0和1地提示 LED-0 1 三极管S8050 作暂停开关 TO-92A 1 电容10uF --- RAD_0.3 1 103----RAD_0.31。
FGPD洗衣机控制电路_数电实验
2010—2011学年第二学期《数字电子技术课程设计》报告课题:简易洗衣机控制电路专业班级:姓名:学号:设计日期:目录一、设计任务及要求-------------------------------------------------------------------------------2(一)具体要求--------------------------------------------------------------------------------2 (二)输入输出资源说明--------------------------------------------------------------------2二、设计原理与方案--------------------------------------------------------------------------------4(一)顶层设计方案---------------------------------------------------------------------------4 (二)分频器设计方案------------------------------------------------------------------------5 (三)计时器(倒计时)设计方案---------------------------------------------------------5 (四)显示器设计方案------------------------------------------------------------------------5 (五)暂停设计方案---------------------------------------------------------------------------5三、电路设计、仿真与实现-----------------------------------------------------------------------6(一)顶层的设计实现------------------------------------------------------------------------6(二)分频器的设计实现---------------------------------------------------------------------8 (三)计数器(倒计时)的设计实现-----------------------------------------------------10 (四)显示器设计实现-----------------------------------------------------------------------15 (五)暂停设计实现--------------------------------------------------------------------------17 (六)Fit Design 结果------------------------------------------------------------------------18四、分析与讨论-------------------------------------------------------------------------------------18一、设计任务及要求:洗衣机是家庭常用电器,一般可以有多种工作模式可供选择。
数字电路课程设计洗衣机
总体方案分析及选择:洗衣机电路包含有总的控制模块,洗涤控制模块,洗涤记时模块,电动机控制模块以及LCD 液晶板的动态显示模块.经过分析后,我们把前四个模块进行组合,把他们合成一个模块即:总控制模块.他们之间的逻辑联结关系,是对数电课程的一个很好总结,也是自己对新知识(LCD 液晶板的动态显示)学习理解运用能力的一个很好的提升机会。
基本功能要求:1要求设计制作一个普通功能洗衣机控制电路,使之能控制洗衣机的进水阀,排水阀,洗涤程序电机,甩干驱动装置等按预定程序工作.总体过程包括:进水浸泡洗涤排水甩干五个过程.进水从电路启动开始.其中浸泡可供选择,洗涤时间可以预置,洗涤结束时发出铃声进行提示并自动切断电源.发生故障如:缺水或进水超时排水超时甩干碰桶等时也可自动切断电源!2用中小规模集成电路芯片或CPLD/FPGA设计符合上述任务要求的电路,并制作出能实际运行的装置.3安装并调试电路,测试各部分电路功能或模型.4演示并交验硬件装置.下载实现图:局部功能模块总控模块:该模块实现了对洗衣机整个运行过程的控制,打开电源后由模块内部进行控制,按洗涤过程工致洗衣机的运转.同时在输入端还给了报警输入,当发生故障时洗衣机自动短电.复位端可以让洗衣机进入初始状态.在输入端还有10个总线输入可以人为进行置数,从而控制各个过程的时间长短.当给甩干时间一个时间,其他都置为0可以让洗衣机只进行甩干操作.VHDL文件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity xiyiji isport(clk0, clk1, rst, alarm: in std_logic;-----clk0:控制开关脉冲.clk1:记时开关脉冲.Rst:复位端.alarm:报警输入端.------- water_inh, water_inl, im_th, im_tl, wash_th: in std_logic_vector(3 downto0);wash_tl, water_outh, water_outl, dry_th, dry_tl: in std_logic_vector(3 downto 0); -----进水,浸泡,洗涤,出水,甩干置数端高位和低位输入端-----------water_in, water_out, immersion, dry, z1, z2, voice, poweroff: out std_logic; -----进水,出水,浸泡,甩干,洗涤,响铃,断电输出端-------display_th, display_tl: out std_logic_vector(3 downto 0)-------------------输出时间显示高位低位输出端-------------);end entity xiyiji;architecture behave of xiyiji issignal js, js_ten : std_logic;signal im, im_ten : std_logic;signal wa, wa_ten : std_logic;signal wa1, wa2, pwf: std_logic;signal cs, cs_ten : std_logic;signal dr, dr_ten : std_logic;signal xl, xl_ten : std_logic;signal js_dh, js_dl: std_logic_vector(3 downto 0);signal im_dh, im_dl: std_logic_vector(3 downto 0);signal wa_dh, wa_dl: std_logic_vector(3 downto 0);signal cs_dh, cs_dl: std_logic_vector(3 downto 0);signal dr_dh, dr_dl: std_logic_vector(3 downto 0);signal xl_dh, xl_dl: std_logic_vector(3 downto 0);signal dis_th,dis_tl: std_logic_vector(3 downto 0);begin-----------------------控制:控制器件实现洗衣机的功能:进水->浸泡->洗涤->出水->甩干->响铃->断电---------------control:process(clk0, rst,alarm)variable n: integer;beginif alarm = '1' thenpwf <= '1';elseif rst = '1' thenn := 0;im_ten <= '0';js_ten <= '0';wa_ten <= '0';cs_ten <= '0';dr_ten <= '0';xl_ten <= '0';pwf <= '0';elsif clk0 = '1' and clk0 'event thenif n = 0 thenif water_inh = "0000"and water_inl = "0000"thenn := 1;elsejs_ten <= '1';if js = '1' thenn := 1;end if;end if;elsif js = '0' and n = 1 thenif im_th = "0000"and im_tl = "0000"thenn := 2;elseim_ten <= '1';if im = '1' thenn := 2;end if;end if;elsif im = '0' and n = 2 thenif wash_th = "0000"and wash_tl = "0000"thenn := 3;elsewa_ten <= '1';if wa = '1' thenn := 3;end if;end if;elsif wa = '0' and n = 3 thenif water_outh = "0000"and water_outl = "0000"thenn := 4;elsecs_ten <= '1';if cs = '1' thenn := 4;end if;end if;elsif cs = '0' and n = 4 thenif dry_th = "0000"and dry_tl = "0000"thenn := 5;elsedr_ten <= '1';if dr = '1' thenn := 5;end if;end if;elsif dr = '0' and n = 5 thenxl_ten <= '1';if xl = '1' thenn := 6;end if;elsif xl = '0' and n = 6 thenpwf <= '1';end if;end if;end if;end process;-----------------------------记时----------------------------- ------------------进水记时--------------------------js_jishiqi:process(clk1, js_ten)beginif js_ten = '0' thenjs_dh <= water_inh;js_dl <= water_inl;js <= '0';elsif clk1 = '1' and clk1 'event thenif js_dh = "0000"and js_dl = "0000"thenjs <= '0';elsejs <= '1';if js_dl = "0000"thenjs_dl <= "1001";js_dh <= js_dh - 1;elsejs_dl <= js_dl - 1;end if;end if;end if;end process;-------------浸泡记时-----------------------im_jishiqi:process(clk1, im_ten)beginif im_ten = '0' thenim_dh <= im_th;im_dl <= im_tl;im <= '0';elsif clk1 = '1' and clk1 'event thenif im_dh = "0000"and im_dl = "0000"then im <= '0';elseim <= '1';if im_dl = "0000"thenim_dl <= "1001";im_dh <= im_dh - 1;elseim_dl <= im_dl - 1;end if;end if;end if;end process;-----------------洗涤记时---------------------- wa_jishiqi:process(clk1, wa_ten)variable m: integer;beginif wa_ten = '0' thenwa_dh <= wash_th;wa_dl <= wash_tl;wa <= '0';wa1 <= '0';wa2 <= '0';m := 0;elsif clk1 = '1' and clk1 'event thenif wa_dh = "0000"and wa_dl = "0000"then wa <= '0';elsewa <= '1';if m = 0 thenwa1 <= '1';wa2 <= '1';elsif m = 10 thenwa1 <= '0';wa2 <= '1';elsif m = 13 thenwa1 <= '1';wa2 <= '0';elsif m = 23 thenwa1 <= '0';wa2 <= '0';elsif m = 26 thenm := 0;end if;m := m + 1;if wa_dl = "0000"thenwa_dl <= "1001";wa_dh <= wa_dh - 1;elsewa_dl <= wa_dl - 1;end if;end if;end if;end process;--------------出水记时--------------------------- cs_jishiqi:process(clk1, cs_ten)beginif cs_ten = '0' thencs_dh <= water_outh;cs_dl <= water_outl;cs <= '0';elsif clk1 = '1' and clk1 'event thenif cs_dh = "0000"and cs_dl = "0000"then cs <= '0';elsecs <= '1';if cs_dl = "0000"thencs_dl <= "1001";cs_dh <= cs_dh - 1;elsecs_dl <= cs_dl - 1;end if;end if;end if;end process;--------------甩干记时-----------------------dr_jishiqi:process(clk1, dr_ten)beginif dr_ten = '0' thendr_dh <= dry_th;dr_dl <= dry_tl;dr <= '0';elsif clk1 = '1' and clk1 'event thenif dr_dh = "0000"and dr_dl = "0000"then dr <= '0';elsedr <= '1';if dr_dl = "0000"thendr_dl <= "1001";dr_dh <= dr_dh - 1;elsedr_dl <= dr_dl - 1;end if;end if;end if;end process;------------------响铃记时---------------------- xl_jishiqi:process(clk1, xl_ten)beginif xl_ten = '0' thenxl_dh <= "0010";xl_dl <= "0000";xl <= '0';elsif clk1 = '1' and clk1 'event thenif xl_dh = "0000"and xl_dl = "0000"then xl <= '0';elsexl <= '1';if xl_dl = "0000"thenxl_dl <= "1001";xl_dh <= xl_dh - 1;elsexl_dl <= xl_dl - 1;end if;end if;end if;end process;----------------------------显示时间--------------------------xianshishijian: process(clk1, js_ten, im_ten, wa_ten)beginif js_ten = '1' and im_ten = '0' and wa_ten = '0' and cs_ten = '0' and dr_ten = '0' and xl_ten = '0' thenif clk1 = '1' and clk1 'event thendis_th <= js_dh;dis_tl <= js_dl;end if;elsif im_ten= '1' and wa_ten= '0' and cs_ten= '0' and dr_ten= '0' and xl_ten = '0' thenif clk1 = '1' and clk1 'event thendis_th <= im_dh;dis_tl <= im_dl;end if;elsif wa_ten = '1' and cs_ten = '0' and dr_ten = '0' and xl_ten = '0' then if clk1 = '1' and clk1 'event thendis_th <= wa_dh;dis_tl <= wa_dl;end if;elsif cs_ten = '1' and dr_ten = '0' and xl_ten = '0' thenif clk1 = '1' and clk1 'event thendis_th <= cs_dh;dis_tl <= cs_dl;end if;elsif dr_ten = '1' and xl_ten = '0' thenif clk1 = '1' and clk1 'event thendis_th <= dr_dh;dis_tl <= dr_dl;end if;elsif xl_ten = '1' thenif clk1 = '1' and clk1 'event thendis_th <= xl_dh;dis_tl <= xl_dl;end if;end if;end process;----------------------------输出-----------------------------output:process(dis_th, dis_tl, im, js, cs, dr, wa1, wa2, xl, pwf)begindisplay_th <= dis_th;display_tl <= dis_tl;immersion <= im;water_in <= js;water_out <= cs;dry <= dr;z1 <= wa1;z2 <= wa2;voice <= xl;poweroff <= pwf;end process;end behave;测试文件:-------------------------------------------------------------- VHDL Testbench for xiyiji-- 2009 9 25 11 16 3-- Created by "EditVHDL"-- "Copyright (c) 2002 Altium Limited"------------------------------------------------------------Library IEEE;Use IEEE.std_logic_1164.all;Use IEEE.std_logic_textio.all;Use STD.textio.all;------------------------------------------------------------------------------------------------------------------------entity Testxiyiji isend Testxiyiji;------------------------------------------------------------------------------------------------------------------------architecture stimulus of Testxiyiji isfile RESULTS: TEXT open WRITE_MODE is"results.txt";procedure WRITE_RESULTS(alarm: std_logic;clk0: std_logic;clk1: std_logic;display_th: std_logic_vector(3 downto 0);display_tl: std_logic_vector(3 downto 0);dry: std_logic;dry_th: std_logic_vector(3 downto 0);dry_tl: std_logic_vector(3 downto 0);im_th: std_logic_vector(3 downto 0);im_tl: std_logic_vector(3 downto 0);immersion: std_logic;poweroff: std_logic;rst: std_logic;voice: std_logic;wash_th: std_logic_vector(3 downto 0);wash_tl: std_logic_vector(3 downto 0);water_in: std_logic;water_inh: std_logic_vector(3 downto 0);water_inl: std_logic_vector(3 downto 0);water_out: std_logic;water_outh: std_logic_vector(3 downto 0);water_outl: std_logic_vector(3 downto 0);z1: std_logic;z2: std_logic) isvariable l_out : line;beginwrite(l_out, now, right, 15);write(l_out, alarm, right, 2);write(l_out, clk0, right, 2);write(l_out, clk1, right, 2);write(l_out, display_th, right, 5);write(l_out, display_tl, right, 5);write(l_out, dry, right, 2);write(l_out, dry_th, right, 5);write(l_out, dry_tl, right, 5);write(l_out, im_th, right, 5);write(l_out, im_tl, right, 5);write(l_out, immersion, right, 2);write(l_out, poweroff, right, 2);write(l_out, rst, right, 2);write(l_out, voice, right, 2);write(l_out, wash_th, right, 5);write(l_out, wash_tl, right, 5);write(l_out, water_in, right, 2);write(l_out, water_inh, right, 5);write(l_out, water_inl, right, 5);write(l_out, water_out, right, 2);write(l_out, water_outh, right, 5);write(l_out, water_outl, right, 5);write(l_out, z1, right, 2);write(l_out, z2, right, 2);writeline(RESULTS, l_out);end procedure;component xiyijiport (alarm: in std_logic;clk0: in std_logic;clk1: in std_logic;display_th: out std_logic_vector(3 downto 0);display_tl: out std_logic_vector(3 downto 0);dry: out std_logic;dry_th: in std_logic_vector(3 downto 0);dry_tl: in std_logic_vector(3 downto 0);im_th: in std_logic_vector(3 downto 0);im_tl: in std_logic_vector(3 downto 0);immersion: out std_logic;poweroff: out std_logic;rst: in std_logic;voice: out std_logic;wash_th: in std_logic_vector(3 downto 0);wash_tl: in std_logic_vector(3 downto 0);water_in: out std_logic;water_inh: in std_logic_vector(3 downto 0);water_inl: in std_logic_vector(3 downto 0);water_out: out std_logic;water_outh: in std_logic_vector(3 downto 0);water_outl: in std_logic_vector(3 downto 0);z1: out std_logic;z2: out std_logic);end component;signal alarm: std_logic;signal clk0: std_logic;signal clk1: std_logic;signal display_th: std_logic_vector(3 downto 0);signal display_tl: std_logic_vector(3 downto 0);signal dry: std_logic;signal dry_th: std_logic_vector(3 downto 0);signal dry_tl: std_logic_vector(3 downto 0);signal im_th: std_logic_vector(3 downto 0);signal im_tl: std_logic_vector(3 downto 0);signal immersion: std_logic;signal poweroff: std_logic;signal rst: std_logic;signal voice: std_logic;signal wash_th: std_logic_vector(3 downto 0);signal wash_tl: std_logic_vector(3 downto 0);signal water_in: std_logic;signal water_inh: std_logic_vector(3 downto 0);signal water_inl: std_logic_vector(3 downto 0);signal water_out: std_logic;signal water_outh: std_logic_vector(3 downto 0);signal water_outl: std_logic_vector(3 downto 0);signal z1: std_logic;signal z2: std_logic;beginDUT:xiyiji port map (alarm => alarm,clk0 => clk0,clk1 => clk1,display_th => display_th,display_tl => display_tl,dry => dry,dry_th => dry_th,dry_tl => dry_tl,im_th => im_th,im_tl => im_tl,immersion => immersion,poweroff => poweroff,rst => rst,voice => voice,wash_th => wash_th,wash_tl => wash_tl,water_in => water_in,water_inh => water_inh,water_inl => water_inl,water_out => water_out,water_outh => water_outh,water_outl => water_outl,z1 => z1,);STIMULUS0:processbeginalarm <= '0';dry_th <= "1000";dry_tl<= "0000";im_th <= "0000";im_tl <= "0000";wash_th <= "0000";wash_tl <= "0000";water_inh <= "0000";water_inl <= "0000";water_outh <= "0000";water_outl <= "0000";rst <= '1';wait for 10ns;rst <= '0';wait for 1000ns;alarm <= '1';wait;end process;processbeginclk0 <= '1';clk1 <= '1';wait for 1ns;clk0 <= '0';clk1 <= '0';wait for 1ns;end process;WRITE_RESULTS(alarm,clk0,clk1,display_th,display_tl,dry,dry_th,dry_tl,im_th,im_tl,immersion,poweroff,rst,voice,wash_th,wash_tl,water_in,water_inh,water_inl,water_outh,water_outl,z1,z2);end architecture; 波形图:显示模块:此模块实现将由控制器件产生的时间显示的BCD码与地址选择信号同步的转化成可供LCD显示的ASCII码并同时显示字母WELCOME的功能!VHDL文件:LIBRARY IEEE;USE IEEE.std_Logic_1164.ALL;ENTITY OUTPUT ISPORT(R, CP, BUSY :IN Std_Logic;-----使能输入端,脉冲输入端,输入信号忙输入端--------LINE_OUT,STROBE,RST:OUT STD_LOGIC;------行选择输出端,输入数据使能输出端,复位输出端--- TIME_IN :IN STD_LOGIC_VECTOR(7 DOWNTO 0);--------输入时间-----------ADDR_OUT :OUT Std_Logic_Vector( 3DOWNTO 0);--------地址输出端----------DATA_OUT : OUT Std_Logic_Vector(7 DOWNTO 0));-----数据输出端---------END OUTPUT;ARCHITECTURE XS OF OUTPUT ISTYPE State_type IS(S0,S1,S2,S3,S4);SIGNAL S :State_Type;SIGNAL LCDPT:INTEGER RANGE 0 TO 9;BEGINPROCESS(CP,R)BEGINIF R='1' THENS<=S0;LCDPT<=0;RST<='1';ELSIF CP='1' AND CP 'EVENT THENCASE S ISWHEN S0=> S<=S1;LCDPT<=0;RST<='1';WHEN S1=> RST<='0';STROBE<='0';IF BUSY='0' THENLCDPT<=LCDPT+1;IF LCDPT=8 THENS<=S3;ELSES<=S2;END IF;END IF;WHEN S2=> S<=S1;STROBE<='1';WHEN S3=> STROBE<='0';IF BUSY='0' THENIF LCDPT=9 THENLCDPT<=8;LCDPT<=LCDPT+1;END IF;S<=S4;END IF;WHEN S4=> STROBE<='1';S<=S3;WHEN OTHERS=> NULL;END CASE;END IF;END PROCESS;PROCESS (LCDPT)BEGINCASE LCDPT ISWHEN 0 => NULL;WHEN 1 => DATA_OUT<="01010111" ; ADDR_OUT<="0011"; LINE_OUT<='0';WHEN 2 => DATA_OUT<="01000101" ; ADDR_OUT<="0100"; LINE_OUT<='0';WHEN 3 => DATA_OUT<="01001100" ; ADDR_OUT<="0101"; LINE_OUT<='0';WHEN 4 => DATA_OUT<="01000011" ; ADDR_OUT<="0110"; LINE_OUT<='0';WHEN 5 => DATA_OUT<="01001111" ; ADDR_OUT<="0111"; LINE_OUT<='0';WHEN 6 => DATA_OUT<="01001101" ; ADDR_OUT<="1000"; LINE_OUT<='0';WHEN 7 => DATA_OUT<="01000101" ; ADDR_OUT<="1001"; LINE_OUT<='0';WHEN 8 => DATA_OUT<="0011"&TIME_IN(7 DOWNTO4);ADDR_OUT<="0101";LINE_OUT<='1';WHEN 9 => DATA_OUT<="0011"&TIME_IN(3 DOWNTO0);ADDR_OUT<="0110";LINE_OUT<='1';END CASE;END PROCESS;END ARCHITECTURE;-------1,2,3,4,5,6,7输入字母WELCOME,8,9输入时间变化----------TEST文件:-- VHDL Testbench for output-- 2009 9 23 16 13 33-- Created by "EditVHDL"-- "Copyright (c) 2002 Altium Limited"------------------------------------------------------------Library IEEE;Use IEEE.std_logic_1164.all;Use IEEE.std_logic_textio.all;Use STD.textio.all;------------------------------------------------------------------------------------------------------------------------entity Testoutput isend Testoutput;------------------------------------------------------------------------------------------------------------------------architecture stimulus of Testoutput isfile RESULTS: TEXT open WRITE_MODE is"results.txt";procedure WRITE_RESULTS(ADDR_OUT: std_logic_vector(3 downto 0);CP: std_logic;DATA_OUT: std_logic_vector(7 downto 0);LINE_OUT: std_logic;Reset: std_logic;RST: std_logic;STROBE: std_logic) isvariable l_out : line;beginwrite(l_out, now, right, 15);write(l_out, ADDR_OUT, right, 5);write(l_out, BUSY, right, 2);write(l_out, CP, right, 2);write(l_out, DATA_OUT, right, 9);write(l_out, LINE_OUT, right, 2);write(l_out, Reset, right, 2);write(l_out, RST, right, 2);write(l_out, STROBE, right, 2);writeline(RESULTS, l_out);end procedure;component outputport (ADDR_OUT: out std_logic_vector(3 downto 0);BUSY: in std_logic;CP: in std_logic;DATA_OUT: out std_logic_vector(7 downto 0);LINE_OUT: out std_logic;Reset: in std_logic;RST: out std_logic;STROBE: out std_logic);end component;signal ADDR_OUT: std_logic_vector(3 downto 0);signal BUSY: std_logic;signal CP: std_logic;signal DATA_OUT: std_logic_vector(7 downto 0);signal LINE_OUT: std_logic;signal Reset: std_logic;signal RST: std_logic;signal STROBE: std_logic;beginDUT:output port map (ADDR_OUT => ADDR_OUT,BUSY => BUSY,CP => CP,DATA_OUT => DATA_OUT,LINE_OUT => LINE_OUT,Reset => Reset,RST => RST,STROBE => STROBE);STIMULUS0:processbeginRESET<='1';BUSY <= '0';WAIT FOR 2NS;RESET<='0';WAIT FOR 100NS ;RESET <= '1';WAIT FOR 100NS;wait;end process;PROCESSBEGINCP<='0';WAIT FOR 1NS ;CP<='1';WAIT FOR 1NS;END PROCESS;WRITE_RESULTS(ADDR_OUT,BUSY,CP,DATA_OUT,LINE_OUT,Reset,RST,STROBE);end architecture; 波形图:模块运用了器件库里的LCD显示器件:1、模块运用AD6现有资源,由晶振产生的10MHZ的基准时钟和分频器CDIV可将基准时钟分频,即后续模块所需要的不同频率脉冲及LCD(CLK0)控制器时钟.心得体会本次课程设计是一个很好的锻炼机会。
数电课程设计——简易洗衣机控制器设计
实用标准简易洗衣机控制器设计摘要从课程设计要求来看,要求实现电机的正传、反转、暂停,当显示时间前20秒正传、暂停10秒、反转20秒、再暂停10秒,如此一来,周期恰好是60秒,理所当然的分钟计数器、秒计数器是一定要有的。
接下来脉冲是一定发热了,我们可以用555定时器构成的多谐振荡器来产生脉冲。
除了这些,还要求在定时结束后有一个指示灯亮来提示定时时间到,还要求电路有清零和置数的功能,这些用逻辑电平开关即可以实现。
目录第一章设计任务与要求 (4)第二章基本原理 (5)第三章设计方案 (6)第四章单元电路的设计和元件的选择 (8)4.1秒脉冲发生器 (8)4.2分秒计数器 (10)4.3时间译码及控制门 (12)4.4总电路图 (13)第五章仿真结果 (14)5.1秒脉冲发生器 (14)5.2分秒计数器 (14)5.2.1正转 (14)第六章真结果分析 (16)第七章体会小结 (17)第八章元器件清单 (18)第九章参考文献 (19)简易洗衣机控制器设计第一章设计任务与要求设计一个电子定时器,控制洗衣机按如图1洗涤模式进行工作图1 洗涤模式(1)当定时时间达到终点时,一方面使电机停机,同时发出音响信号(可换成指示灯)提醒用户注意。
(2)用两位数码管显示洗涤的预置时间(以分钟为单位),按倒计时方式对洗涤过程作计时显示,直到时间到而停机。
(3)三只LED灯表示“正转”、“反转”和“暂停”3个状态。
第二章基本原理首先,从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进行清零,这时用户置入洗涤时间,并按开始按钮,洗衣机开始工作。
当秒计数器变为零的时候,去分钟计数器上面借数;与此同时,从十秒位转化出来的信号进入移位寄存器后,LED灯表示出电机运转状态;当用户设定的洗涤时间结束后,电路报警并清零;同时电机指示灯熄灭。
第三章设计方案方案一框图如图2所示图2 设计方案一方案二方框图如图3所示图3 设计方案二本定时器实际上包含两级定时的概念,一是总洗涤过程的定时,而是在总洗涤过程中又包含电机的正转、反转和暂停三种定时,并且这三种定时是反复循环直至所设定的总定时时间到位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.设计总体思路,基本原理和框图
1.设计总体思路
课程设计要求实现电机的正传、反转、暂停,用两个LED灯的三种状态来表示,当显示时间前20秒正传、暂停10秒、反转20秒、再暂停10秒,如此一来,周期恰好是60秒,正好一个60秒减计数器可以构成一个循环结构。
循环的总时间可以用一个外围100进制减计数器解决,并用两个数码管显示时间。
这样一个电路的主体电路就构造出来了,然后一步步实现其具体的功能。
用一个74LS74触发器控制整个电路的停止和清零以及连接蜂鸣器计构成报警模块。
信号发生器仿真时就直接用方波信号代替,安装电路的时候就直接用脉冲信号。
设置两个开关以控制电路的启动和随时停止。
现在大体上就这样计划,下面说说基本原理。
2.基本原理
首先,从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进行清零,这时用户置入洗涤时间,并按开始按钮,洗衣机开始工作。
当秒计数器变为零的时候,去分钟计数器上面借数;与此同时,从十秒位转化出来的信号进入移位寄存器后,LED灯表示出电机运转状态;当用户设定的洗涤时间结束后,电路报警并清零;同时电机指示灯熄灭。
3.系统设计框图
二.仿真设计:
(一).单元电路的设计
1.分、秒计数器模块
一百进制分计数器和六十秒计数器的原理是一样的,不同的只是它们的输入脉冲和进制不同而已,我们用四片74LS192来实现分计数和秒计数功能,我们要的只是减计数,所以我们把它的UP端接到高电平上去,DOWN端接到秒脉冲上;十分秒位上的输入端B、C端接到高电平上,即从输入端置入0110(十进制的6),秒十位的LD端和借位端BO联在一起,再把秒位的BO端和十秒位的DOWN 联在一起。
当秒脉冲从秒位的DOWN端输入的时候秒计数的192开始从9减到0;这时,它的借位端BO 会发出一个低电平到秒十位的输入端DOWN,秒十位的计数从6变到5,一直到变为0;当高低位全为零的时候,秒十位的BO发出一个低电平信号,DOWN为零时,置数端LD等于零,秒十位完成并行置数,下一个DOWN脉冲来到时,计数器进入下一个循环减计数工作中。
对于分计数来说,道理也是一样的;只是要求,当秒计数完成了,分可以自动减少,需要把秒十位的借位端BO端接到分计数的DOWN端作为分计数的输入信号来实现秒从分计数上的借位。
当然,这些计数器工作,其中的清零端CR 要处于低电平,置数端不置数时要处于高电平。
这是一个独立工作的最高可以显示101分钟的计时器。
把四个192的QA/QB/QC/QD都接到外部的显示电路上就可以看到时间的显示了。
作为洗衣机控制器的一个模块,它还得有一定的接口来和其他的模块连接在一起协调工作,分计数的清零端LD是接在一起的;秒的清零端LD又是接在一起的,所以当要从外部把它们强制清零时,可以用一个三极管(NPN)或者两个或门就可以实现该功能。
还有我们可以利用分计数的UP 端来进行外部置数,当把它们各接到一个低触发(平时保持高电平,外部给一个力就输入一个低电平)的脉冲上就可以实现从0-9的数字输入。
分秒电路图如下:
2.指示灯显示模块
用2片74LS151数据选择器,将秒针的十位输出信号的低三位依次连接到74LS151的A、B、C输入端,74LS151的输出端分别连接一个LED灯。
其模块如下:
(二).总电路图设计
现在各单元电路完成了,最后要把它们有效的结合起来联合工作,实现目的功能。
我们要求在给分钟置数的同时秒要显示为零;外部还要有强制停止并清零;还有停止报警功能。
对于置数来说,我们可以在分钟计数器的UP端到高电平之间各用一个开关接上,就当给它一个低电平时,计数器就往上增加1。
但时,192要求在UP端工作的同时,其DOWN端要为高电平,且秒计数器要为零,我们可以让秒计数器清零,同时把脉冲停止了。
在高电平上接上一个开关,让它接到一个JK触发器上,同时把JK触发器的JK端接1,让它实现触发功能。
让它的Q端输出到秒计数器的清零端,这样刚开机或者再按一下开机键就可以对秒计数器清零。
把JK 触发器的Q反端和从分计数器借位端Bo反相出来的信号接到一个与非门上,从与非门出来的信号接到分计数器的DOWN端来保证置数的时候DOWN是高电平。
但是如果仅是这样的话,当置数完成再一次按开机键(如图中的J3所示)时,没有脉冲信号输入到秒计数器的DOWN端,192并不可以工作。
我们可以把脉冲和JK触发器Q反端接到一个与门上,然后把它上输出端接到秒计数器的DOWN 端以控制计数。
先歇息一下。
最后要解决一个大问题,当所置的洗衣时间完成后,要发出报警并自动清零。
至于报警电路我们知道当计数器全为零的时候,从秒位会发出一个借位信号,一直接到十分位上去,十分位会发出一个借位信号,我们可以用这个信号来作为报警并清零的信号,平时192的借位端保持的是高电平,当有借位信号时,其变成0,我们在分十位借位端接一个非门,再它和分位的CLR端一起接到一个与门,也需要把它接到一个D触发器(74LS74)上作为其时钟信号,在触发器和分十位之间用一个开关控制,构成停止清零按键。
输出端加上适当的门电路接到蜂鸣器以及秒位74LS的清零端。
现在控制端也连起来了,这样,一个完整的洗衣机控制电路就完成了。
最后用一个按键与门电路实现4个计数器的置数功能。
(三).仿真结果
1.正转
三.安装调试步骤与故障分析
做好了仿真设计,原以为快要大功告成,到接线的时候才发现真正的考验才刚刚开始。
刚开始接试验箱的时候,感觉很新鲜,也没多在意接线有多困难。
但实际操作的时候种种困难接踵而来,线路老化,接触不良,芯片损坏…各种问题。
第一遍接线完成,试电以短路烧线告终,第二遍,数码管毫无反应。
第三次,置数,借位出错…最后我得出了结论:在这老试验箱我这辈子都别想接触电路来。
之后便转战到实验室,我的思路很明确:首先测试线的好坏,接着逐个模块接线,逐个模块调试,排查问题。
最后连接成整个电路图。
经过一天零一个上午的努力,完整的电路图终于问世了。
接线图如下:
我们在接线中也遇到了很多问题,比如说LED灯不亮的问题,经测试电压发现是十秒位QC输出电压偏低,只有1.7伏不足以驱动LED灯,当电路显示“正转”时,“11”只显示成“10”,通过一再思考,我们最终决定用两块74LS194来实现对两个LED灯的控制。
就这样我们就顺利解决了这个问题。
四.总结与调试体会
通过这次课程设计,加强了我动手、思考和解决问题的能力。
更加熟练的掌握了MULTISIM软件的使用,对部分元器件的使用有了更加深刻的了解。
也锻炼了我的不屈不挠团队合作能力,磨砺了我的不屈不挠的精神。
总之,这次课程设计让我受益匪浅。
在设计过程中,经常会遇到这样那样的情况,就是心里老想着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。
我们做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。
平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件印象深刻。
认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
所以这个期末测试之后的课程设计对我们的作用是非常大的。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅。
在此,感谢于老师的细心指导,也同样谢谢其他各组同学的无私帮助!
五.附录(元器件清单)
六.参考文献
1.《电子线路设计、实验、测试》(第二版)
华中理工大学出版社谢自美主编
2.《新型集成电路的应用》---------电子技术基础课程设计华中理工大学出版社梁宗善主编
3.《电子技术基础实验》
高等教育出版社-------------陈大钦主编。