- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、总体设计思想
1.基本原理
从课程设计要求来看,要求实现电机的正传、反转、暂停,需要用 LED 灯
的状态来表示,当显示时间前 20 秒正传、暂停 10 秒、反转 20 秒、再暂停 10
秒,如此一来,周期恰好是 60 秒。洗衣机控制器的设计主要是定时器的设计。
由一片 FPGA 和外围电路构成了电器控制部分。FPGA 接收键盘的控制命令,控
制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及
设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。对芯
片的编程采用模块化的 VHDL (硬件描述语言)进行设计,设计分为三层实现,
顶层实现整个芯片的功能。顶层和中间层多数是由 VHDL 的元件例化语句实现。
中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控
制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、 启停控制等模块组成,它们分别调用底层模块。
从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进
行清零,这时用户置入洗涤时间,并按开始按钮,洗衣机开始工作。当秒计数
器变为零的时候,去分钟计数器上面借数;与此同时,从十秒位转化出来的信
号进入移位寄存器后,LED 灯表示出电机运转状态;当用户设定的洗涤时间结 束后,电路报警并清零;同时电机指示灯熄灭。
2.设计框图
首先开始启动,按照指令要求先正转 20 秒,然后暂停 10 秒,接着反转 20
定
定时启动
正转 20s
暂停 10s
反转 20s
暂停 10s
定 时 到
停止
秒,暂停 10 秒,如果定时时间没有达到依次进行以上操作。倘若定时时间达 到就停止以上操作,停止运行。
定时时间未到
二、设计步骤和调试过程
1、总体设计电路
洗衣机控制器电路主要有五大部分组成,包括:减法计数器、时序控制电 路、预置时间和编码电路、数码管显示、译码器组成。
2、模块设计和相应模块程序
⑴数码管显示
实现数码管显示
Library iee;
Use ieee.std_logic_1164.all;
Entity encode is
Port(
Bcd : in std_logic_vector(3 downto o); A,b,c,d,e,f,g: out std_logic
);
End encode;
Architecture rtl of encode is
Signal temp:std_logic_vector(6 downto 0);
Begin
Table
Bcd = temp;
"0000"= "1111110";
"0001"= "0110000"
"0010"= "1101101"
"0011"= "1111001"
"0100"= "0110011"
"0101"= "1011011"
"0110"= "1011111"
"0111"= "1110000"
"1000"= "1111111"
"1001"= "1111011"
End table;
a=temp(6);b=temp(5);c=temp(4);d=temp(3);e=temp(2);f=temp(1);
g=temp(0);
end rtl;
⑵时序电路
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.std_logic_unsigned.all
Entity shixu is
ort(cp,en,rd:in std_logic;
1,q2:out std_logic);
End shixu;
rchitecture rtl of shixu is
egin
Process(cp)
Variable wash_time:integer range 0 to 19;
Variable wash_time:integer range 0 to 9;
Variable state:std_logic;
Variable wash_time:integer :=21;
Variable wash_time:integer :=9;
Begin
If(en=’0’)wash_time:=’19’;wait_time:=’9’;state:=’0’;
End if;if(en=’0’)then wash_time:=21;Q1=’0’;Q2=’0’; Else if (cp’event and cp=’1’)
Then if (rd=’1’)then if (wash_time0)
Then wash_time:=20;state:=not state;
End if; end if; end if;
If(wash_time=0)then Q1=’0’;Q2=’0’;
原创力文档


文档评论(0)