《EDA课设-洗衣机报告》由会员分享,可在线阅读,更多相关《EDA课设-洗衣机报告(18页珍藏版)》请在金锄头文库上搜索。
1、燕山大学课 程 设 计 说 明 书题目:洗衣机学院(系):电气工程学院年级专业 : 学号:学生姓名:指导教师:吕宏诗陈白教师职称:燕 山 大 学 课 程 设 计 说 明 书共 19 页第 1 页燕山大学课程设计(论文)任务书院(系) :电气工程学院基层教学单位: 电子实验中心学 号学 生 姓 名专业(班级)设计题 目洗衣机设 计 技 术 参 数 洗衣机工作时间可在1-15分钟内任意设定(整分钟数) ; 规定洗衣机运行规律为正转20s、停 10s、反转 20s、停 10s、再正 转 20s,如此反复; 洗衣机正转时在双色点阵上显示Z,反转时显示 F; 要求用两个数码管显示洗衣机剩余工作时间,每当
2、电机运行1 分 钟,显示器自动减1,直到为 0 时,电机停止运转。设 计 要 求 用动态数码管显示时间; 电机正转、反转要用双色点阵显示。工 作 量学会使用 Max+PlusII 软件、 Verilog HDL 语言和实验箱;独立完成电路设计,编程下载、连接电路和调试;参加答辩并书写任务书。工 作 计 划了解 EDA 的基本知识, 学习使用软件 Max+PlusII,下发任务书, 开始电路设计; 学习 Verilog HDL 语言,用 Verilog HDL 进行程序设计; 学习使用实验箱,继续电路设计; 完成电路设计; 答辩并书写任务书。 参 考 资 料数字电子技术基础 . 阎石主编 . 高
3、等教育出版社; EDA课程设计 A指导书 。指导教师签 字基层教学单位主任 签字金海龙说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。 年月日燕 山 大 学 课 程 设 计 说 明 书共 19 页第 2 页目录第一章 设计说明 . 错误!未定义书签。1.1 设计思路 . . 错误!未定义书签。1.2 模块介绍 . . 错误!未定义书签。1.3 真值表 . 错误!未定义书签。第二章 Verilog HDL设计源程序 . . 错误!未定义书签。第三章 波形仿真图 . 错误!未定义书签。第四章 管脚锁定及硬件连线. 错误!未定义书签。4.1 管脚锁定 . . 错误!未定义书签。4.2
4、硬件连线 . 错误!未定义书签。第五章 总结 . 错误!未定义书签。参考文献 . 错误!未定义书签。燕 山 大 学 课 程 设 计 说 明 书共 19 页第 3 页第一章设计说明1.1 设计思路本次设计题目为洗衣机,任务要求如下: 定时到定时未到本设计所要实现的具体功能为:1. 在置数信号有效时,通过拨动数字开关完成初始时间的预置,并在数码管 上显示;2. 完成初始时间预置后,启动,电机正转、反转要用双色点阵显示;3. 电动机工作一分钟后,数码管显示数自动减1,当显示为 0 时,停止 工作,启动蜂鸣器。根据任务要求, 可确定主程序应包含预置数部分、 六十进制加法计数器、 十五进制减法计数器、数
5、码管显示部分 , 双色点阵显示。1.2 模块介绍1. 预置数部分:使用 LD为预置信号,用数字开关控制。当LD=0 ,分别用 4 个开关控制预置数的十位和个位,完成1-15 分钟内任意计数,完成置数后,使LD=1 。当电机开始工作后,若需要重新置数,则再次使LD=0 ,然后进行置数。2. 六十进制加法计数器:正转 20s 定 时 启暂停反转暂停 10s 停止燕 山 大 学 课 程 设 计 说 明 书共 19 页第 4 页在完成预置数之后, LD=1,并给出完成信号RD=1 ,启动六十进制加法计数器工作,并设置输出量movz (正转) ,movf(反转) ,cp(周期进位信号)在一个工作周期的
6、1-20 秒,使 movz=1 ;在 31-50 秒,使 movf=1;完成一个周期计数后,使 cp=1。3. 十五进制减法计数器:在预置数完成之后,当cp=1时,减法计数器减1,直至 0。当计数到0时,给出输出信号fengming=1 。4. 数码管显示部分:采用两个动态数码管显示洗衣机剩余工作时间,DS8A 显示十位数, DS7A 显示个位数,设置位选信号SS ,当 SS=0 时,选中 DS8A ,使输出量为十位上的数; 当 SS=1 时,选中 DS7A ,使输出量为个位上的数。 编辑计数器使得SS在 0、1之间交替变换,可使个位与十位的交替显示,设置位选信号的扫描频率 (CLK1),使得
7、交替显示频率加快,由于数码管有余晖特性和人眼有视觉暂留现象,可观察到两个数码管同时显示。5.双色点阵显示部分:用双色点阵显示电机正转、反转的状态,洗衣机正转时在双色点阵上显示Z,反转时显示F。将正转( Z)或反转( F)显示编码作为列信号跟对应的行信号进行逐次扫描, 就可以逐行点亮点阵。 只要扫描频率大于24Hz,由于扫 描时间很快,人眼的视觉有暂留效应,就可以看到显示的是完整的字母。1.3 真值表1. 预置时间情况如下表所示燕 山 大 学 课 程 设 计 说 明 书共 19 页第 5 页控制端十位个位预置数LD sw3 sw2 sw1 sw0 gw3 gw2 gw1 gw0 0 0 0 0
8、0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 1 1 3 0 0 0 0 0 0 1 0 0 4 0 0 0 0 0 0 1 0 1 5 0 0 0 0 0 0 1 1 0 6 0 0 0 0 0 0 1 1 1 7 0 0 0 0 0 1 0 0 0 8 0 0 0 0 0 1 0 0 1 9 0 0 0 0 1 1 0 1 0 10 0 0 0 0 1 1 0 1 1 11 0 0 0 0 1 1 1 0 0 12 0 0 0 0 1 1 1 0 1 13 0 0 0 0 1 1 1 1 0 14 0 0
9、 0 0 1 1 1 1 1 15 1 X X X X X X X X 0 2 数码管显示部分燕 山 大 学 课 程 设 计 说 明 书共 19 页第 6 页本任务需要两个数码管显示剩余时间,数码管输入输出各量真值表如下:个位数字数码管显示:输入(个位) SS=1 数码管输出数码管 显示值Q3 Q2 Q1 Q0 h g f e d c b a 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 2 0 0 1 1 0 1 0 0 1 1 1 1 3 0 1 0 0 0 1 1 0 0 1 1 0
10、 4 0 1 0 1 0 1 1 0 1 1 0 1 5 0 1 1 0 0 1 1 1 1 1 0 0 6 0 1 1 1 0 0 0 0 0 1 1 1 7 1 0 0 0 0 1 1 1 1 1 1 1 8 1 0 0 1 0 1 1 0 0 1 1 1 9 十位数字数码管显示:输入(十位) SS=0 数码管输出数码管 显示值 Q7 Q6 Q5 Q4 h g f e d c b a 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 3 双色点阵显示部分燕 山 大 学 课 程 设 计 说 明 书共 19 页第 7 页列显示:输入 cou
11、t 的值输出 ra C2 C1 C0 ra7 ra6 ra5 ra4 ra3 ra2 ra1 ra0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 行显示:输入 cout 的值输出row C2 C1 C0 row7 row6 row5 row4 row3 row2 row1 row0 0 0
12、0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 燕 山 大 学 课 程 设 计 说 明 书共 19 页第 8 页第二章Verilog HDL设计源程序根据任务书要求以及附加功能描述,程序设计如下:module wash1(CLK,CLK1,LD,sw,gw,G,row,ra,SS,fengming);
13、input CLK,CLK1,LD; input3:0sw,gw; output fengming; output2:0SS; output6:0G; output7:0row,ra; reg2:0cout; reg3:0out,A; reg6:0G; reg3:0ge,shi; reg7:0row,ra; reg5:0Q_TEMP; reg2:0B_TEMP,SS; reg movz,movf,cp,fengming,RD; always(posedge CLK) begin if(LD) if (shi!=0|ge!=0) begin if(RD) if(Q_TEMP0 燕 山 大 学 课
14、 程 设 计 说 明 书共 19 页第 9 页else cp=0; end else begin movz=0; movf=0; cp=0; if(A4b0000) ge=ge-1; else if(ge=4b0000) begin ge=ge+4b1001; shi=shi-1; end end end end always(posedge CLK1) begin if(B_TEMP=0) B_TEMP=B_TEMP+1; else begin B_TEMP=0;end SS=B_TEMP; end always(posedge CLK1) begin case(SS) 0:out=ge;
15、1:out=shi; 燕 山 大 学 课 程 设 计 说 明 书共 19 页第 10 页endcase end always(out) begin case(out) 0:G=b0111111; 1:G=b0000110; 2:G=b1011011; 3:G=b1001111; 4:G=b1100110; 5:G=b1101101; 6:G=b1111101; 7:G=b0000111; 8:G=b1111111; 9:G=b1101111; endcase end always(posedge CLK1) begin if(movz) begin cout=cout+1; case(cout) 0:begin ro