步进电机方案完整版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章课程设计的目的和要求

(一)设计目的

《单片机应用基础》课程设计是学好本门课程设计的又一重要环节,课程设计的目的就是配合笨课程设计的教学和平时的实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,是以培养学生综合运用所学知识的过程,培养学生查阅相关资料撰写文档的能力和自学,科研的能力,是知识转化为能力和能力转化为工程素质的重要阶段。

(二)设计任务

根据给定的任务要求选择合适的单片机和其他电子元件,进行系统硬件电路设计和软件编程,根据系统制作并调试电路板,使之实现任务要求。有关参数选择要求符合国家标准,具体设计任务如下:

1能控制电机正反转,有正转和反转按钮。

2在一定范围内可控制转速,有加速和加速按钮。

3可在不断电源的情况下暂停,有一个暂停按钮。

4在停止、正转、反转的时候,分别有指示灯指示工作状态。

5有状态观察指示灯,可观察电动机A、B、C、D相的状态以观察电动机的旋转状态。

6通过改变程序而改变电动机的驱动方式:单四拍、双四拍、单双八拍。

(三)设计要求

1、利用proteus软件设计各模块工作原理图,并进行模拟仿真;

2、控制程序设计、调试及实现:

(1)根据要求,写出完整的程序流程图;

(2)利用proteus软件进行电路模拟仿真和调试

4、设计硬件电路并烧写程序,调试后系统能按照要求工作

第二章总体设计

1)设计思路:

使用按钮开关控制步进电机的正反转以及加速减速

因要求实现用单片机控制四相步进机的正反转以及加速减速,有很多的方法能完成这样的任务,但为了能更加方便的控制步进电机正反转以及加速减速,因此在单片机的管脚上分别接了正反转按钮,正转加速减速按钮,反转加速减速按钮以及复位按钮,当给电路通电后,就可以通过按这些按钮来实现要求的各种要求以及所要表达的信息。

2)使用L298芯片来驱动步进电机:

L298是一种高电压、大电流电机驱动芯片。采用标准逻辑电平信号控制具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作,可以外接检测电阻,将变化量反馈给控制电路。使用L298芯片驱动电机,该芯片可以驱动两个二相电机,也可以驱动一个四相电机,可以直接通过电源来调节输出电压,并可以直接用单片机的I/O口提供信号,而且电路简单,使用比较方便。

3)设计方框图

总体设计方框图如图1所示

图1 总体设计方案框图

第三章硬件设计

1按键设计:

本设计采用的独立式非编码键盘控制步进电机。共有6个按钮,其中S2为电机正转按钮、S3为电机反转按钮,S4为正转加速按钮,S5为电机正转减速按钮,S6为电机反转加速按钮,S7为电机反转减速按钮。当按下各个按钮时,会执行各个键的功能,当按下复位按钮时,电路会恢复到初始状态。其原理图如图2所示:

图2按键控制电路

2时钟震荡电路和复位电路设计

时钟震荡电路由一个12M的晶震和两个30PF的电容组成。复位电路有一个复位按钮,两个电阻,一个带

有极性的电容做成,复位方式为手动复位。当按下复位按钮的时间超过两个机器周期,才起到复位作用。其原理理理如图3所示

图3钟震荡电路和复位电路

3步进电机驱动电路设计

本设计采用的是L298对步进电机进行驱动L298N为双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相?和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥式驱动器,接收标准?TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来跳电压

4步进电机时序表和时序图

步进电机时序表和时序图分别如表1和图6

4.程序流程图

用wave6000生成hex文件,将生成的文件导入proteus中调试运行。

第六章软件设计开始程序:

START1: MOV P2,#0FFH

JNB P0.0,Z10

JNB P0.1,F10

JNB P0.2,ZA10

JNB P0.3,ZS10

JNB P0.4,FA10

JNB P0.5,FS10

JNB P0.6,NO10

AJMP START1

Z10: LJMP ZZ

F10: LJMP FZ

ZA10: LJMP ZA

ZS10: LJMP ZS

FA10: LJMP FA

FS10: LJMP FS

NO10: LJMP START1

ZZ: LCALL DELAY ;防止按键抖动延迟JNB P0.0,$

LCALL DELAY

正转子程序:

ZX:MOV R0,#00H

ZZ1: MOV A,R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

JZ ZX

MOV P2,A

JNB P0.1,F10

JNB P0.2,ZA10

JNB P0.3,ZS10

JNB P0.4,FA10

JNB P0.5,FS10

JNB P0.6,NO10

LCALL DELAY1

INC R0

LJMP ZZ1

RET

FZ: LCALL DELAY ;按键去抖动

JNB P0.1,$

LCALL DELAY

FX: MOV R0,#05H

反转子程序:

FZ1: MOV A,R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

JZ FX

MOV P2,A

JNB P0.0,Z10

JNB P0.2,ZA10

JNB P0.3,ZS10

JNB P0.4,FA10

JNB P0.5,FS10

LCALL DELAY1

INC R0

LJMP FZ1

RET

ZA: LCALL DELAY ;按键去抖动JNB P0.2,$

LCALL DELAY

正转程序调用:

ZAX:MOV R0,#00H

ZA1: MOV A,R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

JZ ZAX

MOV P2,A

JNB P0.0,ZZ

JNB P0.1,FZ

JNB P0.3,ZS

JNB P0.4,FA

JNB P0.5,FS20

LCALL DELAY2

INC R0

LJMP ZA1

RET

ZS: LCALL DELAY ;按键去抖动JNB P0.3,$

LCALL DELAY

正转减速程序调用:

ZSX:MOV R0,#00H

ZS1: MOV A,R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

JZ ZSX

MOV P2,A

JNB P0.0,Z20

JNB P0.1,F20

JNB P0.2,ZA20

JNB P0.4,FA20

JNB P0.5,FS20

JNB P0.6,NO20

LCALL DELAY3

INC R0

LJMP ZS1

RET

Z20:LJMP ZZ

F20:LJMP FZ

ZA20:LJMP ZA

ZS20:LJMP ZS

FA20:LJMP FA

FS20:LJMP FS

NO20:LJMP START1

FA: LCALL DELAY ;按键去抖动JNB P0.4,$

LCALL DELAY

反转加速子程序:

FAX: M OV R0,#05H

FA1: MOV A,R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

JZ FAX

MOV P2,A

JNB P0.0,Z20

JNB P0.1,F20

JNB P0.2,ZA20

JNB P0.3,ZS20

JNB P0.5,FS20

JNB P0.6,NO20

LCALL DELAY2

INC R0

LJMP FA1

RET

FS: LCALL DELAY ;按键去抖动JNB P0.5,$

LCALL DELAY

;反转程序调用:

FSX:MOV R0,#05H

FS1: MOV A,R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

JZ FSX

MOV P2,A

JNB P0.0,Z20

JNB P0.1,F20

JNB P0.2,ZA20

JNB P0.3,ZS20

JNB P0.4,FA20

LNB P0.6,NO20

LCALL DELAY3

INC R0

LJMP FS1

RET

延迟程序:

DELAY: MOV R1,#20 ; 抖动延迟D1: MOV R2,#255

DJNZ R2,$

DJNZ R1,D1

RET

DELAY1: MOV R7,#68 ;正反转延迟D2: MOV R6,#255

D3: MOV R5,#10

DJNZ R5,$

DJNZ R6,D3

相关文档
最新文档