ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:87.32KB ,
资源ID:20535255      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20535255.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电机控制系统Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电机控制系统Word下载.docx

1、总共具有5种不同的元件,分别负责不同的功能:十进制BCD码减法计数器是用于控制系统的计时,时序电路负责存储电机的工作方式,信号翻译器负责将时序电路的信号翻译为电机可识别信号,编码器负责将输入的时间转换为2个4位编码给2个数码管显示。具体原理图如下图2-1:图2-1 电机控制原理图2.1.2电机控制系统设计内容 设计六个模块来实现一个简单的电机控制系统,主要可以控制电机工作的时间和工作方式并将剩余工作时间显示出来。 整个系统的输入端口一共有三个,分别是开关控制输入端口、工作时间输入端口和时钟频率输入端口。输出端有三个分别是正转输出端口、反转输出端口和暂停输出端口。同时有两个七段数字显示器。时间数

2、据由工作时间输入端口存储到十进制BCD码减法计数器中并显示在七段数码管显示器中。通过开关控制输入端口开始程序将开始信息传到时序电路中启动时序电路。时序电路将输出方法传递到信号翻译器中翻译并给出最终输出信号。2.2模块设计共设计6个模块分别如下:1.(b2d)顶层文件:引用各个模块组成电机控制系统。2.(counter)十进制BCD码减法计数器:实现输入的为分钟数,每隔60秒计数器减1。3.(decoder)信号翻译器:将时序电路的信号翻译为暂停,正转,反转信号。4.(settime)预置时间与编码寄存电路:将输入的1-10分钟编为2个4位的BCD码。5.(shixu)时序电路:控制电机按20秒

3、正转,停十秒。20秒反转,停十秒的顺序运行。6.(showtime)数码管显示器:实现数码管显示。第3章系统的程序说明和仿真3.1 顶层文件K为工作时间的输入端口,输入的一个10位的二进制数。START为此程序的启动输入端口。当从K端口输入工作时间时,数据会传递到十进制BCD码减法计数器中,并由十进制BCD码减法计数器将K译码传递到数码管显示器中显示是数码管上。当START端口为高电平时则为程序的开始,十进制BCD码减法计数器开始倒数,时序电路启动并将信号传递到信号翻译器,翻译器开始工作传递最终控制信号到电机中。同时十进制BCD码减法计数器中置TIME_REMAINH每次改变都会通过数码管显示

4、器显示在七段数码管上表示剩余时间。仿真图形如下图3-1:图3-1 电机控制系统仿真图3.2 十进制BCD码减法计数器 十进制BCD码减法计数器主要实现的功能为定时功能。输入时间信号后开始倒数计时,到计数器为零时停止。 其中START为开始的输入端口,CLK为时钟输入端口,MIME_REMAIN为输出时间数据到数码管的输出端口,K为输入时间数据的输入端口。TIME_IS_UP为电机工作状态的输出端口。通过将K中的数字装入TIME_REMAINH中开始并开始计时,置TIME_ second为60并开始每一秒减一,TIME_ second为零时从新开始并置TIME_REMAINH减一。一直循环到TI

5、ME_REMAINH为零时结束程序,并置TIME_IS_UP为0表示电机停止运行。仿真图形如下图3-2: 图3-2十进制BCD码减法计数器仿真图3.3 信号翻译器从时序电路中传来的信号并不能直接用于驱动直流电机的运转,必须通过信号翻译器将这两个输入信号翻译成三个分别为RUN(正转),REV(反转),PAUSE(暂停)的信号再输出给直流电机来控制电机。 其中Q1和Q2是从时序电路来的控制信号,RUN为正转输出信号,REV为反转输出信号,PAUSE为暂停输出信号.这是一个简单的译码器,当Q1和Q2输入为00,01,10时分别输出为001,010,100,其他为000。通过CASE语句翻译Q1和Q2

6、的输出情况,其他的时候输出000表示出错。仿真图形如下图3-3:图3-3. 信号翻译器仿真图 3.4 预置时间与编码寄存电路 预置时间与编码寄存电路,将输入的1-10分钟编为2个4位的BCD码。K为时间输入端口,LOAD为时钟输入端口,O为2个4位的BCD码的输出端口。仿真图形如下图3-4:图3-4. 预置时间与编码寄存电路仿真图3.5 时序电路时序电路是不同功能实现的基础,通过调整程序中正转和反转的持续时间和顺序达到调整电机运转方式的功能。 其中Q1和Q2为输出信号量送至信号翻译器中。CP为时钟输入端口。RD和EN为程序开始的信号输入端口。由于运作方式已经内置在程序中,调整输出方式只能修改程

