文档库 最新最全的文档下载
当前位置:文档库 › 单片机控制步进电机(带加减速控制)

单片机控制步进电机(带加减速控制)

重庆三峡学院

课程设计报告书题目:步进电机控制系统的设计

学院(系):应用技术学院

年级专业: 08级电信(仪器仪表)

学号: 200815194112

学生姓名:曾伟

指导教师:谢辉

教师职称:副教授

完成日期2011年1月5日

目录

1、设计任务 (1)

2、设计方案论证 (1)

2.1 方案一 (1)

2.2 方案二 (1)

2.3 方案确定 (1)

3、硬件系统设计 (2)

3.1 单片机最小系统 (2)

3.2 驱动电路 (3)

3.3 正反转控路制及速度调节电 (4)

3.4 步进电机原理 (4)

4、软件系统设计 (6)

4.1 软件设计分析 (6)

4.2 软件设计流程图 (7)

4.3 P1口输出信号 (7)

4.4 步进电机加/减速控制程序 (8)

5、硬件仿真 (10)

6、设计体会 (11)

7、参考资料 (11)

附录 (12)

附录1:硬件原理图 (12)

附录2:PCB图 (13)

附录3:程序清单 (13)

附录4:元件清单 (17)

步进电机控制系统的设计

重庆三峡学院应用技术学院08电子信息工程(仪器仪表)曾伟

摘要:设计一个基于单片机的步进电机控制器。主要包括AT89S52单片机、复位电路、驱动控制芯片74LS240和75452及速度控制及正反转等。通过拨码开关进行步进电机的启动、速度控制、正反转控制、以及加/减速控制,可以进行多级调速,范围从4Hz到400Hz,控制方式比较简单,步进电机运行平稳,基本上无失步发生,系统设计可以用于数控机床、纺织机械等高精度步进控制系统中,具有一定的实用价值。

1、设计任务

设计一个步进电机驱动控制系统,要求有正反转控制和八级速度控制,而且在启动、停止、转向的的时候均有加/减速控制,能较好的消除振荡与失步现象。

2、设计方案论证

2.1 方案一

按系统功能实现要求,决定控制系统采用A T89S52单片机,用75452BP和74LS04P作为步进电机的驱动电路,拨码开关来控制步进电机的启动、停止、正反转和8级速度控制,2.2 方案二

从键盘上输入数字使显示器显示,第一位为0(正转),为1(反转),第二位0~F显示转速,第三~六位为设定步数,按F0/EX键后,步进电机开始转动,步数逐渐减小到零时步进电机停止转动。

2.3 方案确定

方案一较方案二更容易实现、结构也相对简单,对初学者来说也是一个不错的选择。本次实训时间上也比较紧,因此经小组共同讨论决定采用方案一,根据各芯片的功能及特点,绘制出如下框图:

图1 总体设计框图

3、硬件系统设计

3.1 单片机最小系统

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

图2 单片机最小系统

功能特性概述:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

本次实训只用到了P1、 P3相关接口。各接口功能如下:

P1口:是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(In)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。

P3口:是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或

输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为

输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口

线外,更重要的用途是它的第二功能端口引脚

RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。

XTAL1:振荡器反相放大器的内部时钟发生器的输入端。

XTAL2:振荡器反相放大器的输出端。

3.2 驱动电路

图3 驱动电路

SN74LS240N是一个8反向三态/线驱动器,本电路只采用其中4路作为反相器。

SN75452BP是一个双外设备驱动器,其特点是输出电流比较大,带负载能力比较强,本电路采用两个芯片。

3.3 正反转控路制及速度调节电

图 4 正反转;;控制及速度调节电路

P3.2 启动停止开关,P3.3 正反转控制开关, P3.4~P3.6 速度调节开关,八级调速

3.4 步进电机原理

步进电机如同普通电动机一样,也有转子、定子和定子绕组。定子绕组分为若干相,每相的磁极上有极齿,转子在轴上也有若干个齿。 四相步进电机的正反转控制如下:

图5 步进电机原理图

该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。

图6 四相步进电机步进示意图

开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B 相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方转动。

4、软件系统设计

4.1 软件设计分析

