数电课程设计——简易洗衣机控制器设计
数电课程设计 洗衣机定时控制器
数字电子技术课程设计报告题目:洗衣机定时控制器班级:洗衣机定时控制器一、设计任务及要求:1.设计脉冲信号源(秒脉冲)2.至少能显示 1:00—12:593.具备校时功能4.附加特殊功能设计(报时功能)二、方案设计与论证:所谓数字钟,是指利用电子电路构成的计时器。
相对机械钟而言,数字钟能达到准确计时,并显示小时、分、秒,同时能对该钟进行调整。
在此基础上,还能够实现整点报时的功能。
其中有振荡器,分频器,校时电路,报时电路,计数器,译码器和显示器七部分组成。
振荡器和分频器组成标准秒信号发生器,不同进制的计数器产生计数,译码器和显示器进行显示,通过校时电路实现对时,分的校准方案一:使用 COMS 数字芯片,使用专用时钟芯片,使用十进制计数器,以及使用万用板焊接电路,分模块搭建电路,使用专用电源供电。
优点:计时准确,反应灵敏,思路简单,性能稳定,成功率高,便于调试。
缺点:驱动能力弱,走线复杂,对数电知识的利用并不充分。
方案二:使用 TTL 数字芯片,使用 74LS93 多进制计数器,用 555 定时器自建时钟模块,使用 USB 供电,使用 PCB 制板。
优点:电路驱动能力强,不必考虑输入脚悬空的问题,充分利用了模电、数电的知识,外观漂亮,供电方便。
缺点:整体布局比较麻烦,排查错误比较麻烦,时钟性能一般。
在比较两个方案的优缺点后,选择了第二个方案,进行由上而下层次化的设计,先定义和规定各个模块的结构,再对模块内部进行详细设计。
通过仿真,原理图设计,PCB 制作,分步骤调试,来解决方案二的不足。
使做出来的效果又好,又能充分利用学过的数电知识。
可以体现数电课设的真正内涵。
我们设计的电子钟,严格按照设计要求,具有整点报时,调时,调分等功能;特别是,我们的调时调分开关,都加上了消抖电路,使用了模拟电路消抖,省去了一些数字芯片,这些都是我们组,区别于其他组的地方。
设计原理及框图定时控制器实际上是一个对标准频率进行计数的计数电路,由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的 1kHZ 时间信号必须做到准确稳定。
《数字电子技术》课程设计-简易洗衣机控制器设计
《数字电子技术》课程设计-简易洗衣机控制器设计武汉理工大学《数字电子技术课程设计》附件1:0120809320614 学号:题目简易洗衣机控制器设计学院信息工程学院专业通信工程班级通信0806姓名指导教师2010年月日武汉理工大学《数字电子技术课程设计》课程设计任务书学生姓名: 专业班级: 通信0806指导教师: 工作单位: 信息工程学院题目: 简易洗衣机控制器设计初始条件:要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)时间安排:第1周(7、8节):理论讲解,鉴主报告厅第2,17周:理论设计及实验室安装调试;地点:鉴主15通信工程实验室(1),鉴主13通信工程专业实验室; 第18周:撰写设计报告及答辩;地点:鉴主17楼9号研究室。
指导教师签名: 2010年 3月 5日系主任(或责任教师)签名: 年月日武汉理工大学《数字电子技术课程设计》简易洗衣机控制器设计摘要本设计是基于数字电路定时器的洗衣机简易控制电路。
通过预置洗衣机的洗涤时间来自动的正反转和暂停,并且用不同的指示灯来表示洗衣机的正逆暂停三状态。
当到达定时时间后,会自动报警,发出蜂鸣声。
同时,用两位数码管来显示预置时间和洗涤剩余时间。
具有良好的用户界面。
电路主要分为显示电路、秒脉冲发生电路、计时电路、报警状态电路和洗衣机正反转控制电路。
显示电路使用的是两个单位的共阴极八段数码管,使用两片74ls48作为数码管译码芯片。
秒脉冲发生电路采用了使用成熟广泛的555定时器芯片,通过电脑USB插口供电,产生秒信号,作为各芯片的时钟信号。
计时电路使用的是四片十进制可逆计数器74ls192芯片,分别设计为十进制和六进制电路,用于完成时间的定时、计时功能。
报警电路和状态显示电路使用的是简单的非门和与非门74ls04、74ls00组成的逻辑组合电路,分别控制蜂鸣器和发光二极管,来实现报警和状态显示。
电机控制电路采用了3-8译码器74ls138和与非门电路的组合,实现电机正反暂停状态。
简易洗衣机控制课程设计
洗衣机控制器设计一.设计要求启动—→正转20s —→暂行10s—→反转20s——(定时未到)—→暂行10 s———(定时到)——→停止如果定时时间到,则停机并发出音响信号。
(1).采用中小规模集成芯片设计制作一个电子定时器,按照一定的洗涤程序控制电机作正向和反向转动。
(2).电机用2个继电器控制,洗涤定时时间在0—20min内由用户任意设定。
(3).用两位数码管显示洗涤的预置时间,按倒计时方式对洗涤过程作计时显示,直至时间到而停机。
(4). 如果定时时间到,则停机并发出音响信号。
(5). 洗涤过程在送入预置时间后即开始运转。
二.方案选择及电路的工作原理1.方案选择从课程设计要求来看,要求实现电机的正传、反转、暂停,实际上没有电机给我们接上,这回要用四个LED灯的状态来表示,当显示时间前20秒正传、暂停10秒、反转20秒、再暂停10秒,如此一来,周期恰好是60秒,理所当然的分钟计数器、秒计数器是一定要有的。
接下来脉冲是一定的了,但是有分钟计数器和秒钟计数器还要考虑是不是要60分频器,就我们所学过的来说实现循环有移位寄存器;还有个问题,当洗涤时间到了,报警还要一个报警电路,根据人性化、自动化、低成本的设计原则,报警的蜂鸣器不可以长时间的叫,要有个合理的时间,我们可以用一个单稳态电路来实现。
看起来还不错啊,如果这样想那就嫌早了点,还有一个问题要解决:如何提取时间并使循环电路工作的信号?方案有两种:一是直接从数值上进行提取信号来控制一个可以实现循环的74LS194来实现;另一种是制作一个二十进制到十进制的循环转化来把这一分钟走完,但是从电路的复杂程度和经济性来说,显然后者太过于复杂,也不利于接线和排故障,虽然难度会大一些、出成果的时间会比别人晚,但是要设计一个真正可以让用户用放心使用的产品,还得这样做。
尤其是最后的循环电路用两个194一定可以很容易实现。
2.工作原理首先,从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进行清零,这时用户置入洗涤时间,并按开始按钮,洗衣机开始工作。
洗衣机的简易控制电路设计
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上(共阴极接法)。
数字逻辑系统课程设计--洗衣机控制器
数字逻辑系统课程设计题目:洗衣机控制器摘要此次的课程设计的题目是简易洗衣机控制器设计,这次的EDA课程设计主要就是掌握EDA技术在一些方面的运用。
掌握EDA技术及CPLD/FPGA的开发流程、自顶向下的设计思想和系统设计的分析方法,以及洗衣机控制器的工作原理。
本次的设计已基本完成要求,待机5s →正转10s →待机5s →反转10s →,如此循环。
并用3个LED灯和7段数码管分别表示其工作状态和显示相应工作状态下的时间,能够自行设定洗衣机的循环次数,利用循环语句来实现。
到达所设定的循环次数后报警提示,报警就是将敏感变量赋给报警输出量。
虽然对于设计的东西不是很了解,不过,大致的思路已经了解。
此篇课程设计报告大致包括对于此次设计的总体的原理和思路,以及设计的每个模块分析,电路图,源程序的描述,仿真结果的展示。
能够将所学知识运用到此次的课程设计当中,对于之前的一些理论知识也是一种深刻认识。
绪论随着电子技术获得了飞快的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
EDA,这个以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的可开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术在现代生活中也越发的重要。
面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、快捷的EDA工具,实用统一的集成设计环境,改变传统设计思路,即优先考虑具体物理实现方式,而将精力集中到设计构思、方案比较和寻找最优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。
课程设计---洗衣机控制器的设计
电子技术课程设计报告书课题名称洗衣机控制器的设计姓名学号院、系、部专业电子信息工程指导教师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 为机械开关,只针对单个按键进行合键判别,无对应行列扫描。
数字电子技术课程设计--简易洗衣机控制器设计
课程设计任务书题目: 简易洗衣机控制器设计初始条件:利用定时器、数码管、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)摘要现代生活人民生活水平越来越高,家家户户几乎都有一台洗衣机。
洗衣机由于洗涤方便受到广大用户的喜爱。
课程设计---洗衣机控制器的设计
电子技术课程设计报告书课题名称洗衣机控制器的设计姓名学号院、系、部专业电子信息工程指导教师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 为机械开关,只针对单个按键进行合键判别,无对应行列扫描。
数电课程设计报告--洗衣机自动控制电路
洗衣机自动控制电路一、设计要求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灯从左到右依次为正传、暂停、翻转。
洗衣机控制器课程设计
洗衣机控制器课程设计
洗衣机控制器课程设计是系统工程专业学生需要完成的一项重要课程设计。
它旨在教会学生如何使用电子技术来设计和实现一台洗衣机控制器。
洗衣机控制器课程设计不仅仅涉及到电子技术,还包括洗衣机机械部件、洗衣机常规功能等方面的知识。
本课程设计的目的是让学生在完成洗衣机控制器的设计之前,先理解洗衣机的原理和其他方面的知识。
首先,学生需要了解洗衣机的基本结构及其功能,并学习洗衣机的基本控制原理。
同时,学生还需要学习洗衣机控制器的电路设计,包括电路图的绘制、电气元件的选择及其尺寸等。
此外,学生还需要学习洗衣机控制器的编程技术,包括程序控制算法的选择、程序控制算法的实现等。
接下来,学生需要了解洗衣机控制器的实际应用,包括洗衣机控制器容易出现的故障和解决方法以及洗衣机控制器的调试方法等。
此外,学生还需要学习和掌握洗衣机控制器的检测技术,包括电路的检测、程序的检测、洗衣机的电性能测试等。
最后,学生需要根据所学的知识,设计一台洗衣机控制器,将所有知识点融会贯通,最终完成一台具有一定实用价值的洗衣机控制器。
洗衣机控制器课程设计是一门涉及电气工程、机械工程、计算机科学等多个领域的课程,要求学生掌握洗衣机控制器的基本原理及其应用,以便完成一台能够实用的洗衣机控制器的设计。
本课程的学习不仅能够提高学生的综合素质,而且可以让学生具备独立设计洗衣机控制器的能力,为他们今后从事相关工作打下坚实的基础。
数字逻辑电路课程设计-全自动洗衣机控制器的设计课案
数字逻辑电路课程设计设计题目全自动洗衣机控制器的设计姓名学号专业班级完成日期目录一、实验目的 (3)二、设计题目与思路 (3)三、总体方案的设计与选择 (4)四、使用元件 (5)五、分析与心得 (5)六、附件一:实验代码 (5)一、实验目的1.进一步掌握数字电路课程所学的理论知识。
2.了解数字电路设计的基本思想和方法,学会科学分析和解决问题。
3.熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计。
4. 培养认真严谨的工作作风和实事求是的工作态度。
二、设计题目与思路本次数字电路课程设计我选择的题目是“全自动洗衣机控制器”。
这个系统的主要功能是:1.设计一个全自动洗衣机控制器电路,实现对洗衣机的全自动控制。
根据全自动洗衣机的控制原理设计一个控制电路,使之能够控制全自动洗衣机完成整个工作过程。
洗衣机工作过程如下:当按下复位按钮时,洗衣机上电,控制电路复位到初始状态(默认水位为“中”);使用者可根据衣服的多少,按下水位控制按钮,改变水位设置,以控制上水时加水的多少;当按下启动/暂停按钮时,洗衣机开始洗衣的第一个操作:进水阀门打开,开始上水,并根据水位设置(高、中、低、少)历时不同的时间timeadd(8s、7s、6s、5s);然后进水阀门关闭,电机开始运转,开始洗衣过程,并历时9s;然后电机停止运转,排水阀门打开,开始排水,并根据水位设置(高、中、低、少)历时不同的时间timedrain(7s、6s、5s、4s);然后排水阀门关闭,进水阀门打开,开始第二次上水,并历时timeadd……当甩干结束后,整个洗衣过程完成,扬声器发出持续15秒的急促的“嘀嘀”音,提示用户洗衣结束。
洗衣机工作过程简记如下:空闲(idle)→第一次加水(water1)7s→洗衣(wash)9s→第一次排水(drain1)6s→第二次加水(water2)7s→漂洗(rinse)9s→第二次排水(drain2)6s→甩干(dry)5s→蜂鸣15s2、控制器只要送出对应的控制信号就可以了。
洗衣机控制器课程设计
洗衣机控制器 课程设计一、课程目标知识目标:1. 让学生掌握洗衣机控制器的基本原理,理解其电路构成及功能。
2. 使学生了解洗衣机控制器的编程方法,学会编写简单的控制程序。
3. 帮助学生了解洗衣机控制器与其他家电的互联互通,拓展智能家电的知识领域。
技能目标:1. 培养学生运用控制器进行家电控制的能力,提高实际操作技能。
2. 培养学生独立思考和解决问题的能力,通过编写程序实现洗衣机的智能化控制。
3. 提高学生的团队协作能力,通过小组合作完成控制器的设计与调试。
情感态度价值观目标:1. 激发学生对家电控制技术的兴趣,培养其探索精神和创新意识。
2. 培养学生关注智能家居领域的发展,增强社会责任感和时代使命感。
3. 引导学生树立正确的消费观念,提倡环保、节能的生活方式。
课程性质:本课程为实用技术类课程,以实践操作为主,理论讲解为辅。
学生特点:本年级学生具有较强的求知欲,动手能力较强,但对洗衣机控制器相关知识了解较少。
教学要求:结合学生特点,注重理论与实践相结合,强化实践操作环节,提高学生的动手能力和创新能力。
通过课程学习,使学生能够掌握洗衣机控制器的基本原理和操作方法,培养其编程思维和团队协作能力。
同时,关注学生的情感态度价值观的培养,使其在学习过程中形成正确的价值观和消费观念。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 洗衣机控制器原理:讲解洗衣机控制器的电路构成、工作原理及各部分功能,结合课本第三章第一节内容。
2. 编程方法:介绍洗衣机控制器的编程语言和编程方法,以课本第四章为基础,通过案例教学使学生掌握基本编程技巧。
3. 控制器操作与调试:讲解控制器的基本操作方法,组织学生进行实践操作,学会调试控制器程序,参考课本第五章内容。
4. 智能家电互联互通:分析洗衣机控制器与其他家电的互联互通原理,结合课本第六章,拓展学生智能家电的知识领域。
5. 实践项目:分组进行洗衣机控制器的编程与调试,完成一个简单的智能家居控制系统设计,涵盖课本第三至六章的主要内容。
数字电路课程设计--洗衣机电路设计
数电课程设计论文论文题目:洗衣机控制电路设计课程名称数字电子技术基础课程设计学院专业班级学号姓名指导教师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。
湖南工程学院 数电课程设计——简易洗衣机控制系统讲解
课 程 设计课程名称 数字电子技术课题名称 简易洗衣机控制器专 业 自动化班 级 1001学 号 25姓 名 肖锦朋 指导教师 郭照南2012年12月 21 日湖南工程学院课程设计任务书课程名称:数字电子技术题目: 简易洗衣机控制器——A课题专业班级: 自动化1001学号:25学生姓名:肖锦朋指导老师:郭照南审批:任务书下达日期2012年12月10日星期一设计完成日期2010年12月21日星期五目录第1章设计总体思路和框图 (1)1.1设计总体思路及基本原理 (1)1.2框图 (1)第2章单元电路设计(各单元电路图) (2)2.1倒计时显示及置数模块 (2)2.2置数模块 (3)2.3步数显示模块 (3)2.4LED显示动作模块 (4)2.5手动控制循环停止模块 (5)第3章总电路设计(总电路图) (6)第4章安装、调试步骤 (7)第5章故障分析与电路改进 (8)5.1常见的故障现象 (8)5.2产生故障的主要原因及解决方法 (8)(一)倒计时显示管显示不正确 (8)(二)步骤显示错误 (8)(三)不能正确置数 (9)(四)手动模式时不能自动停下来 (9)第6章总结与设计调试体会 (9)附录 (10)元器件清单: (10)参考文献: (11)第1章设计总体思路和框图1.1设计总体思路及基本原理要实现简易洗衣机控制,首先要实现对每一步的控制。
当第1步的时候用置数控制模块控制倒计时计数器置数为5秒,步骤计数器置数为1,同时用步骤计数器控制工序显示模块使第一个LED亮;当倒计时模块全部减为0的时候,借位输出一个低电平,置数模块将其置数为12秒,并且给步骤计数器一个脉冲使其加1,显示为2,同时用步骤计数器控制工序显示模块使第二个LED点亮。
在这时有一个12秒的循环,怎样实现使步骤显示器显示循环12秒为2呢?再用一个160的计数器,当前面那个计数器为3的时候,把后面那个计数器置数为2,这样就使显示2的步骤代表了两次12秒的循环了。
数字电路课程设计洗衣机
总体方案分析及选择:洗衣机电路包含有总的控制模块,洗涤控制模块,洗涤记时模块,电动机控制模块以及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)控制器时钟.心得体会本次课程设计是一个很好的锻炼机会。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易洗衣机控制器设计
摘要
从课程设计要求来看,要求实现电机的正传、反转、暂停,当显示时间前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 设计方案二
本定时器实际上包含两级定时的概念,一是总洗涤过程的定时,而是在总洗涤过程中又包含电机的正转、反转和暂停三种定时,并且这三种定时是反复循环直至所设定的总定时时间到位置。
当总定时时间在0~20min以内设定一个书之后T为高电平1,然后用倒计时的方法每分钟减1直至T变为0.在此期间,若Z1=Z2=1,实现正转;若Z1=Z2=0,实现暂停;若Z1=1,Z2=0,实现反转。
实现定时的方法很多,比如采用单稳电路实现定时,又如将定时初值预置到计数器中,使计数器运行在减计数状态,当减到全零时,则定时时间到。
如图所示的电路原理框图就是采用这种方法实现的。
由秒脉冲发生器产生的时钟信号经60分频后,得到分脉冲信号。
洗涤定时的时间的初值先通过拨盘或数码开关设置到洗涤时间计数器中,每当分脉冲到来计数器减1,直至减到定时时间到为止。
运行中间,剩余时间经译码后在数码管上进行显示。
经比较后,采用第二种方案。
第四章单元电路的设计和元件的选择
4.1秒脉冲发生器
方案一:由555定时器构成的多谐振荡器
由555定时器构成的多谐振荡器的电路图如图4所示,由于555定时器内部的比较器灵敏度高,输出驱动电流大,功能灵活,而且采用差分电路形式,它的振荡频率受电源电压和温度的影响很小。
所以由555定时器构成的多谐振荡器的振荡频率稳定,不易受干扰。
因此采用此方案。
图4 由555定时器构成的多谐振荡器
图5 555定时器的引脚图
方案二:由门电路构成的多谐振荡器
图6 由门电路构成的多谐振荡器
由门电路构成的多谐振荡器的电路,在此电路中,当电源电压波动时,会使振荡频率不稳定,在Vth与VDD/2不相等时,影响尤为严重,而Vth容易受温度、电源电压及干扰的影响,因此频率稳定性较差,不宜采用此方案。
4.2分秒计数器
图7 分秒计数器其中,74LS192的引脚图如图8所示
图8 74LS192的引脚图
74LS192的功能表如表1所示
表1 74LS192功能表
一百进制分计数器和六十秒计数器的原理是一样的,不同的只是它们的输入脉冲和进制不同而已,我们用四片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的数字输入。
4.3时间译码及控制门
图9 时间译码及控制门
在此部分电路中,三个指示灯,从上至下依次代表“正转”、“暂停”、“反转”。
从60秒到40秒内第一个灯亮,从40到30秒内是第二个灯亮。
在30到10秒内是第三个灯亮,然后剩下的十秒钟是第二个灯亮,如此完成第一个循环,刚好一分钟,之后的时间依次循环。
当时间减到0时,最上面的灯亮,提醒定时时间到。
4.4总电路图
图10 总电路图
第五章仿真结果5.1秒脉冲发生器
图11 秒脉冲发生器仿真5.2分秒计数器
图12 分秒计数器仿真
5.2.1正转
图13 洗衣机正转时仿真
第六章真结果分析
在仿真的过程中,出现的结果基本符合要求,计数器的工作也很理想,“正转”、“反转”、“暂停”的指示灯动作也很好,定时结束时,自动清零,同时指示灯亮,提醒时间到。
,唯一不足的是没有将电路置数的功能设计好,只能按照预设的时间100分钟开始工作。
除此之外,由于555定时器的电阻值设定的不是很理想,以至于出现的脉冲波形不是标准的占空比为百分之五十的方波。
不过,总的来说,仿真结果还是比较令人满意的,比较成功。
第七章体会小结
本次课程设计,我花了很多时间,主要是在控制电路上,当时实在是想不到该怎样用三个灯分别表示三种状态,去图书馆查资料时也没找到相符合的资料,后来在网上找的论文也有很多问题,要求也和本次课程设计的要求出入很大。
可以说,这次课设的电路基本上是自己设计出来的。
虽然花了不少的时间,但是收获真的不小。
它使我对课本以及以前学过的知识有了一个更好的总结与理解,也让我知道了,光分开是不够的,从外面学到的知识要形成一个整体,这也很好的训练了外面对开发一个项目应该有怎样的思路和准备更清晰。
计过程中,对设计方案进行了很多次的修改,虽然也有查阅资料,但更多的是自己的思考。
记得在设计三种状态的显示灯的控制电路时,整整花了两天的时间,试了好几个方案,在网上查的资料都很繁琐,且看不懂原理,到最后还是决定自己慢慢想,最终设计出来,虽然结果不是很完美,但还是比较满意的。
本次课程设计,让我对实验原理也有了更多的了解,对数电中常用的芯片功能及设计方法如利用卡诺图等有了更深刻的了解,对设计实验也有了更深切的体会,以前在做数电实验时也有部分是设计性的实验,不过基本上到最后都是老师告诉我们设计电路,自己虽然也有思考,但基本上没有想出来过,也没起到让自己真正来设计某个电路的目的,而这次有了足够的时间,基本上都是自己一点一点设计的,从某方面来说,还是很有成就感的。
之外,它让我对课本知识进行了融会贯通,毕竟,要设计一个完整的电路,单靠某一章节或某一部分的知识是不够的,要在整本书中找自己需要的东西,简单的说,就要做到学以致用。
在考虑问题时,不要指望一次就能把问题考虑成熟,要做好不断否定并不断修改的准备。
有做课设之前,我对课本知识是很模糊的学习也是为了应付一下期末考试,现在让我对课本知识有了更透彻的了解,也算是做到了理论联系实际吧。
临渊羡鱼,不如退而结网,这也是我这次课设最大的体会,与其苦苦思索别人那样子设计是什么原理,为何要那样做,不如自己用已有的知识,重新考虑并设计,按自己的思路,达到自己所需要的效果,我觉得,这才是课程设计真正的目的。
第八章元器件清单
表2 元器件清单
第九章参考文献
[1]《电子技术课程设计》萍、易映萍编
[2]《电子技术课程设计指导》介华主编高等教育出版社
[3]《电子线路设计、实验、测试》自美主编华中理工出版社
[4]《数字电子技术基础》康华光主编高等教育出版社
[5]《电子技术基础课程设计》孙梅生等编著高等教育出版社。