免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字电路综合实验预习报告洗衣机控制器信息与通信工程学院xxxxx班xx号xxx洗衣机控制器一、实验目的1. 熟练掌握 VHDL 语言和QuartusII 软件的使用;2. 理解状态机的工作原理和设计方法;3. 掌握利用 EDA 工具进行自顶向下的电子系统设计方法;二、设计任务要求:制作一个简易全自动洗衣机控制器:1. 洗衣机的工作步骤为洗衣、漂洗和脱水三个过程,工作时间分别为:洗衣 20 秒,漂洗25 秒,脱水15 秒;2. 用一个按键实现洗衣程序的手动选择:A、单洗涤;B、单漂洗;C、单脱水;D、漂洗和脱水;E、洗涤、漂洗和脱水全过程;3. 用显示器件显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全部过程结束后,应提示使用者;4. 用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前保留三、设计思路1)总体思路:洗衣机分为主要分为四个部分,预置部分,输入部分,控制部分,输出部分。输入部分:负责输入洗衣机的模式选择信号,开始信号,暂停信号,时钟信号。预置部分:通过一个按键的改变来控制洗衣模式的选择,在开始信号为一的上升沿,读取预置的模式,并初始化总时间,以及控制部分需要用到的信号,并把初始状态送输出部分显示。输出部分:负责输出洗衣机的当前洗衣模式,剩余时间,以及洗衣结束时的报警信号。控制部分:根据预置部分的状态开始工作,对输入部分的控制信号进行相应,控制洗衣机的运行中模式的转变,并将改变的输出信号传递给输出部分显示。方框图CLKCLOCKPauseOsc分频器时间计数器译码时间显示状态输入PAUSE报警控制器Start状态显示状态转移图:State=111State=110State=001State=100State=000State=010洗衣过程中的状态转移,转移的时候改变temp的值,作为下次转移的标志时间:State=111时temp=40;State=110时temp=25;State=100时temp=0;State=010时temp=0;State=001时temp=0;流程图NoNoNoNoYesYesYesYes输入状态改变状态modeMode不为000初始化时间是否开始计时时间显示时间为零洗衣结束报警是否暂停暂停四、电路设计1、分频模块:PROCESS(CLOCK)-由输入时钟进行100分频产生洗衣时钟BEGINIF (CLOCKEVENT AND CLOCK=1) THENCOUNT=COUNT + 1;IF (COUNT=499999) THENCOUNT=0;CLK MODE MODE MODE MODE MODE MODE =000;END CASE;END IF;STATE = MODE;ALARM TEMP = 0 ;TIME TEMP = 0 ;TIME TEMP = 0 ;TIME TEMP = 25 ;TIME TEMP = 40 ; TIME TEMP = 0 ;TIME TEMP= 0 ; TIME= 0;END CASE ;功能说明:根据state的控制状态值初始化时间time和状态转换时间标志temp。4、数码管控制模块:PROCESS (CLOCK,TIME)BEGINIF (CLOCK=1) THENT=TIME/10;CAT=111101;ELSET=TIME MOD 10;CAT DISTIME DISTIME DISTIME DISTIME DISTIME DISTIME DISTIME DISTIME DISTIME DISTIME = 1111110;END CASE;END PROCESS;功能说明:将T的值译码控制7段数码管显示。仿真结果6、控制电路:IF ( PAUSE = 0) THEN-当pause信号为0 start信号为1时IF ( CLKEVENT AND CLK = 1 AND TIME/=0) THENTIME = TIME - 1 ;IF ( TIME=1 ) THENSTATE =000;-当洗衣结束时把state置为”000“ALARM STATE = 110;TEMP STATE = 100;TEMP TEMP = 0 ;STATE = 000;END CASE;END IF;END IF;END IF;END IF;DISPMODE = STATE;功能说明:当开始信号为1,没有暂停信号的时候,洗衣机开始运行,根据所选模式和初始换的时间,控制倒计时和状态的显示,同时将剩余的时间传递给时间显示部分,将改变的state的值传递给dispmode显示。当倒计时结束后state置零同时报警器发出声响。仿真结果:7、整体电路的仿真结果:五、故障问题分析1、再设计洗衣机的状态显示时,一开始设计通过七段数码管显示,但通过编程的实现,发现将状态变量译码在数码管上显示,并不是很容易,在编写程序的过程中遇到一些困难,所以采用三个发光二极管是否发光来显示工作状态,这样可以将状态的传递变量,直接传递给控制发光二极管的发光控制信号,就可以实现功能,这样程序就变得很简单。2、状态选择按键的控制并不是很好用,有时会出现状态的跳变,这是因为实验板的硬件防抖并不是能完全避免这种现象。若要避免还需要软件防抖。3、 编译时间 在编译时花费的时间很多,后来仔细看了自己的程序后发现是冗余的判断太多了,于是把程序简化了之后时间缩短到30s左右,节约了调试的时间。六、实验总结:在本次的数字电路综合实验中,我选择的题目是数字逻辑设计实现洗衣机控制器,总的来说这是一个比较综合全面的数字电路实验,在这次试验中,通过自己的努力和与同学的探讨,基本实现了本次试验的基本功能,实验基本成功。 在本次的试验中我主要采用了自顶向下的设计思路,同时也兼容了自下向上的设计思路。通过实验理解了完成一个小型综合性实验的基本步骤:根据实验要求设计基本思路,模块化程序,编写各个模块,仿真实验,下载到电路板。 在刚开始的时候因为开始认为实验的逻辑并不困难,所以在逻辑流程和状态转移方面并没有做的很好,就开始编写程序,这是在编写的过程中遇到很多犹豫逻辑的不清晰造成的问题,无形中给编程造成了很大的困难,这是没有必要的,在以后的实验中,要充分吸取这个教训。另外在实验中也没有设计软件的防抖,这使得模式的选择不是很好用,这也是这次实验功能上一缺陷。 通过本次试验,我充分的认识到了vhdl语言的强大与简洁,通过编程的过程我也充分感受到数字电路的有趣之处,虽然说实验并不完善,还有很多可以提高的地方,我也遇到过很多的问题与困难,但能够顺利的完成实验,还是很受鼓舞的,本次实验也提高了我对数字电路的理解与兴趣。所用元器件及测试仪表清单元器件名称个数EPM7128SLC84-15芯片1发光二极管3七段数码管2开关2按钮1编译报告和管脚列表:共占用77个宏单元(60%)25个管脚七、VHDL源程序:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY wash ISPORT(START: INSTD_LOGIC;-开始和停止PAUSE: INSTD_LOGIC;-暂停和继续CLOCK: INSTD_LOGIC;-系统时钟CHANGE: INSTD_LOGIC; -模式变换信号ALARM: OUTSTD_LOGIC;-洗衣结束蜂鸣信号DISPMODE: OUTSTD_LOGIC_VECTOR(2 DOWNTO 0);-显示洗衣模式DISTIME : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-数码管显示时间CAT: OUTSTD_LOGIC_VECTOR(5 DOWNTO 0)-数码管选通信号);END wash;ARCHITECTURE a OF wash ISSIGNAL STATE : STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL MODE : STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL TEMP : INTEGER RANGE 45 DOWNTO 0;SIGNAL TIME : INTEGER RANGE 60 DOWNTO 0;SIGNAL COUNT : INTEGER RANGE 499999 DOWNTO 0;SIGNAL T : INTEGER RANGE 9 DOWNTO 0;SIGNAL CLK : STD_LOGIC;BEGINPROCESS(CLOCK)-由输入时钟进行100分频产生洗衣时钟BEGINIF (CLOCKEVENT AND CLOCK=1) THENCOUNT=COUNT + 1;IF (COUNT=499999) THENCOUNT=0;CLK MODE MODE MODE MODE MODE MODE =000;END CASE;END IF;STATE = MODE;-选择洗衣模式ALARM TEMP = 0 ;TIME TEMP = 0 ;TIME TEMP = 0 ;TIME TEMP = 25 ;TIME TEMP = 40 ; TIME TEMP = 0 ;TIME TEMP= 0 ; TIME= 0;END CASE ;ELSE IF ( PAUSE = 0) THEN-当pause信号0 start信号为1时IF ( CLKEVENT AND CLK = 1 AND TIME/=0) THENTIME = TIME - 1 ;IF ( TIME=1 ) THENSTATE =000;-当洗衣结束时把state置为”000“ALARM STATE = 110;TEMP STATE = 100;TEMP TEMP = 0 ;STATE = 000;END CASE;END IF;END IF;END IF;END IF;DISPMODE = STATE;END PROCESS;PROCESS (CLOCK,TIME)-显示剩余时间BEGINIF (CLOCK=1) T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-浙江-浙江造林管护工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-浙江-浙江工程测量工四级(中级工)历年参考题库含答案详解3套试卷
- 2026年秋季开学高三模考分析加油鼓劲课件
- 2025年湖北省武穴市《行测》考试考前冲刺密卷必考题附答案详解
- 2026年福建省南安市《行测》考试考前冲刺试卷附参考答案详解(达标题)
- 2026年四川省绵竹市《行测》考试模拟试卷附参考答案详解(完整版)
- 2025年吉林省蛟河市《行测》考试备考题库【全优】附答案详解
- (2026)医院护理带教老师年度规培护士临床实践指导工作总结
- 2025年山东省邹城市《行测》考试备考题库含完整答案详解【有一套】
- 2026年湖北省安陆市《行测》考试考前冲刺密卷(满分必刷)附答案详解
- 2026年高考地理(河南卷)真题详细解读及评析
- 2026浙江金华市义乌市机关事业单位编外聘用人员招聘66人笔试参考题库及答案详解
- 2026江西上饶市广信区住建局招聘编外人员8人笔试模拟试题及答案详解
- 养牛场疫苗接种操作规范手册 (标准版)
- 民宿行业市场发展分析及发展前景与投资机会研究报告
- 2026届中航西飞校园招聘笔试历年难易错考点试卷带答案解析
- 湖北省武汉市经济开发区2025-2026学年数学三年级第二学期期末检测模拟试题含解析
- 2026-2030中国升白细胞药物市场前景预测及投资策略建议报告
- 2026年GRE语文Verbal真题及答案
- 布展与撤展管理
- YY/T 0478-2011尿液分析试纸条
评论
0/150
提交评论