加速度有两中方案:线性加/减速度控制和等步距加/减速度控制。前者规定从加速度开始,每一加速度周期指令电机速度递增相同的增量△f;后者则是要求每一加速度周期电机走过相同的步数。等步距加/减速度控制的优点,在于加/减过程中电机走的步数可以非常精确的计算,这一点对于加/减的位置控制非常重要,但从电机要克服惯性力来看,线性加速方案好些。

图7 步进电机转速-时间图

上图为速度——时间图,横轴为时间,纵轴为速度,开始启动时,速度随时间变化上升,然后达到最大速度进行匀速转动,当停止时,步进电机不是马上停止转动,而是进行减速转动,直到速度为零。

4.2 软件设计流程图

4.3 P1口输出信号

4.4 步进电机加/减速控制程序

;----------- -------------------------正转加速-----------------------------------------

DOJ1: MOV R2,#1

DOJ11:MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB2

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

INC R2

CJNE A,#0FFH,DOJ11

采用查找表法,采用90拍加速,程序台多,所以表格在最后的程序中给出,上段程序为正转加速程序。

;------------------------------------正转减速-----------------------------------

JIANSU: MOV R2,#1

DOJ12:MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB3

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

INC R2

CJNE A,#0FFH,DOJ12

;-------------------------------------反转加速-------------------------------------------

DOJ2: MOV R2,#16

DOJ21: MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB3

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

DEC R2

CJNE A,#00H,DOJ21

;---------------------------------------反转减速-------------------------------------------- JIANSU2: MOV R2,#90

DOJ22: MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB2

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

DEC R2

CJNE A,#00H,DOJ22

MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#0CH

;----------------------------加速和减速延时程序--------------------------------- DEL1: MOV R7,#0FAH

DJNZ R7,$

DJNZ R6,DEL1

RET

;---------------------------匀速延时程序------------------------------------

DEL0Y: MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#70H ;读p3.4-p3.6

SW AP A

MOV R5,A ;根据p3.4-p3.6计算延时

DEL1Y: MOV R7,#0FAH

DJNZ R7,$

DJNZ R5,DEL1Y

RET

5、硬件仿真

本次实训是以DICE-598K3型多合一试验箱为基础设计的步进电机控制系统,所以硬件仿真也是在DICE-598K3型多合一试验箱上完成的下图为试验箱上的接线图。

6、设计体会

通过近两周的课程设计,我学到了很多东西,也知道了要想学到有用的知识,在上课时间学到的很少,学到有用的东西都是在工程实践中学习,我们一直都说要锻炼自己的动手能力,其实不是说老师怎么说你就怎么去做,而是在工程实践中发现问题,然后不断的去解决问题。

在一个设计项目中都是一个团队协作,一个人的能力和知识都是有限的,要有较强的团队协作精神,组员之间互补,在课程设计的过程中,我们遇到过很多困难,包括步进电机的最高频率、程序优化等知识,但是我们通过网上找资料,图书馆查资料,请教老师,然后一个一个的去解决,感觉自己有很多收获。

在这个过程中,老师的付出最多,给我们指导,为我们讲解,给我们检查错误,在此表示感谢,这次课程设计非常成功。

7、参考资料

谢辉.单片机原理及应用[M]..北京:化学工业出版社,2010

杨居义.单片机课程设计指导书[M]..北京:清华大学出版社,2009

张永枫.单片机应用实训教程[M]..北京:清华大学出版社,2008

姜志红.51单片机技术与应用系统开发案例精选.[M]..北京:清华大学出版社,2008

张荫等.单片机应用系统开发综合实例. [M].北京:清华大学出版社,2008

戴仙金.51单片机及其C语言程序开发实例.[M]..北京:清华大学出版社,2008

附录

附录1:硬件原理图

附录3:程序清单

;P3.2为启动信号,为1启动;P3.3为正反转控制信号。=1:正转;=0:反转ORG 0

LJMP XX

ORG 0030H ;初始化

XX: MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#0CH

JNB P3.2,$ ;读p3.2是否启动

JNB P3.3, DOJ2 ;读p3.3,控制正反转

