EDA课程设计 全自动洗衣机Word文档下载推荐.docx
《EDA课程设计 全自动洗衣机Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA课程设计 全自动洗衣机Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。
洗衣机控制器电路主要有五大部分组成,包括:
减法计数器、时序控制电路、预置时间和编码电路、数码管显示、译码器组成。
具体电路如图3所示:
图3洗衣机控制器总体设计图
3程序设计
(1)时间设置电路:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitysettimeis
port(load:
instd_logic;
k:
instd_logic_vector(9downto0);
o:
outstd_logic_vector(3downto0)
);
endsettime;
architecturert1ofsettimeis
signalp1:
std_logic_vector(3downto0);
begin
process(load)
begin
if(load'
eventandload='
1'
)
then
casekis
when"
1000000000"
=>
p1<
="
0001"
;
0100000000"
0010"
0010000000"
0011"
0001000000"
0100"
0000100000"
0101"
0000010000"
0110"
0000001000"
0111"
0000000100"
1000"
0000000010"
1001"
0000000001"
1010"
whenothers=>
0000"
endcase;
endif;
endprocess;
o<
=p1;
endrt1;
(2)数码管显示
useieee.std_logic_arith.all;
entityshowtimeis
port
(
num:
instd_logic_vector(3downto0);
dout:
outstd_logic_vector(6downto0)
endshowtime;
architecturea1ofshowtimeis
withnumselect
dout<
1111110"
when"
"
0110000"
1101101"
1111001"
0110011"
1011011"
1011111"
1110000"
1111111"
1111011"
0000000"
whenothers;
enda1;
(3)序电路
entitySHIXUis
port(clk:
TG:
start:
SHUCHU:
BUFFERstd_logic_VECTOR(2DOWNTO0)
endSHIXU;
architecturebehavofSHIXUis
SIGNALQQ:
STD_LOGIC_VECTOR(5DOWNTO0);
process(clk,tg,QQ)
if(tg='
)or(start='
0'
)thenshuchu<
001"
QQ<
111011"
elseif(clk'
event)and(clk='
)then
ifQQ="
000000"
thenQQ<
;
shuchu<
100"
elsifQQ="
111010"
thenshuchu<
100111"
011101"
010"
001001"
=QQ-1;
ENDPROCESS;
endbehav;
⑷译码器
entityYIMAis
port(run:
outstd_logic;
rev:
pause:
SHURU:
INstd_logic_VECTOR(2DOWNTO0)
endYIMA;
architecturebehavofyimais
process(shuru)
caseshuruis
rev<
='
run<
pause<
(5)减法计数器
entitycounteris
port(start:
INstd_logic;
clk:
CHUSHItime:
INintegerrange0to15;
XIANSHItime:
OUTintegerrange0to15;
JINWEI:
BUFFERstd_logic);
endcounter;
architecturebehavofcounteris
signalZHONGJIANtime:
integerrange0to15;
process(clk)
if(start='
)thenZHONGJIANtime<
=CHUSHItime;
XIANSHItime<
jinwei<
else
if(clk'
eventandclk='
if(ZHONGJIANtime=0)thenXIANSHItime<
=0;
JINWEI<
elseZHONGJIANtime<
=ZHONGJIANtime-1;
=ZHONGJIANtime;
endif;
endif;
4编译及仿真
EDA工具在EDA技术应用中占据极其重要的位置,EDA的核心是利用计算机完成电子设计全程自动化,因此基于计算机环境的EDA软件的支持是必不可少的。
此次设计所用EDA工具是由著名的Alter公司生产的MAX+plusⅡ工具软件,它是一种集成的开发环境,支持原理图、VHDL和Verilog语言文本文件,以及波形文件作为设计输入,并支持这些文件的人以混合设计。
图4洗衣机控制器程序仿真图
MAX+plusⅡ工具软件具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果,同是还支持主流第三方EDA工具,所以可以说MAX+plusⅡ是当今最优秀的EDA工具软件之一。
利用MAX+plusⅡ工具软件仿真仿真结果如图4所示
5硬件调试与结果分析
洗衣机接通电源,按load设置洗涤时间按start、rd置为高电平洗衣机开始工作,当时钟第一个上升沿到达时run(正转功能)为高电平维持20s以后变为低电平而pause(暂停功能)随着时钟上升沿的到来变为高电平维持10s变为低电平,然后rev(反转功能)开始随着时钟上升沿的到来变为高电平工作维持20s后变为低电平,再停止pause置高,接下来电路一直重复上述工作,知道定时器计数结束。
电路设计完成以后,按照预定设计,输入相应数据,三只LED灯按照设定时间规律间断性亮起,数码管也显示输入时间并按减数计时产生相应的数字显示,直到到达预定时间停止工作显示零,实验设计达到预期效果。
6参考文献
[1]潘松著.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]康华光主编.电子技术基础模拟部分.北京:
高教出版社,2006.
[3]阎石主编.数字电子技术基础.北京:
高教出版社,2003.
[4]赵岩岭刘春等.在MAX+plusⅡ平台下用VHDL进行数字电路设计.西安:
西电出版社,2005
心得体会
通过这次的EDA设计,我可以说是受益良多。
看到洗衣机控制器的题目,我首先想到的是状态机的设计,因为课本上说状态机其实就是控制器,后来经过看书觉得应该是摩尔型状态机,可是自习分析后发现设计题目比较复杂,如果用状态机的思路来设计,比较困难超出了我的能力。
结合以前做课程设计(数字电路设计——交通等控制器)的经验,如果用模块化层次化的设计思路更清晰,设计起来也更容易,特别是更符合EDA设计的的流程,故自己开始设计各功能模块。
洗衣机控制器主要实几种状态的循环改变,还有计时和数码显示的功能,所以我觉得电路主要有五大部分组成,包括:
在分析过程中,我遇到了不少困难,因为第一次遇到一个比较复杂的设计,刚开始不知道从哪里入手,所以借鉴了一些书和网上的资料,主要参看了赵岩岭刘春等老师编著的《在MAX+plusⅡ平台下用VHDL进行数字电路设计》关于控制器的一些设计方法和范例,并且在无忧电子开发网(