资源描述
燕山大学
课 程 设 计 说 明 书
题目: 洗衣机
学院(系): 电气工程学院
年级专业:
学 号:
学生姓名:
指导老师: 吕宏诗 张强
老师职称: 试验师
燕山大学课程设计(论文)任务书
院(系):电气工程学院 基层教学单位:电子试验中心
学 号
学生姓名
专业(班级)
设计题目
洗衣机
设
计
技
术
参
数
● 洗衣机工作时间可在1-15分钟内任意设定(整分钟数);
● 要求洗衣机运行规律为正转20s、停10s、反转20s、停10s、再正转20s,如此反复;
● 洗衣机正转时在双色点阵上显示Z,反转时显示F;
● 要求用两个数码管显示洗衣机剩下工作时间,每当电机运行1分钟,显示器自动减1,直到为0时,电机停止运转;
设
计
要
求
● 用动态数码管显示时间;
● 电机正转、反转要用双色点阵显示。
工
作
量
●学会使用Max+PlusII软件、Verilog HDL语言和试验箱;
●独立完成电路设计,编程下载、连接电路和调试;
●参与答辩并书写任务书。
工
作
计
划
1. 了解EDA基础知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;
2. 学习Verilog HDL语言,用Verilog HDL进行程序设计;
3. 学习使用试验箱,继续电路设计;
4. 完成电路设计;
5. 编程下载、连接电路、调试和验收;
6. 答辩并书写任务书。
参
考
资
料
《数字电子技术基础》.阎石主编.高等教育出版社.
《EDA课程设计A指导书》.
指导老师签字
基层教学单位主任签字
金海龙
说明:此表一式四份,学生、指导老师、基层教学单位、系部各一份
年 月 日
目 录
第1章 摘要…………………………………………………………………………………1
第2章 设计方案……………………………………………………………………………2
第3章 Verilog HDL源程序………………………………………………………………3
第4章 源程序各部分波形仿真图…………………………………………………………5
第5章 管脚锁定及硬件连线 ……………………………………………………………14
第6章 结论 ………………………………………………………………………………16
参考文件 ……………………………………………………………………………………18
前 言
面对当今飞速发展电子产品市场,电子设计人员需要愈加实用、快捷EDA工具,实用统一集成设计环境,改变传统设计思绪,即优先考虑具体物理实现方法,而将精力集中到设计构思、方案比较和寻求最优化设计等方面,以最快速度开发出性能优良、质量一流电子产品。今天EDA工具将向着功效强大、简单易学、使用方便方向发展。
此次课程设计题目洗衣机,本任务书,首先概括介绍了EDA技术、VerilogHDL硬件描述语言,依据任务书对本课题整体思绪进行了介绍,然后分别介绍了主程序各部分功效,并绘制波形仿真,再次给出实现本任务书所要求功效及其附加功效源程序和波形仿真图,最终进行管脚锁定和外部硬件连线并下箱实现了全部功效。在此次课程设计过程中源程序编译及硬件连接过程中全部碰到了很多困难,在老师耐心指导下完成了此次课程设计。再次尤其感谢老师指导。第一章 摘 要
数字电路关键是基于两个信号(我们能够简单说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算电路我们称之为数字电路,它含有逻辑运算和逻辑处理等功效,数字电路可分为组合逻辑电路和时序逻辑电路。
1. EDA介绍
EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述关键表示方法,以计算机、大规模可编程逻辑器件可开发软件及试验开发系统为设计工具,经过相关开发软件,自动完成用软件方法设计电子系统到硬件系统逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片一门新技术。
利用EDA技术进行电子系统设计,含有以下多个特点:(1)用软件方法设计硬件;(2)用软件方法设计系统到硬件系统转换是由相关开发软件自动完成;(3)设计过程中可用相关软件进行仿真;(4)系统现场可编程,在线升级;(5)整个系统可集成在一个芯片上,体积小,功耗低,可靠性高。所以,EDA技术是现代电子设计发展趋势。
2.Verilog HDL
Verilog HDL 是现在应用最广泛硬件描述语言之一,被IEEE采纳为IEEE STD1364-1995(也成为Verilog-1995)和IEEE STD.1364-(也成为Verilog-HDL)能够进行算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次电路设计和描述。采取Verilog HDL 进行电路设计于工艺设计无关,这使得设计者在进行电路设计时能够无须过多考虑工艺实现具体细节,设计者只需要利用计算机强大功效,在EDA工具支持下,经过Verilog HDL描述,完成数字电路和系统设计即可,从而提升了设计效率,降低了设计者劳动强度。
作为硬件描述语言,Verilog HDL含有以下特点:
(1) 能够在不一样抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系统进行正确而简练描述。
(2)能够在每个抽象层次描述上对设计进行仿真验证,立即发觉立即发觉可能存在错误,缩短设计周期,并保留整个设计过程正确性。
(3)因为代码描述和工艺过程实现无关,便于设计标准化,提升设计可重用性。如国有C语言编程基础经验,只需很短时间就能学会和掌握Verilog HDL,所以,Verilog HDL能够作为学习HDL设计方法入门和基础。
第二章 设计方案
2.1任务分析
由任务书可知要求以下:
洗衣机工作时间可在1-15分钟内随时可任意设定(整分钟数);要求洗衣机运行规律为正转20s、停10s、反转20s、停10s、再正转20s,如此反复;用两个数码管显示洗衣机剩下工作时间,每当电机运行1分钟,显示器自动减1,直到为0时,电机停止运转并有蜂鸣器发声提醒。
经过设计能够达成以下功效:
1、洗衣机正转20s时双色点阵显示“Z”,同时红色信号指示灯L1亮灯。反转20s时双色点阵显示“F”,同时红色信号指示灯L2亮灯。
2、两位动态数码管显示剩下分钟数,每一分钟减小一。
3、当工作停止时,动态数码管显示“00”同时蜂鸣器响。
2.2设计思绪
六十进制加计数器依据任务能够知道因为每整数分钟后要降低一,所以需要一个六十进制计数器,使每六十秒产生一个进位信号,为整数分钟提供减数信号。
十五进制减法计数器,完成十五分钟任意置数后计时显示剩下工作时间。当记时为0是,fengming=1是蜂鸣器响。
动态数码管部分采取ss作为位选信号,有clk1高频循环,因为发光二极管余辉效应和人眼视觉暂留现象,会观察到两位数码管同时显示。
八进制加法计数器部分用来完成双色点阵行和列高频扫描,一样利用发光二极管余辉效应和人眼视觉暂留现象,会在双色点阵上看到一定图形。
双色点阵部分含有当行是低电平而对应列是高电平时该点亮光特征,所以分别另每行对应低电平时需关键点亮列是高电平,高频循环后,就会得到需要图形。
第三章 Verilog HDL设计源程序
module xiyijibiancheng(CLK,shiwei,gewei,forward,fengming,back,LDN,CLK1,G,SS,ROW,GA);
input CLK,CLK1,LDN;
input[3:0]shiwei,gewei;
output forward,back,SS,fengming;
output[6:0]G;
output[7:0]ROW,GA;
reg L;
reg[2:0] W;
reg[3:0]OUT;
reg[6:0]G;
reg[7:0]ROW,GA;
reg[3:0]QQ_TEMP,C,Q,C_TEMP;
reg forward,back,RD,CC_TEMP,cp,SS,B_TEMP,fengming;
reg[1:0]dianzhen;
reg[5:0]Q_TEMP;
always@(posedge CLK) //六十进制加法计数器
begin if(LDN)
if (shiwei!='b0000||gewei!='b0000)
begin if (RD==1)
if (Q_TEMP<6'b111100)Q_TEMP=Q_TEMP+1;
else Q_TEMP=0;
else Q_TEMP=0;
end
else Q_TEMP=0;
end
always@(posedge CLK) //定义正反转部分
begin if(LDN==1)
if(QQ_TEMP!=0||C_TEMP!=0)
begin
if(Q_TEMP>=6'b000000&&Q_TEMP<6'b010101)begin forward=1;dianzhen='b11;back=0;end
else if(Q_TEMP>6'b011110&&Q_TEMP<6'b110011)begin forward=0;back=1;dianzhen='b00;end
else if (Q_TEMP>=6'b010101&&Q_TEMP<=6'b011110)begin forward=0;back=0;dianzhen='b01;end
else if (Q_TEMP>=6'b110011&&Q_TEMP<=6'b111100)begin forward=0;back=0;dianzhen='b01;end
if(Q_TEMP==6'b111100) cp=1;
else cp=0;
end
else begin forward=0;back=0;cp=0;dianzhen='b01;fengming=1;end
else begin forward=0;back=0;cp=0;dianzhen='b01;fengming=0;end
end
always@( posedge CLK)
begin //置数部分
if (LDN==0)
begin
QQ_TEMP=gewei;
C_TEMP=shiwei;
Q=QQ_TEMP;
C=C_TEMP;
end
else
begin RD=1; //十五进制计数器部分
if(cp==1)
if((QQ_TEMP||C_TEMP))
begin
if(QQ_TEMP>4'b0000) QQ_TEMP=QQ_TEMP-1;
else if(QQ_TEMP==4'b0000)
begin
QQ_TEMP=QQ_TEMP+4'b1001;
C_TEMP=C_TEMP-1;
end
Q=QQ_TEMP;
C=C_TEMP;
end
end
end
always@(posedge CLK1) //八进制计数器部分
begin
if(W=='b111)
W=0;
else W=W+1;
end
always@(W) //双色点阵部分
begin
if(dianzhen=='b11&&LDN==1&&forward==1&&back==0)
begin
case(W)
0:begin ROW='b01111111;GA='b11111111;end
1:begin ROW='b10111111;GA='b00000010;end
2:begin ROW='b11011111;GA='b00000100;end
3:begin ROW='b11101111;GA='b00001000;end
4:begin ROW='b11110111;GA='b00010000;end
5:begin ROW='b11111011;GA='b00100000;end
6:begin ROW='b11111101;GA='b01000000;end
7:begin ROW='b11111110;GA='b11111111;end
endcase
end
if(forward==0&&back==0&&LDN==1&&dianzhen=='b01)
begin
ROW='b11111111;GA='b00000000;
end
if(dianzhen=='b00&&LDN==1&&back==1&&forward==0)
begin
case(W)
0:begin ROW='b01111111;GA='b11111111;end
1:begin ROW='b10111111;GA='b10000000;end
2:begin ROW='b11011111;GA='b10000000;end
3:begin ROW='b11101111;GA='b11111110;end
4:begin ROW='b11110111;GA='b10000000;end
5:begin ROW='b11111011;GA='b10000000;end
6:begin ROW='b11111101;GA='b10000000;end
7:begin ROW='b11111110;GA='b10000000;end
endcase
end
end
always@(posedge CLK1) //动态数码位选信号部分
begin
if(B_TEMP<'b1) B_TEMP=B_TEMP+1;
else begin B_TEMP='b0;end
SS=B_TEMP;
end
always@(posedge CLK1)
begin
case(SS)
'b0:OUT=QQ_TEMP;
'b1:OUT=C_TEMP;
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
endmodule
第四章 源程序各部分波形仿真图
4.1 预置数部分
预置时间情况以下表所表示
控制端
十位
各位
预置数
LDN
shiwei3
shiwei2
shiwei1
shiwei0
gewei3
gewei2
gewei1
gewei0
0
0
0
0
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
0
0
1
1
1
1
1
15
1
X
X
X
X
X
X
X
X
0
功效说明: 以上置数时,需要在LDN=0时才可。shiwei[3:0]和gewei[3:0]分别用数字开关组A组SW1~SW8来控制。
4.2各部分仿真波形
1、六十进制加法计数器部分
由仿真波形可知,当置数端LDN=1时表示指数结束,此时Q_TEMP由零开始计数当计时到60时,cp=1,为十五进制减法计数器输入减1信号。
2、十五进制减法计数器部分
由gewei[3:0]和shiwei[3:0]可知所置数数值为11,当开始工作后60秒时cp输出高电平使得Q_TEMP[3:0]由1变为0,即此时动态数码管个位由1变为0,十位数值C_TEMP仍为1,即完成“显示剩下工作时间10分钟”功效。
3、动态数码管部分
由图可知指数值为11,在一分钟内OUT[3:0]一直交替显示个位和十位值,均为1,一分钟后变为交替显示0和1,在经过一份后交替显示9和0。而位选信号SS则交替显示0和1,不停选择显示位,如此循环,因为发光二极管余辉特征及人眼视觉暂留特征,能够看到显示两位动态数码管数值。
4、八进制计数器部分
由图能够知道伴随CLK1高频率改变W有0到7不停改变,完成双色点阵行和列高频扫描。
5、双色点阵部分
由图能够知道当dianzhen=01是显示停止工作10秒时仿真波形,此时正转forward=0反转back=0,行ROW均输出高电平,列GA均输出低电平,故点阵不显示任何波形。当dianzhen=11是显示正转20s时仿真波形,此时正转forward=1反转back=0,行和列分别显示所需图形对应值,在双色点阵上显示“Z”。当dianzhen=00是显示反转20s时仿真波形,此时正转forward=0反转back=1, 行和列分别显示所需图形对应值,在双色点阵上显示“F”。
4.3数码管显示部分
本任务需要两个数码管显示剩下时间,数码管输入输出各量真值表以下:
个位数字数码管显示:
输入(个位)
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
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
功效说明:SS在0、1之间以一定频率往返变换,所以观察者能够看到两个数码管同时显示数字,而实际上在同一时刻只有一个数码管显示。当SS=0时,选中DS8A,使输出量为十位上数;当SS=1时,选中DS7A,使输出量为个位上数。数码管输入数据不一样,输出7个段信号不一样,数码管显示数就不一样。
4.4整体仿真波形
功效说明:在开始时LDN=0,开始置数,置数完成后LDN=1开始工作,正转(forward=1),双色点阵显示“Z”,同时红色彩灯L1亮,暂停10S,反转20S(back=1),双色点阵显示“F”,同时红色彩灯L2亮,当停止工作时,蜂鸣器蜂鸣提醒(fengming=1)。第五章 管脚锁定及硬件连线
5.1 管脚锁定
程序输入端管脚锁定:
程序输入端
扩展版下载接口
程序输入端
扩展板下载接口
CLK
Pin8
CLK1
Pin9
gewei0
Pin53
gewei1
Pin47
gewei2
Pin46
gewei3
Pin45
shiwei0
Pin44
shiwei1
Pin41
shiwei2
Pin40
shiwei3
Pin39
LDN
Pin89
程序输出端管脚锁定:
程序输出端
扩展版下载接口
程序输出端
扩展板下载接口
forward
Pin12
back
Pin13
Ss
Pin87
fengming
Pin38
G0
Pin85
G1
Pin75
G2
Pin83
G3
Pin86
G4
Pin88
G5
Pin90
G6
Pin93
ROW0
Pin198
ROW1
Pin196
ROW2
Pin193
ROW3
Pin191
ROW4
Pin189
ROW5
Pin179
ROW6
Pin176
ROW7
Pin174
GA0
Pin197
GA1
Pin195
GA2
Pin192
GA3
Pin190
GA4
Pin187
GA5
Pin177
GA6
Pin175
GA7
Pin173
5.2 硬件连线
Pin38 Pin53 Pin47 Pin46 Pin45 Pin44 Pin41 Pin40 Pin39 分别为蜂鸣器和A组数字开关SW8 SW7 SW6 SW5 SW4 SW3 SW2 SW1,已经内部连接,不需连线。
Pin10àCLOCK 信号引脚21 Pin9àCLOCK信号引脚11
Pin89àB组数字开关SW9 Pin12à彩色信号指示灯L1
Pin13à彩色信号指示灯L2 Pin87à动态数码管位选信号SS0
Pin 85à动态数码管a Pin75à动态数码管b
Pin 83à动态数码管c Pin 86à动态数码管d
Pin 88à动态数码管e Pin 90à动态数码管f
Pin 93à动态数码管g Pin 198à双色点阵ROW1
Pin 196à双色点阵ROW2 Pin 193à双色点阵ROW3
Pin 191à双色点阵ROW4 Pin 189à双色点阵ROW5
Pin 179à双色点阵ROW6 Pin 176à双色点阵ROW7
Pin 174à双色点阵ROW8 Pin 197à双色点阵GA1
Pin 195à双色点阵GA2 Pin 192à双色点阵GA3
Pin 190à双色点阵GA4 Pin 187à双色点阵GA5
Pin 177à双色点阵GA6 Pin 175à双色点阵GA7
Pin 173à双色点阵GA8
第六章 总 结
在两周课程设计过程中,从开始第一天对EDA课设一无所知,到最终自己编程仿真,自己下箱硬件试验成功,在这期间,学会了不少东西。
开始在老师讲解下,学习了EDA相关东西,MAX+plus II软件使用,verilog HDL语言使用,在拿到自己任务书以后,开始设计完成自己课题。在设计过程中,碰到了不少麻烦,首先是看到自己任务书后认为很简单,不过却不知道怎样下手;再次是每次程序编译全部会犯错,有些错误不知道是怎么回事,由什么原因引发,经过两周学习,在老师和周围同学帮助下,对verilog HDL语言慢慢熟悉,编程思绪越来越清楚,从开始不知所措到最终完成任务要求并附加功效,品尝到成功喜悦。
两周课设让我深深知道,不管做什么事情,一定要踏扎实实,切忌浮躁,尤其是在自己碰到困难时候。其次,要养成良好习惯。在这次编程过程中,假如有良好编程习惯,对于自己思绪有良好促进作用。
最终,感谢吕宏诗老师和张强老师在这次EDA课程设计中对我指导和帮助。
参考文件
1郑兆兆 李艳艳 周莲莲 吕宏诗 《 EDA课程设计A指导书》
2常丹华 张宝荣 黄震 李江昊 《数字电子技术基础》
燕山大学课程设计评审意见表
指导老师评语:
①该生学习态度 (认真 较认真 不认真)
②该生迟到、早退现象 (有 无)
③该生依靠她人进行设计情况 (有 无)
平时成绩: 指导老师签字:
年 1 月4 日
图面及其它成绩:
答辩小组评语:
①设计巧妙,实现设计要求,并有所创新。
②设计合理,实现设计要求。
③实现了大部分设计要求。
④没有完成设计要求,或只实现了一小部分设计要求。
答辩成绩: 组长签字:
年 1 月4 日
课程设计综合成绩:
答辩小组组员签字:
1 月4 日
展开阅读全文