单片机两种方式控制步进电机旋转

更新时间:2024-06-20 09:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机课程设计说明书

设计题目 两种方式控制步进电机控制

指导教师: 设计者:

系 别: 机械工程学院 班 级: 学 号:

1

目 录

序言??????????????????????????3 一、步进电机介绍????????????????????4 1.1步进电机的概念?????????????????4 1.1步进电机的特点?????????????????4 二、设计要求及任务???????????????????6 三、设计目的及原理???????????????????6 3.1设计目的?????????????????????6 3.2设计原理?????????????????????6 3.3步进电机工作原理?????????????????7 四、所需设备??????????????????????8 五、设计思路??????????????????????8 5.1提出方案?????????????????????8 5.2方案论证?????????????????????9 六、调试程序??????????????????????10 七、设计程序??????????????????????15 八、总结????????????????????????18 九、参考文献??????????????????????19

2

序 言

单片机技术是计算机技术发展的一个重要分支。由于单片机具有集成度高、体积小、可靠性高、价格便宜等特点,在机电一体化、工业控制、仪器仪表、家用电器、信息和通信产品、军事装备等领域均得到了广泛的应用。而步进电机就是其中的一小部分。

步进电机是把电脉冲信号变换成角位移以控制转子转动的微特电机。在自动控制装置中作为执行元件。每输入一个脉冲信号,步进电动机前进一步,故又称脉冲电动机。步进电动机多用于数字式计算机的外部设备,以及打印机、绘图机和磁盘等装置。 步进电动机的驱动电源由变频脉冲信号源、脉冲分配器及脉冲放大器组成,由此驱动电源向电机绕组提供脉冲电流。步进电动机的运行性能决定于电机与驱动电源间的良好配合。主要用于数字控制系统中,精度高,运行可靠。如采用位置检测和速度反馈,亦可实现闭环控制。步进电动机已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业自动化生产线、印刷设备等中亦有应用。

3

第一章 设计要求及任务

用P1.0-P1.3口控制一台步进电机,用两种方法实现单双八拍控制。晶振频率12Mhz

第二章 所需设备

1、电脑一台

2、52单片机开发系统一块 3、步进电机一个

4、 usb转串口线,电源线

第三章 设计思路

5.1 提出方案

方案一:电机的运转一般由脉冲信号和方向信号来控制的,脉冲的频率控制电机的转速,脉冲的个数控制电机的转角,用单片机控制步进电机,可以用一个输出口发送脉冲:高电平->延时->低电平->延时->......延时的长短控制脉冲的频率,电平的转换次数就是脉冲个数。

因为步进电机的控制室通过脉冲信号来控制的,经电脉冲信号转变为角位移或线位移的开环控制元件,所以怎样产生这个脉冲信

4

号和产生怎样的脉冲信号是电机控制的关键。

5.2 方案论证

用单片机来产生着个脉冲信号,通过单片机的P1口输出脉冲信号,因为所选电机是四相的,所以只需要P1口的低四位P1.0~P1.3分别接到电机的四根电线上。调试好程序之后转盘转动。

单片机的引脚功能: 1)VCC(40):电源+5V。

2)VSS(20):接地,也就是GND。 3)XTL1(19)和XTL2(18):振荡电路。 4)PSEN(29):片外ROM选通信号,低电平有效。

5)ALE/PROG(30):地址锁存信号输出端/EPROM编程脉冲输入端。 6)RST/VPD(9):复位信号输入端/备用电源输入端。

7)EA/VPP(31):内/外部ROM选择 端 8)P09.P1I/0口。 9)P2口。

(21-28):准双向I/0

口口

(39-32):双向I/O口。(1-8):准双向通用

5

步进电机驱动和单片机连线图

第四章 调试程序

1、打开Keil软件,建立一个新工程,单机【Project】在下拉菜单中找到【New project...】选项,如图1所示

图1 建立新的工程组

2、选择工程要保存的路径,并且输入工程文件名。Keil的一个工程里通常含有很多小文件,为了方便管理,一般将一个工程放在一个独立的文件夹下,并且给文件命名,如图2所示。

6

图2 定义工程文件名

3、单击保存后会弹出一个对话框,要求选择单片机的机型,可以根据使用的单片机来选择。Keil C51几乎支持所有的51内核的单片机,在这里选择Atmel的AT89C52,如下图所示,选择后单机保存,如图3所示。

图3 选择单片机的型号

4、完成上一步骤后,窗口界面如图4所示。

7

图4 工程组界面

到此为止,还没建好一个完整的工程,虽然工程名有了,但工程当中还没有任何文件及代码,接下来就是添加文件及代码。 5、单击【File】菜单中的【new】菜单项,或者单机界面上的快捷图标,如图5所示。

图5 新建文件

6、新建文件后的窗口如图6所示。

8

图6 文件界面

7、此时光标在编辑窗口中闪烁,可以输入用户的应用程序,但此时这个新建文件与刚刚建立的工程还没有直接的联系,单机“保存”图标,窗口界面如图7所示。

图7 文件保存到工程组

输入要保存的文件名,同时必须输入正确的扩展名“.a”,然后单击【保存】按钮。

8、回到编辑界面,单机【Target1】前面的“+”号,然后在【Source Goup 1】单击右键,弹出如图8所示的菜单。

9

图8 添加程序至工程

然后选择【Add Files to Group‘Sourse Group 1’】菜单项弹出图9对话框

图9 选择文件

9、选中【Text 1】,单击【Add】按钮,再单击【Close】按钮,然后再单击左侧【Sourse Group 1】前面的“+”,屏幕窗口如图10所示。

