步进电机的控制.docx
《步进电机的控制.docx》由会员分享,可在线阅读,更多相关《步进电机的控制.docx(30页珍藏版)》请在冰豆网上搜索。
步进电机的控制
设
计
报
告
设计者:
林东刘丽玲温定贤
指导教师:
郭海燕老师
日期:
2008年8月14日
步进电机的控制
摘要
本设计以PIC16F877A单片机为控制系统的核心,通过接收不同的按键命令,实现了二相步进电机的正转、反转、速度设置和转动步数设定的功能。
系统主要包含四部分:
按键电路、显示电路、单片机控制电路和步进电机驱动电路。
关键词:
PIC16F877A、按键、驱动
目录
1系统设计4
1.1设计任务4
1.2方案论述4
1.3系统框图4
2.电路设计4
2.1工作原理[1]4
2.2参数计算5
3主程序的设计5
3.1软件平台和开发工具5
3.2软件功能及算法6
3.3软件流程图6
4.系统测试7
5.结论8
6.参考文献8
7.附录8
附录
(一)原器件明细表8
附录
(二)原理图8
附录(三)PCB图9
附录(四)主程序清单9
1系统设计
1.1设计任务
(1)可通过按键控制步进电机的正转和反转;
(2)可设置步进电机的速度和转动步数,数码管实时显示设定值。
1.2方案论述
根据设计任务分析,可知系统应主要包含四部分:
按键电路、显示电路、单片机控制电路和步进电机驱动电路,此外还应考虑供电电源的选择。
首先要考虑的是控制器的选择,由于电机控制对实时性的要求较高,因此在设计中采用PIC16F877A单片机作为控制器,它绝大多数指令为单字节指令,程序编写方便、执行速度快。
电源为整个系统的运行提供所需的能量,是电路的核心,在设计中采用的是双电源供电,主要考虑到单片机的工作电压为5V,而步进电机工作电压为12V,而且采用双电源供电也可以消除电机驱动所造成的干扰,提高系统的稳定性。
系统运行过程中要求实时显示设定的速度和步数,由于只是简单的数字显示,可采用多位数码管动态显示,节省成本。
电路中另一个要慎重考虑的因素就是电机驱动电路的设计。
由于单片机的拉电流很小,而步进电机的工作电流要达到0.34A,因此采用三极管放大电路放大后来驱动步进电机工作。
1.3系统框图
根据题目要求和方案论述,本设计的系统框图如图1.1所示。
单片机接收不同的按键命令,控制RC0~RC3输出相应的时序,经驱动电路后控制步进电机工作。
若是设定速度和转动的步数,则数码管需显示相应的数值,提供友好的人机交互界面。
2.电路设计
2.1工作原理[1]
电路原理图如图2.1所示,当I/O口输出高电平时,相应的三极管导通,相线圈有电流通过,电机工作;反之,则电机不工作。
基极电阻R1~R4起限流保护作用,二极管也具有保护电路的作用,当电机突然上电或掉电时,电路的电流较大,此时电感和二极管形成闭合回路,以免电流过大而烧坏电机。
图2.1电路原理图
2.2参数计算
1、三极管的选择[2]
由于在设计中采用的步进电机为永磁式二相步进电机,工作电压为12V,电流为0.34A,而电源电压为12V,因此当电机工作时要求三极管必须工作在饱和导通状态。
CS9013饱和导通时集射极的压降为0.6V,集电极最大电流为0.3A,小于电机的工作电流,不能满足设计要求。
2SD882饱和导通时集射极压降为0.3V,且集电极电流可达2A,压降小且电流大,因此在本设计中采用2SD882。
2、电阻的选择
单片机输出高电平时三极管导通,由于单片机的拉电流很小,基极电阻主要起到限流作用,因此阻值应较大,这里取为4.7KΩ。
3主程序的设计
3.1软件平台和开发工具
设计中采用PIC指令系统进行编程,用贝能MPLABICD2编程器进行编译,仿真,烧写。
PIC16F877A单片机指令系统共有35条指令,除条件跳转指令外其余均为单字节指令,程序编写较方便、简洁。
本设计采用的时钟晶振为4MHZ,故每条指令周期为1us。
3.2软件功能及算法
主程序主要起到一个导向和决策的作用,控制子程序的走向,显示、按键扫描等都是通过调用具体的子程序来实现的。
本系统在主程序中运用模块化结构,所有控制量集中处理,并在RAM建立各控制量的映射,方便各功能模块的编程及修改。
复位有两部分,一个是上电复位,一个是掉电复位。
3.3软件流程图
(1)主程序流程图
软件的主程序流程如图3.1所示。
主程序[3]不断检测是否有按键输入,如果有按键,则进行相应的键值处理,根据按键改变步进电机的工作方式,并显示设定的速度和步数。
(2)子程序流程图
4.系统测试
步进电机的电源采用实验室提供的直流稳压电源,电压为+12V,通过按键来改变步进电机的工作方式。
第一次按下K0键时实现电机正转,第二次按下时电机反转,如此依次循环。
按下K2键可调整电机的速度,调整范围为每分钟10转至150转,K4为增加键,K5为减少键。
按下K3键进入步数设定模块,长按K4键则步数增加,长按K5键步数减少,可调范围为0000至9999。
5.结论
本设计以PIC16F877A单片机为控制系统的核心,通过接收不同的按键命令,实现了二相步进电机的正转、反转、速度设置和转动步数设定的功能,基本完成了题目中要求的各项任务和功能。
6.参考文献
[1]全国大学生电子设计竞赛组委会编.全国大学生电子设计竞赛获奖作品汇编(第一届~第五届)[M].北京:
北京理工大学出版社,2004,8
[2]张华林,周小方编著.电子设计竞赛实训教程[M].北京:
北京航空航天大学出版社,2007,7
[3]李荣正,刘启中,陈学军编著.PIC单片机原理及应用(第2版)[M].北京:
北京航空航天大学出版社,2005,10
7.附录
附录
(一)原器件明细表
序
号
名称
型号及
规格
数
量
备注
序
号
名称
型号及
规格
数
量
备注
1
三极管
2SD882
4
2
二极管
IN4007
4
3
电阻
4.7KΩ±1%
4
附录
(二)原理图
附录(三)PCB图
附录(四)主程序清单
-----------------------
;系统程序设计(080727)
;----几个重要子程序及主子程序之间的关系
;-----------------------
;以下为特殊功能存储器的定义
;-----------------------
INCLUDE"PIC16F877A.INC"
;-----------------------
;以下为I/O口定义
;-----------------------
#DEFINECSRC,0
#DEFINECS4922RC,0;12位DA转换器片选
#DEFINECS3202RC,1;12位AD转换器片选
#DEFINELDACRC,2;数据转存到DAC寄存器
#DEFINESCKRC,3;SPI串口时钟线
#DEFINESDIRC,4;SPI串口数据输入
#DEFINESDORC,5;SPI串口数据输出
#DEFINEBEERA,5;蜂鸣
#DEFINECS0RB,1;LED0
#DEFINECS1RB,2
#DEFINECS2RB,3
#DEFINECS3RB,4
#DEFINECS4RB,5
#DEFINECS5RE,0
#DEFINECS6RE,1
#DEFINECS7RE,2;LED7
;-----------------------
;以下为内部RAM的定义
;-----------------------
WBUFEQU20H;W保护单元,含0A0H单元
STBUFEQU21H;STATUS保护单元
FSBUFEQU22H;FSR保护单元
PCBUFEQU23H;PCLATH保护单元
R0EQU24H;R0~7工作寄存器
R1EQU25H;R0~7循环变量或中间结果
R2EQU26H
R3EQU27H
R4EQU28H
R5EQU29H
R6EQU2AH
R7EQU2BH
R8EQU2CH
R9EQU2DH
DSBITEQU2EH;显示位选,0~7=LED0~LED7
DSBUF0EQU2FH;显缓LED0
DSBUF1EQU30H;显缓LED1
DSBUF2EQU31H;显缓LED2
DSBUF3EQU32H;显缓LED3
DSBUF4EQU33H;显缓LED4
DSBUF5EQU34H;显缓LED5
DSBUF6EQU35H;显缓LED6
DSBUF7EQU36H;显缓LED7
DSDOTEQU37H;小数点位
#DEFINEDOT0DSDOT,0
#DEFINEDOT1DSDOT,1
#DEFINEDOT2DSDOT,2
#DEFINEDOT3DSDOT,3
#DEFINEDOT4DSDOT,4
#DEFINEDOT5DSDOT,5
#DEFINEDOT6DSDOT,6
#DEFINEDOT7DSDOT,7
DSFLEQU38H;显示位闪烁控制(0-7分别对应LED0-7)
SHANEQU39H
#DEFINEFLONSHAN,0;闪烁总控位,=1闪
#DEFINEMINFSHAN,1;分钟到的标志位
#DEFINEFXFSHAN,2;反向标志位
#DEFINESTOPSHAN,3;停止标志位
;-----------------------
KEY1EQU3AH;键值1,触发型
KEY2EQU3BH;键值2,触发型
#DEFINEK0KEY1,0
#DEFINEK1KEY1,1
#DEFINEK2KEY1,2
#DEFINEK3KEY1,3
#DEFINEK4KEY1,4
#DEFINEK5KEY1,5
#DEFINEK6KEY1,6
#DEFINEK7KEY1,7
#DEFINEK8KEY2,0
#DEFINEK9KEY2,1
#DEFINEK10KEY2,2
#DEFINEK11KEY2,3
LASTK1EQU3CH;旧键值1,控制型
LASTK2EQU3DH;旧键值2,控制型
#DEFINELK0LASTK1,0
#DEFINELK1LASTK1,1
#DEFINELK2LASTK1,2
#DEFINELK3LASTK1,3
#DEFINELK4LASTK1,4
#DEFINELK5LASTK1,5
#DEFINELK6LASTK1,6
#DEFINELK7LASTK1,7
#DEFINELK8LASTK2,0
#DEFINELK9LASTK2,1
#DEFINELK10LASTK2,2
#DEFINELK11LASTK2,3
ANJCOUNTEQU3EH;按键去抖
HOUHEQU3FH;时单元,非压缩BCD码
HOULEQU40H
MINHEQU41H;分单元,非压缩BCD码
MINLEQU42H
SECEQU43H;秒单元,2进制
TIMEREQU44H;走时用,5ms加1
;-------
STAEQU45H;工作状态寄存器
;-----------------------
VAN0EQU46H