版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学计算机控制技术课程设计学 号: 0121111360529课 程 设 计题 目二相步进电机控制系统的设计学 院自动化学院专 业自动化班 级自动化1105姓 名邹唯指导教师张素文2014年7月3日课程设计任务书学生姓名: 邹唯 专业班级: 自动化1105班 指导教师: 张素文 工作单位: 自动化 题 目: 二相步进电机控制系统的设计初始条件: 设计一个二相步进电机控制系统,电机有两组带中心抽头的线圈,要求系统具有如下功能:采用单极性控制,用K0-K2做为通电方式选择键,K0为四相单四拍,K1为四相双四拍,K2为四相八拍;K3为启动/停止控制、K4方向控制;用4位LED数码管显示工作步
2、数。用3个发光二极管显示状态:正转时红灯亮,反转时黄灯亮,不转时绿灯亮。要求完成的主要任务: 1 硬件设计:系统总原理图及各部分详细原理图2 软件设计:系统总体流程图、步进电机四相单四拍,四相双四拍,四相八拍各模块流程图、显示模块流程图等3 编写程序:能够完成上述任务4 完成符合要求的设计说明书时间安排:2014年6月25日2014年7月4日6月25-26 查阅相关资料;6月27-7月2 课程设计 7月3 撰写课程设计报告7月4 课程设计答辩指导教师签名: 14年 6月25日系主任(或责任教师)签名: 年 月 日目录摘要11任务分析21.1设计任务21.2分析思路 22 总体方案设计与比较32
3、1 方案一322 方案二323 模块选择比较423.1 单片机的选择比较423.2 驱动模块的选择比较524最终方案的确定63 系统设计原理74 硬件设计84.1 AT89C51单片机设计分析84.2二相步进电机设计分析 104.3驱动电路ULN2003a设计分析 124.4 四位LED数码管显示电路 134.5按键电路 145 软件设计 155.1软件总流程图 155.2步进电机转动流程及软件设计 155.3显示模块流程及软件设计 196 仿真结果分析 21心得体会23参考文献24致谢25附录一26附录二27成绩评定表35摘要 本次课程设计主要研究讨论的是在Proteus软件帮助下以AT89
4、C51单片机为核心辅以驱动电路完成对二相步进电机控制系统的设计,同时又要通过按键来驱动电路达到规定的运行条件。本次设计的硬件部分主要包括单片机系统、按键控制模块、步进电机驱动模块、数码显示模块等功能模块的设计。软件部分由几个模块控制子程序分别控制硬件模块的运行最终实现对步进电机转动方向及转动模式单四拍双四拍八拍的控制并且将步进电机的步进数动态显示在LED数码管上。由于AT89C51单片机还要编程并录入才能正常工作,因此本次设计中我们还用到了Keil uvision这一编程软件,并通过Proteus与Keil uvision的联合仿真,来进一步验证系统设计中软件和硬件的可行性。 在本文中我首先进
5、行了方案比较及优缺点比较,并陈述了系统设计方案和基本工作原理。其次对硬件电路设计部分进行了设计原理的介绍,然后对软件程序作了详细的设计说明,分为几个模块来阐述。最后,在Proteus中进行了仿真从而实现了对步进电动机控制系统的设计。该论文也记录了作者在课程设计中思考设计中的收获和在仿真调试中所遭遇的问题以及最终如何让解决的应对策略。关键词:Proteus Keil uvision AT89C51 二相步进电机 联合仿真1任务分析1.1设计任务 设计一个二相步进电机控制系统,电机有两组带中心抽头的线圈,要求系统具有如下功能:采用单极性控制,用K0-K2做为通电方式选择键,K0为四相单四拍,K1为
6、四相双四拍,K2为四相八拍;K3为启动/停止控制、K4方向控制;用4位LED数码管显示工作步数。用3个发光二极管显示状态:正转时红灯亮,反转时黄灯亮,不转时绿灯亮。1.2分析思路根据设计任务可知,系统中必须有一个单片机以控制数码管、LED灯、二相步进电机等硬件。而且,该单片机必须可以写入控制程序并可调试。其次,我们要在硬件系统中加入按键电路,以便我们作为通电方式选择键和起停按钮。最后,我们需要四位LED数码管和三个发光二极管显示状态。软件方面则需要编写数码管显示函数、电机运转函数、按键检测函数、延时程序、中断函数、初始化函数及主函数,用以分别控制四位LED数码管,二相步进电机起停、通电方式及正
7、反转和三个发光二极管。根据任务要求,二相步进电机包含二相五线、二相六线式两种类型,二相步进电机要实现四相单四拍、四相双四拍、四相八拍的运行方式,需将二相步进电机改接成四相步进电机,为此选定二相六线式步进电机,接线时将两个中心抽头接为高电平即可将其改为四相电机。四相单四拍通电方式:A-B-C-D。四相双四拍通电方式:AB-BC-CD-DA。四相八拍通电方式:A-AB-B-BC-C-CD-D-DA。控制芯片选用单片机控制相应的I/O口输出相应的电平驱动电机驱动芯片ULN2003驱动步进电机的转动。LED数码管显示工作步数时则需先选定某一个数码管工作,再给选定的数码管送要显示的数据。正传、反转、不转
8、时指示灯的显示可以通过K3(启动/停止控制键)、K4(方向控制键)硬件来控制,亦可以通过单片机输出高低电平,在软件中控制。2总体方案设计与比较2.1方案一本方案以单片机80c52为核心进行设计,单片机与按键、数码管、发光二极管、L298驱动模块相连接且人为操作按键使之在程序控制下令单片机通过驱动模块控制步进电机转动,并使数码管和二极管分别显示步进电机的工作步数和状态。本方案的硬件部分主要包括单片机系统、按键控制模块、步进电机驱动模块、数码显示模块等功能模块。软件部分由几个模块控制子程序分别控制硬件模块的运行,最终实现对步进电机转动方向及转动模式单四拍双四拍八拍的控制并且将步进电机的步进数动态显
9、示在LED数码管上。数码管显示步数步进电机按键52单片机L298LED灯显示 图1 方案一流程图2.2方案二本方案以单片机80c51为核心进行设计,单片机与按键、数码管、发光二极管、ULN2003a驱动模块相连接且人为操作按键使之在程序控制下令单片机通过驱动模块控制步进电机转动,并使数码管和二极管分别显示步进电机的工作步数和状态。本方案的硬件部分主要包括单片机系统、按键控制模块、步进电机驱动模块、数码显示模块等功能模块。软件部分由几个模块控制子程序分别控制硬件模块的运行,最终实现对步进电机转动方向及转动模式单四拍双四拍八拍的控制并且将步进电机的步进数动态显示在LED数码管上。由于AT89C51
10、单片机还要编程并录入才能正常工作,因此本次设计中我们还用到了Keil uvision这一编程软件,并通过Proteus与Keil uvision的联合仿真,来进一步验证系统设计中软件和硬件的可行性。数码管显示步数步进电机按键AT89C51单片机ULN2003aLED灯显示 图2 方案二流程图2.3模块选择比较2.3.1单片机的选择比较51单片机是对所有兼容Intel8031指令系统的单片机的统称,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力,因此本次设计不予考虑5
11、2系列单片机。51单片机采用高性能的静态80C51设计,由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12时钟和6 时钟操作 P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口可用于多机通信 I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0,可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作掉
12、电模式保存RAM的内容,但是冻结振荡器导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复。目前市场上常用的单片机有INTEL、ATMEL等公司的mcs-51系列、INTEL公司的251系列、96系列、ATMEL公司的AVR系列等。MCS-51系列运算与寻址能力强、存储空间大、片内集成外设丰富、功耗低等。其中大部分兼容芯片有Flash,价格便宜、常用于仪器仪表、测控系统、嵌入式系统开发。251系列和96系列具有比c51更强的寻址能力、没有累加器的瓶颈限制、有32位元的加减法指令、并且有更大的存储空间、应用于复杂的控制系统、嵌入式系统。AVR系统是基
13、于RISC结构的Flash单片机,其最大的特点是能够在线编程。 比较这三种类型的单片机,首先AVR主要应用于家电视讯设备侧重于在线编程与设计需要相差稍远。251系列、96系列存储空间大,寻址能力也更强,适用于较为复杂的系统。但成本也相对较高,本系统较为简单,使用此系列有些大材小用。MCS-51系列单片机以抗干扰能力强、对环境要求不高、灵活性强等别的系统所不具备的优点被广泛使用。即使非电子计算机专业人员通过学习一些专业基础知识以后也能依靠自己的技术力量来开发所希望的单片机应用系统。由于本次设计的所要实现的功能并不复杂鉴于成本考虑选用便宜而常用的MCS-51系列较为合适。本次设计采用其中低功耗型8
14、0C51单片机。2.3.2驱动模块的选择比较在本次设计中,作者考虑了两种芯片,即是ULN2003a和L298。刚开始选用的是L298,L298是一款单片集成的高电压、高电流、双路全桥式电机驱动,设计用于连接标准TTL逻辑电平,驱动电感负载(诸如继电器、线圈、DC和步进电机)。L298提供两个使能输入端,可以在不依赖于输入信号的情况下,使能或禁用L298器件。L298低位晶体管的发射器连接到一起,而其对应的外部端口则可用来连接一个外部感应电阻。L298还提供一个额外的电压输入,所以其逻辑电路可以工作在更低的电压下。而ULN2003是一种高耐压、大电流的达林顿陈列,由七个NPN达林顿管组成,每一对
15、达林顿都串联一个2.7K的基极电阻,在5V的工作电压下与TTL和CMOS电路直接相连,可以直接处理需要标准逻辑缓冲器来处理的数据。利用高耐压、大电流的达林顿陈列的ULN2003a可以直接与负载电机相连接,并驱动步进电机,电机的转动精度可以由机械设计与单片机的程序来保证。该芯片在5V的工作电压下与TTL和CMOS电路直接相连,可以保证负载电流的供给,同时也减少其它驱动芯片容易被烧毁的事故。该设计能够保证控制电机转动的精度达到0.01度,而且在一周时间内运行误差不发生积累。并且该芯片相对于L298要少连接一个高电平,相对方便。2.4最终方案的确定由于本次设计的所要实现的功能并不复杂鉴于成本考虑选用
16、便宜而常用的MCS-51系列较为合适。本次设计采用其中低功耗型80C51单片机。ULN2003a能够保证控制电机转动的精度达到0.01度,而且在一周时间内运行误差不发生积累。并且该芯片相对于L298要少连接一个高电平,相对方便。经过以上的比较,最终认为以89c51为单片机核心,而以ULN2003a芯片为驱动电路,配合五个按键,三个LED灯,一个二相步进电机,一个四位数码管组成电路。所以我们选择方案二作为最终方案。3系统设计原理本次课程设计系统以单片机89c51为核心进行设计,单片机与按键、数码管、发光二极管、L298驱动模块相连接且人为操作按键使之在程序控制下令单片机通过驱动模块控制步进电机转
17、动,并使数码管和二极管分别显示步进电机的工作步数和状态。本次设计的硬件部分主要包括单片机系统、按键控制模块、步进电机驱动模块、数码显示模块等功能模块。软件部分由几个模块控制子程序分别控制硬件模块的运行,最终实现对步进电机转动方向及转动模式单四拍双四拍八拍的控制并且将步进电机的步进数动态显示在LED数码管上。本系统以单片机80c51为核心的控制系统,由P1口进行开关按键的设置,具体为:P1.0接K0四相单四拍通电方式,低电平使电机四相单四拍运转;P1.1接K1四相双四拍通电方式,低电平使电机四相双四拍运转;P1.2接K2四相八拍通电方式,低电平使电机四相八拍运转;P1.3接K3启动/停止开关,高
18、电平为停止,低电平为启动;P1.4接K4正/反转开关,高电平为反转,低电平为正转。 P2口与P0口外接4位LED数码管,显示步进步数。具体接线方式见图3,通过控制P2口的电平信号,达到片选的目的,进而实现4位数值的显示。P0口作为输出口外接负载。 P3外接驱动电路ULN2003a的4个输入端,具体为:P3.0接IN1,P3.1接IN2,P3.2接IN3,P3.3接IN4。这样即可通过控制单片机的P2口输出电平来实现二相步进电机的启动及停止和正反转以及单四拍,双四拍,八拍运转。另外P3.4接绿色发光二极管,使其在电机停转时亮;P3.5接红色发光二极管,使其在电机正转时亮;P3.6接黄色发光二极管
19、,使其在电机反转时亮。具体工作过程需通过对单片机编程来实现。 图3 系统电路原理图4硬件设计4.1 AT89C51单片机设计分析下图为AT89C51的管脚图:图4 AT89C51的管脚图AT89C51其主要结构组成如下:(1)中央处理器(CPU) (2)内部数据存储器(内部RAM) (3)内部程序存储器(内部ROM) (4)定时器/计数器 (5)并行I/O口 (6)串行口 (7)时钟电路 (8)中断系统 (9)外接晶体引脚以下为各管脚的作用:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0
20、能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时
21、,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P
22、3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据 存储器写选通)P3.7 /RD(外部数据 存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率
23、的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/E
24、A将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4.2二相步进电机设计分析二相六线式步进电机有2个绕组,且每个绕组都有一个中间抽头。因
25、此,二相步进电机也就有了6根引线。当电机中的绕组通电后,其定子磁极产生磁场,将转子吸合到相应的磁极处。若绕组在控制脉冲的作用下,通电方向使定子在顺时针方向轮流产生磁场,则电机可顺时针转动。通电方向使定子在逆时针方向轮流产生磁场,则电机可逆时针转动。控制脉冲每作用一次,通电方向就变化一次,使电机转动一步,即一个步距角。脉冲频率越高,电机转动也就越快。本次课设所使用的二相步进电机需要采用单极性的接法。单极性则是指步进电机线圈中电流的流动方向是单向的。单极性驱动电路可以六线式的二相步进电机。对于二相六线式步进电机而言, 2个绕组的中间抽头Vdd1和Vdd2都接高电平。根据步进电机的工作原理,当控制器
26、给驱动器发出脉冲信号时,驱动器经过功率放大后,电机绕组通电的顺序为A B ,其4个状态按顺序周而复始进行变化,电机转动; 若通电时序就变为 BA时,电机就逆向转动。任务要求需要对二相步进电机进行四相单四拍、四相双四拍和四相八拍的控制。其三者的区别在于通电时序的不一样.四相单四拍的通电方式为A B ,而四相双四拍的通电方式为ABB A。四相八拍需要在此基础上进行细分,在中间插入其通电方式为:A AB B B A。通电方式如下表所示: 表1 步进电机四相单四拍控制通电方式时序单片机管脚位通电的线圈对应二进制数转换十六进制数P1.3P1.2P1.1P1.0 1 0 00 1 A 0001 01H 2
27、 0 100 B 0100 04H 3 0 0 10 0010 02H 4 1 000 1000 08H表2 步进电机四相双四拍控制通电方式时序单片机管脚位通电的线圈对应二进制数转换十六进制数P1.3P1.2P1.1P1.0 10101 0101 AB05H 20110 0110 B 06H 31010 1010 0AH 410011001 A 09H表3 步进电机四相八拍控制通电方式时序单片机管脚位通电的线圈对应二进制数转换十六进制数P1.3P1.2P1.1P1.0 1 0 0 0 1 0001 A 01H 20 1 0 1 0101 AB 05H 3 0 1 0 0 0100 B 04H
28、4 0 1 1 0 0110 B 06H 5 0 0 1 0 0010 02H 6 1 0 1 0 1010 0AH 7 1 0 0 0 1000 08H 8 1 0 0 1 1001 A 09H 根据上述表格,我们可以通过控制I/O口的高低电平从而达到控制步进电机四相单四拍、四相双四拍和四相八拍运转。编写程序时,只要编写好表格中的控制字,即可达到任务书中的要求。4.3驱动电路ULN2003a设计分析 单片机I/O口与ULN2003a连接,即是INPUT1, INPUT2, INPUT3, INPUT4与P3.0,P3.1,P3.2,P3.3相连。 在将ULN2003a与步进电机相连接时,是将
29、OUT1,OUT2,OUT3,OUT4分别与A,B, ,连接。如下图所示: 图5 驱动电路ULN2003a接线图4.4四位LED数码管显示电路 根据任务书要求采用四位LED数码管来显示工作步数,本次设计中选用的是7SEG-MPX4-CA共阳极数码管(红色)。同时,为了防止电流过大,烧毁数码管,在单片机C51与数码管之间加上了一个排阻RX8。如下图所示:图6 四位数码管显示电路接线图单片机I/O口接管脚ABCDEFG及DP,P2口接片选端口1234,输入信号与显示数值的关系如下表所示: 表4 七段数码管信号表 单片机管脚输入显示十六进制P0.0P0.1P0.2P0.3P0.4P0.5P0.6A
30、B C D E F G 0 0 0 0 0 01 0 C0H 1 0 0 1 1 1 1 1 F9H 00 1 0 0 1 0 2 A4H 0 0 0 0 1 1 0 3 B0H 1 0 0 1 1 0 0 4 99H 0 1 0 0 1 0 0 5 92H 1 1 0 0 0 0 0 6 82H 0 0 0 1 1 1 1 7 F8H 0 0 0 0 0 0 0 8 80H 0 0 0 0 1 0 0 9 90H 所以在程序设计中,七段数码管显示数组为:Seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x904.5按键电路按键部分电路:P1.
31、0接K0,P1.1接K1,P1.2接K2,P1.3接K3,P1.4接K4;按键均串联一个电阻后并联,接上独立直流电源。一旦某一按键按下后,按键电路的该支路电路导通,P1口对应某一端口检测到高电平,相应程序输出命令,完成动作。按键电路如下图所示:图7 按键电路接线图5软件设计5.1软件总流程图本次程序设计的思想单片机通过查询方式读取按键的状态来产生相应的控制输出量,以驱动步进电机旋转和数码管显示工作步数。 具体过程如下:单片机先初始化其各个端口,准备好读取按键电路的状态变化。当启动键按下时,单片机继续等待工作方式、步进方向选择键的状态变化,如果方向键按下,K0键(单四拍)按下,则单片机内部程序将
32、执行相应的操作步进电机以单四拍方式运转并且数码管显示工作的步数。同理K1键(双四拍)或K2键(八拍)按下,则步进电机将以相应的方式旋转。若启动键K3按下以后,没有其他键按下,则单片机将会继续等待其他按键的操作,直至有按键按下才会引起相应的操作。电机运转的过程中,如果停止键按下,则单片机不再给电机和数码显示管送出脉冲,电机停转,数码管停止显示工作步数。如果停止键没有按下,则步进电机、数码管继续先前的工作方式运行,直至有其他按键按下改变或停止其运行方式。系统总流程图如下:5.2步进电机转动流程图及软件设计开始检测按键启动键K3是否按下NY检测按键,存入TEMP方式键是否按下?通电方式键是否按下?N
33、YWay=0,电机正转MODE=1?MODE=2?MODE=3?四相双四拍Way=1,电机反转四相单四拍四相八拍NNYYYYN结束图8 步进电机转动流程设计与分析开始 K3闭合K4闭合绿灯亮红灯亮黄灯亮工作方式键(K0,K1,K2)按下?电机按选定方式运行,数码管从0开始记步数K3打开K4打开电机改变转动方向绿灯亮,电机停,数码管停止计数结束RST键按下?YNYNY图9 系统总流程图Y/*电机运转函数*/ void Motor() if(Move=1) if(Delay=1) Delay=0; if(Way=0) switch(Mode) /*电机步进拍数表数据送到电机控制口,判断一周拍数是否
34、完成,步数加1*/ case 1:MotorData=PositiveSingleFourFlag+;if(Flag>=4) Flag=0;Step+;break; case 2:MotorData=PositiveDoubleFourFlag+;if(Flag>=4) Flag=0;Step+;break; case 3:MotorData=PositiveEightFlag+;if(Flag>=8) Flag=0;Step+;break; default: ; else switch(Mode) case 1:MotorData=NegitiveSingleFourFla
35、g+;if(Flag>=4) Flag=0;Step+;break; case 2:MotorData=NegitiveDoubleFourFlag+;if(Flag>=4) Flag=0;Step+;break; case 3:MotorData=NegitiveEightFlag+;if(Flag>=8) Flag=0;Step+;break; default: ; else MotorData=0xef; LedGreen=0; 以上为步进电机转动程序。Move=1是判断电机是否启动。Delay=1是判断是否到延时。if(Way=0)和else是判断电机是正转还是反转。
36、switch(Mode)是再判断通电控制方式MODE=?,若MotorData=0xef;则电机停转,绿灯亮。5.3显示模块流程及软件设计图10 显示模块流程图以下为显示模块的程序:/*数码管显示函数*/ void Display(uint Num) uchar Qian,Bai,Shi,Ge; Qian=Num/1000; Bai=(Num/100)%10; Shi=(Num/10)%10; Ge=Num%10; /分离出每一位; SegData=SegQian; Wela1=1; DelayMs(2); Wela1=0; SegData=SegBai; Wela2=1; DelayMs(2
37、); Wela2=0; SegData=SegShi; Wela3=1; DelayMs(2); Wela3=0; SegData=SegGe; Wela4=1; DelayMs(2); Wela4=0; LED数码管有4个管脚读入片选信号,8个管脚读入控制信号。本部分程序首先要对当前的步数值进行位数分离,将个、十、百、千位分别提取出来,然后通过片选信号选择位数读入控制字,依次进行显示。由于单片机的计算过程非常快,我们还设置了延时程序,所以看起来各位是同时显示的。6仿真结果分析在利用Keil软件编程过程中发现不能生成.hex文件以致程序不能导入单片机中,反复试了几次后发现是由于在Keil编程时
38、没有在“输出标签页”中点选“E生成.HEX文件”,而要想做硬件实验,就必须点中该选项,才能编译生成.HEX文件,再用编程器把可执行代码文件写入单片机。值得注意的是,在生成该文件过程时,生成速度很慢,要耐心的多刷新几次文件夹才能找到该文件。在利用Proteus进行硬件设计时,发现按下K3,选择好通电控制方式后,不管是按下K0.K1还是K2,步进电机一直在左右摇摆,而不是顺着要求的方向转动,经过排查后发现是ULN2003a的OUTPUT端的线与步进电机的四个接线口连接顺序错误导致左右摇摆,重新接线后电机正常运作。以下是电机运转的仿真图:图11 系统启动图图12 系统启动后电机反转图图13 系统启动
39、后电机正转图 心得体会这一次课程设计学习,让我深感受益匪浅。此次课程设计是基本依赖于我们自学,和创造性设计的过程,在设计过程中我们学到了,很多课堂上没有接触到的东西,并且在创造性学习设计的过程中也进一步的巩固加深了课堂知识的理解与应用。本次课程设计我们的选题是二相步进电机控制系统的设计。对于这样一个合了多门学科知识的课题我有很大的兴趣,所以我投入了很多的时间和精力去完成这个设计。因为之前基本上没有接受过相关的培训和学习,所以在设计过程中阻力是很大的,全部都是依赖于自学和创造性设计,仅仅只是联系课本的知识很难去完成此次设计。我在设计过程中经历了一段迷茫期,不知道从何处下手去做,而这些很多课堂上没
40、有接触到的东西比如Keil还有单片机中的编程问题。本文分析了二相步进电机和51单片机的工作原理,并将它们结合起来进行研究。本次设计与以往最为不同之处即是本次设计必须由软件与硬件相结合,并通过Proteus与Keil联合使用才能完成设计,因此是一大突破。这次课程设计,我个人感觉获益匪浅,不仅通过这次课程设计加深了对书本理论知识的理解,更通过自己的亲身实践,对书本知识在实践中的应用有了更深的认识。除此之外,通过此次课程设计学习,让我对设计软件的了解掌握也有了很大的提高,例如Proteus与Keil在此次设计中帮到很大忙。通过它们我们可以进行电路仿真,软件编程,检验设计的正确性。在设计的过程中,我遇
41、到了一些难题,例如软件操作问题,。但我通过在图书馆找相关资料还有上网查看相关教程,这些问题都一一得到了解决。通过此次设计,我已经意识到了仅仅学习理论知识是远远不够的,第一是因为即使学了理论知识却不用于实践也不等于完全掌握了这些知识,并且很容易遗忘。第二是因为在以后的学习中我们将要越来越重视实践能力和动手能力,而光靠理论知识明显是不足以锻炼出这些能力的;第三是以后工作了我们要想科技创新,设计出自己的作品,就必须有超强的创新思维和独立思考能力。所以从现在开始我们就要学会通过自学解决问题的方法与途径,为日后进一步的加强学习打下了良好基础。 参考文献1 刘教瑜 曾勇. 单片机原理及应用.武汉:武汉理工
42、大学出版社,2011.2 赵德安,等. 单片机原理及应用.西安:西安电子科技大学出版社,2009.3 张克彦. AVR单片机实用程序设计.北京:北京航空航天大学出版社,2004.4 夏路易. 单片机原理及应用-基于51与高速Soc51.北京:电子工业出版社出版社,2010.5 于海生. 计算机控制技术.北京:机械工业出版社,2007. 致谢本次课程设计能够顺利的进行下去,首先就应该感谢我们的指导教师张素文老师,她牺牲自己宝贵的时间为我们这些同学提供帮助并细心的答疑解惑,花费了很多时间一页一页的修改论文,耐心的指出我们的课程设计的不足之处并就此为我们的下一步指明方向。其次,要感谢和我同一寝室的几
43、位同学。她们不仅与我一起辛苦泡在图书馆做课程设计,晚上回寝室还要就我们各自的设计进行讨论。尽管我们的课程设计的题目都不一样,但是身边同学的刻苦努力时刻激励着我要认真积极的完成课程设计任务。我有不懂得问题与她们互相交流一下,往往就有意想不到的收获。最后,更要感谢我所查阅的资料的作者们,没有那些详细的讲解和知识点,我绝不会得到那么多收获。同时也要感谢网上一些热心的人提供的资料书籍,让我在没有思路时有能够学习点拨借鉴的余地。附录一系统程序电路图:附录二程序清单: /*/ /* 步进电机程序 */ /*P10为四相单四拍P11为四相双四拍P12为四相八拍 */ /*P13为启动/停止控制、P14方向控
44、制、P15加速、P16减速 */ /*用4位LED数码管显示工作步数。 */ /*用3个发光二极管显示状态 */ /*正转时红灯亮,反转时黄灯亮,不转时绿灯亮 */ /*/ #include<reg51.h> #define uchar unsigned char #define uint unsigned int #define SegData P0 /数码管数据口 #define KeyData P1 /按键控制数据口 #define MotorData P3 /电机控制数据口 sbit Wela1=P20; /数码管位选1 sbit Wela2=P21; /数码管位选2 sb
45、it Wela3=P22; /数码管位选3 sbit Wela4=P23; /数码管位选4 sbit LedGreen=P34;/控制绿灯-停止 uchar PositiveSingleFour=0xd1,0xd4,0xd2,0xd8; /步进电机正相单四拍数表; uchar PositiveDoubleFour=0xd5,0xd6,0xda,0xd9; /步进电机正相双四拍数表; uchar PositiveEight=0xd1,0xd5,0xd4,0xd6,0xd2,0xda,0xd8,0xd9;/步进电机正相八拍数表; uchar NegitiveSingleFour=0xb1,0xb8,0xb2,0xb4; /步进电机反相单四拍数表; uchar NegitiveDoubleFour=0xb9,0xba,0xb6,0xb5; /步进电机反相双四拍数表; uchar NegitiveEight=0xb1,0xb9,0xb8,0xba,0xb2,0xb6,0xb4,0xb5;/步进电机反相八拍数表; uchar Seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳极数码管显示数码uchar Flag=0; /用来控制拍数循环 uchar Mode=0; /用来标志工作模式uchar Wa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度文化遗址场地保护与利用合同协议书3篇
- 专业拓展训练合作合同书2024版版B版
- 2024离婚双方房产分割及过户操作补充合同版B版
- 2024综合授信额度合同及分期贷款细则版B版
- 2025年度厂房租赁及品牌授权合作协议3篇
- 2025年度工业厂房拆除及重建合同范本4篇
- 2025年度商业地产项目场地借用合同样本3篇
- 2025年度数字化工厂搬迁工程合同范本4篇
- 油品基础知识培训课件
- 2024版室内粉刷工作班组劳动协议样本版B版
- GB/T 20840.8-2007互感器第8部分:电子式电流互感器
- GB/T 14864-2013实心聚乙烯绝缘柔软射频电缆
- 品牌策划与推广-项目5-品牌推广课件
- 信息学奥赛-计算机基础知识(完整版)资料
- 发烟硫酸(CAS:8014-95-7)理化性质及危险特性表
- 数字信号处理(课件)
- 公路自然灾害防治对策课件
- 火灾报警应急处置程序流程图
- 耳鸣中医临床路径
- 安徽身份证号码前6位
- 分子生物学在动物遗传育种方面的应用
评论
0/150
提交评论