10

图10 程序编写界面

10、编写好程序就要进行程序的编译,单机工具栏上的“编译”,在编译的过程中,如果出现错误,修改程序直到没有错误为止,然后一次点击“编译”“调试”,在此过程中出现错误的,也要修改程序直到没有错误为止,编译过程中出现警告一般不必考虑,但特殊时期也要通过修改程序消除警告。

第五章 设计程序

第一种方式

ORG 0000H

LJMP MAIN(跳转到主程序) ORG 0100H(主程序存放地址0100H) MAIN:

MOV SP,#60H ;设置堆栈指针(设置堆栈的长度为60H byte,首先

11

SP是堆栈指针指令,将立即数60H送SP,SP=(60H),即定义栈顶位置为 内部RAM的60H单元)

ACALL DELAY( 调用delay子程序) SMRUN: ;电机控制方式为单双八拍 MOV P1,#08H ;A ACALL DELAY MOV P1,#0CH ;AB ACALL DELAY

MOV P1,#04H ;B ACALL DELAY MOV P1,#06H ;BC ACALL DELAY

MOV P1,#02H ;C ACALL DELAY

MOV P1,#03H ;CD ACALL DELAY

MOV P1,#01H ;D ACALL DELAY

MOV P1,#09H ;DA ACALL DELAY SJMP SMRUN ;循环转动 DELAY: ;延时程序

12

MOV R4,#10 DELAY1: MOV R5,#250 DJNZ R5,$

DJNZ R4,DELAY1(总延时时间:t=2*250*10=5000μs)) RET ; END

第二种方式

ORG 0000H (程序起始位置)

AJMP START (系统复位后跳转向主程序start) ORG 000BH (start的起始地址为00BH) AJMP TT1 (跳转到TT1) ORG 0030H (TT1起始地址0030H) START:

MOV P1,#0FFH (P1口置1)

MOV TMOD,#01H (设置定时器0工作方式为1即16位定时器 ) MOV R2,#08H 08H赋值给R2 MOV R1,#02H 02H赋值给R1 MOV TH0,#0D8H 定时器0高八位初值 MOV TL0,#0F0H 低八位初始值

13

ORL IE,#82H 开启中断 MOV R0,#00H 00H赋值给R0 SETB TR0 启动定时器 LOOP:

MOV A,R0 R0的内容给定时器A

MOV DPTR,#NUM DPTR为间址寄存器 MOVC A,@A+DPTR

CJNE R1,#00H,LOOP 寄存器R1的内容与0比较,不等则跳loop

MOV P1,A 累加器A中的数据传送到p1寄存器,也就是p1端口 MOV R1,#02H

INC R0 加一指令

DJNZ R2,LOOP (R2)-1放入R2,R2-1≠0 SJMP START 跳转到start

NUM:DB 0f1h,0f3h,0f2h,0f6h,0f4h,0fch,0f8h,0f9h TT1: 定时中断程序 CLR TR0 复位定时器T0

DEC R1 寄存器R1减一再放入到R1中 MOV TH0,#0D8H }定时器高八位初值 MOV TL0,#0F0H 定时器低八位初值 SETB TR0 启动定时器T0

14

RETI 中断返回 END

图4.1 主程序流程图

如图所示,在主程序中ADC0809将采集到模拟数据(即电压值,

通过改变电位器来获得不同的电压值)转换为数字量,再将此数字量传给单片机处理。单片机处理后送给数码管显示。

4.2 显示程序设计

15

图4.2显

示程序流程图

如图所示,ADC转换后的数据经过单片机处理后送给数码管显示,单片机首先输出位选指令,选中要显示的那们数码管。然后输出段码指令,输出要显示的数字。依次输出各位要显示的数字、直到各位数字显示完为止。

16

总 结

通过这一学期单片机原理及其应用这门课程和本次课程设计,作为一名大四的学生,我们觉得做单片机的课程设计是十分有意义的,而且是十分必要的。

在课程设计环节中,我们觉得最困难的是程序设计,首先要理解原理,然后进行流程设计,转化为程序,进行调试,我们在调试的时候出现了很多错误,改错的过程是非常痛苦的,好在我们耐心地一一克服了,最后敲定了合理的程序。但问题并没有因此结束,当我们装上步进电机后,能否带动步进电机转起来等等一些列问题让我们感到手足无措,但是在老师的指导下也一一克服了,最后得到了较为满意的结果,在此感谢老师的悉心指导。

还有一点体会就是要养成注释程序的好习惯,一个程序的完美与否不仅是实现功能,而应该让人一看就明白你的思路,这样也为资料的保存和交流提供了方便。通过这次的课程设计,我们懂得了学习的重要性,了解到了理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,相信这些对我们今后的工作与学习都会有很大的帮助。一个团队的合作是完成这次设计的关键,我们通过讨论,研究最佳方案,合理分工,使得这次设计能够较好的完成,在合作中,互相学习,在一起设计中发现自己的不足和缺陷,并一起进步,这也为我们今后的工作积累经验。

17

参考文献

[1] 赵巍 冯娜.单片机基础及应用(第二版),清华大学出版社,2014.

[2] 张毅刚.单片机原理及应用,高等教育出版社,2003. [3] 陈理壁. 步进电机及其应用. 上海科学技术出版社,1989. [4] 刘保延等. 步进电机及其驱动控制系统.哈尔滨工业大学出版社,1997.

[5]王福瑞. 单片微机测控系统设计大全 . 北京:北京航空航天大学出版社,1998.

18

本文来源:https://www.bwwdw.com/article/ir13.html

Top