;---------- -------------正转加速-----------------------------------------

DOJ1: MOV R2,#1

DOJ11:MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB2

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

INC R2

CJNE A,#0FFH,DOJ11

;------------------------正转匀速-------------------------------------

LOOP:MOV P1,#0FCH

LCALL DEL0Y

MOV P1,#0F9H

LCALL DEL0Y

MOV P1,#0F3H

LCALL DEL0Y

MOV P1,#0F6H

LCALL DEL0Y

MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#0CH

JNB P3.2, JIANSU ;读p3.2看是否停止

JB P3.3,LOOP ;读p3.3是正转还是反转?

;--------------------------- -正转减速----------------------------------- JIANSU: MOV R2,#1

DOJ12:MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB3

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

INC R2

CJNE A,#0FFH,DOJ12

;-------------------------------判断减速之后是否停止--------------------------- MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#0CH

JNB P3.2,$ ;判断是否停止,停止则在此死循环,否则继续执行

JB P3.3,DOJ1;是正转还是反转?

;----------------------- -反转加速----------------------------------------

DOJ2: MOV R2,#16

DOJ21: MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB3

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

DEC R2

CJNE A,#00H,DOJ21

;------------------------------反转匀速---------------------------------- LOOP1: MOV P1,#0F6H

LCALL DEL0Y

MOV P1,#0F3H

LCALL DEL0Y

MOV P1,#0F9H

LCALL DEL0Y

MOV P1,#0FCH

LCALL DEL0Y

MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#0CH

JNB P3.2,JIANSU2 ;读p3.2看是否停止,停止转减速程序

JNB P3.3,LOOP1 ;判断正转还是反转?

;----------------------------反转减速---------------------------

JIANSU2: MOV R2,#90

DOJ22: MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P1,A

MOV A,R2

MOV DPTR,#TAB2

MOVC A,@A+DPTR

MOV R6,A

LCALL DEL1

DEC R2

CJNE A,#00H,DOJ22

MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#0CH

JNB P3.2,$;读p3.4看是否停止

JNB P3.3,DOJ2;判断方向

LJMP DOJ1

;----------------------- -加速和减速延时程序--------------------------------- DEL1: MOV R7,#0FAH

DJNZ R7,$

DJNZ R6,DEL1

RET

;---------------------------匀速延时程序------------------------------------

DEL0Y: MOV A,#0FFH

MOV P3,A

MOV A,P3

ANL A,#70H ;读p3.4-p3.6

SW AP A

MOV R5,A ;根据p3.4-p3.6计算延时

DEL1Y:MOV R7,#0FAH

DJNZ R7,$

DJNZ R5,DEL1Y

RET

TAB1:DB 00,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

DB 0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H,0FCH,0F9H,0F3H,0F6H

TAB2:DB 00,500,236,154,114,91,76,64,56,50,45,41,38,35,32,30,28,26,25

DB 24,22,20,20,20,19,18,17,16,16,16,15,14,14,14, 13,13,12,12,12,12,11,11,

DB 11,10,10,10,10,10,9,9,9,9,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,6,6,6,6,

DB 6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,0FFH

TAB3:DB 00,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8

DB 8,8,8,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,12,12,12,12,13,13,14,14

DB 14,15,16,16,16,17,18,19,20,20,20,22,24,25,26,28,30,32,35,38,41,45,50,56

DB 64,76,91,114,154,236,500,0FFH

END

附录4:元件清单

元件清单表

编号名称型号单位数量备注

1 电容30PF 只 2

2 电容10uF 只 1

3 晶体振荡器12MHz 个 1

4 按键开关只 1 断路器

5 电阻1K 只10

6 电阻200 只 1

7 电感10mH 只 4

8 单片机AT89S52 个 1 Philips

9 驱动器SN74LS240N 个 1 八反向三态驱动器

10 驱动器SN75452BP 个 2 双外设NAND驱动器

11 拨动开关TL36WW15050 个 5 直角安装,垂直驱动

12 二极管SOT- 23 只 4

13 单片机AT89C51 个 1

14 步进电机28BYG450B-02/02s 个 1 低电平驱动

相关文档
相关文档 最新文档