欢迎来到天天文库
浏览记录
ID:38701704
大小:831.50 KB
页数:13页
时间:2019-06-17
《沈阳理工大学EDA洗衣机时控电路课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、沈阳理工大学课程设计专用纸目录1设计目的12设计要求和任务13总体设计思路及原理描述13.1设计思想14分层次方案设计及代码描述24.1各模块代码24.2功能模块整体结构设计75逻辑仿真与时序仿真的实现86设计结论127参考文献12沈阳理工大学课程设计专用纸1设计目的科技的进步多少体现在了日常生活必需品的进步,本次课设目的是设计一个与现实生活中很多家庭使用的洗衣机具有相同功能的时序控制的洗衣机。熟练掌握QuartusⅡ软件,编写程序,绘制原理图,可进行编译及功能仿真,实现软件上的洗衣机功能。2设计要求和任务任务:设计洗衣机时控电路要求:1、
2、洗衣机工作时间可在1~15分钟任意设定(正分钟数);2、规定电动机运行规律为正转20s.停10s.反转20s.停10s.再正转20s,以后反复运行;3、要求能显示洗衣机剩余工作时间,每当电机运行1分钟,显示计数器自动减1,直到显示器为“0”时,电机停止运转;4、电机正转和反转要有指示灯指示。3总体设计思路及原理描述3.1设计思想基本原理:洗衣机时控电路,主要思想就是时间控制洗衣机的工作状态,设计该电路得有如下功能,时间预置,时间显示,状态控制,减法计数等,所以电路大概分一下5部分:(1)时间设置(2)数码管显示电路(3)时序控制电路(4)预
3、置时间和编码电路(5)译码器电路顶层文件用原理图来实现,通过创建各个子模块的原件,在顶层文件中按照底层文件实现的功能进行连线就可以得到完整的顶层原理图。层次图如图3.1所示:9沈阳理工大学课程设计专用纸暂停10s反转20s暂停10s正转20s定时启动停止图3.14分层次方案设计及代码描述4.1各模块代码(1)预设时间和编码电路:本模块将输入的四位时间信号编码成八位二进制数输出到减法计数器电路。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entit
4、ysettimeis——定义实体名port(load:instd_logic;time_input:instd_logic_vector(3downto0);——输入时间time_set:outstd_logic_vector(7downto0));——设置时间endsettime;——VHDL实体描述部分architecturesettimeofsettimeissignalp1:std_logic_vector(7downto0);——结构体描述部分beginprocess(load)beginif(load'eventandload=
5、'1')then——load有效casetime_inputiswhen"0000"=>p1<="00000000";when"0001"=>p1<="00000001";when"0010"=>p1<="00000010";when"0011"=>p1<="00000011";when"0100"=>p1<="00000100";when"0101"=>p1<="00000101";when"0110"=>p1<="00000110";when"0111"=>p1<="00000111";when"1000"=>p1<="00001000
6、";when"1001"=>p1<="00001001";whenothers=>p1<="00000000";——设置时间endcase;endif;9沈阳理工大学课程设计专用纸endprocess;time_set<=p1;——输出设置的时间P1endsettime;(2)减法计数器模块:由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围,当洗衣机开始工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工作。当出现系统运行结束信号time_over时,蜂鸣器报警洗衣机工作结束。libraryieee;useieee.s
7、td_logic_1164.all;useieee.std_logic_unsigned.all;entitycounterisport(clk,start:instd_logic;time_set:instd_logic_vector(7downto0);——设置时间time_remain:bufferstd_logic_vector(7downto0);——剩余时间time_over:bufferstd_logic);——时间结束endcounter;architecturecounterofcounterisbeginprocess(
8、clk)variabletime_second:integerrange0to59:=59;——秒数范围0到59beginif(clk'eventandclk='1')then—
此文档下载收益归作者所有