7、序中的相应数据。程序开始后会依次执行正传,反转,暂停并循环。直到结束。仿真图形如下土3-5:图3-5.时序电路仿真图3.5 数码管显示器数码管显示器将输入的从0-9的4位二进制数,以七段译码器的方式输出。可以使用一个7位向量来分别表示中的七段数码管,如图3-6所示:a b c de e g图3-6七段LED与向量元素的对应图各个LED的选通表示不同的字母,该程序采用数据流描述方式。Cp信号为时钟信号,remain_time信号为输入的数字,Q1为低位输出,Q2为高位输出,A,B,C,D,E,F,G分别对应7个数码管。进程是以输入信号为敏感量的。通过CASE语句将输入信号翻译成输出信号。定义输入

8、信号作为进程的敏感量触发进程,将输入信号赋值给内部数值信号,通过CASE语句翻译0-9七段译码的输出情况,其他的时候输出-1表示出错。仿真图形如下图3-7所示:图3-7 数码管显示器仿真图第四章 课程设计总结通过7天的课程设计,我设计并完成了电机控制系统的设计,并用MAX-PLUS2仿真出了波形图。通过这次的课程设计,我学习到了很多的知识,不仅巩固了上课老师讲到的知识,也学到到了老师所没讲过的知识。能够灵活的运用书本中的知识并与实际进行联系,解决一些实际生活中遇到的问题。在这次课程设计,我遇到了很多困难,我通过同学和老师的帮助,一步步的客服了它们,并且很好的完成了本次课程设计。参考文献l 侯伯

9、亨基于Quartus 的FPGA/CPLD设计电子工业出版社 20012 潘松CPLD系统设计技术入门与应用电子工业出版社 20043 边际年EDA技术基础湖南大学出版社 20004 沈明山 EDA技术及可编程器件应用实训科学出版社 19995 朱正伟 EDA技术及应用清华大学出版社 2000附录程序清单-十进制BCD码减法计数器, library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter is port(clk,start:in std_logic; k:in STD_LOG

10、IC_VECTOR(7 downto 0); time_remain:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0); time_is_up:out std_logic);end counter;architecture rtl of counter isbegin process(clk)-variable time_second:integer:=60;variable time_second:=0; begin if(clkevent and clk=1) then -end if; - if(time_second0 and start=) - then tim

11、e_second:=time_second-1; - else time_second:=59; - end if; if(start=0 time_remain0) then -time_remain(3 downto 0)=time_remain(3 downto 0)-start;time_remain(3 downto 0) then -time_remain(7 downto 4)=time_remain(7 downto 4)-start; time_remain(7 downto 4)=time_remain(7 downto 4)-1; time_remain(3 downto

12、 0)=1001; end if; else -if(time_second=0 and time_second=1) if(time_remain=0) then time_is_up= else time_is_up end process;end rtl;-将时序电路的信号翻译library ieee;entity decoder is port( Q1,Q2: in std_logic; REV,RUN,PAUSE: out std_logic-rev,run,pause );end decoder;architecture rtl of decoder is-signal choos

13、e:std_logic_vector(1 downto 0);begin-choose(1)=q1;choose(0)REVRUNPAUSE-end case;-end process;=Q2;=Q1;=not(Q1 OR Q2);entity encode is bcd : in std_logic_vector(3 downto 0); a,b,c,d,e,f,g: out std_logic );end encode;architecture rtl of encode issignal temp:std_logic_vector(6 downto 0); table bcd = tem

14、p; 00001111110 ;00010110000001011011010011111100101000110011010110110110110101111101111110000100011111111111011 end table;a=temp(6);b=temp(5);c=temp(4);d=temp(3);e=temp(2);f=temp(1);g=temp(0);-预置时间与编码寄存电路 library ieee;entity settime is port(load:in std_logic_vector(9 downto 0); o:out std_logic_vecto

15、r(7 downto 0)end settime;architecture rtl of settime is signal p1:std_logic_vector(7 downto 0);process(load) if(loadevent and load= case k is when 1000000000p100000000 end case;o=p1;-时序电路。entity shixu is port(cp,en,rd: q1,q2:out std_logic);end shixu;architecture rtl of shixu isprocess(cp)-variable w

16、ash_time:integer range 0 to 19;-variable wait_time:integer range 0 to 9;variable state:std_logic; variable wash_time:integer := 21;variable wait_time:= 9; begin -if(en=- wash_time:19- wait_time:9- state:- end if;if(en=then wash_time:=21; Q1Q2 then wash_time:=wash_time-1; wait_time:=9; if(wait_time0)

17、- then wait_time:=wait_time-1; else wash_time:=20; state:=not state; if(wash_time=0) then Q1 else if(state=) then Q1 else Q1end if;entity showtime is port(remain_time:in std_logic_vector(7 downto 0); cp:out std_logic;end showtime;architecture rtl of showtime issignal bcd:std_logic_vector(3 downto 0);signal choose: if(cp then choose=not choose; if(choose= then q1q2 bcd=remain_time(7 downto 4); else q1=remain_time(3 downto 0);end process;process(bcd) case bcd iswhen temptemp

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1