微机原理步进电机控制实验

更新时间:2023-06-09 13:57:01 阅读量: 实用文档 文档下载

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

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

装 订 线

微型计算机原理综合实验

题目:学 院 学科门类 专 业 电气工程及其自动化 学 号 姓 名 指导教师

2009 年 12 月 13 日

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

步进电机控制 摘 要

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

关键词

装 订 线

8255、步进电机、驱动电路、源程序、流程图、汇编语言

目录

一.实验目的------------------------------3 二.设计要求------------------------------3 三.设计原理------------------------------3 四.硬件工作原理--------------------------6 五.程序框图------------------------------7 六.总结与体会----------------------------9 参考文献----------------------------------9

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

一.实验目的

1.1掌握微机原理程序设计方法,达到运用所学知识来应用于实践的目的; 1.2培养学生查阅资料、使用工程设计标准、手册及编写设计技术的能力; 1.3培养初步掌握设计开发产品的能力,了解微机控制系统的一般设计方法。 1.4掌握汇编语言在硬件编程方面的应用 1.5复习模拟电路的基本知识

二.设计要求

2.1外设电路要求

设计电路,使其能够驱动步进电机转动,所需元件及器材由实验室提供,其中步进电机为35BYJ46型四相八拍电机,电压为DC12V,电源取自实验箱。根据相应状态,利用数码管完成输出显示。数据的输入采用键盘、输出采用实验箱上8255单元完成。

2.2程序要求

编写程序,控制步进电机的运转,要求可调整步进电机运转的方向和速度。选择合适的设计方案,并进行理论阐述。编制相应的控制程序,要求有程序流程图,程序加注释。绘制实现电路原理图,所有图纸均用计算机绘制。

三.设计原理

3.1工作过程

一、步进电机的概述及四相八拍步进电机的工作原理:

步进电机是一种将电脉冲信号转换成角位移或线位移的机电元件。步进电机的输入量是脉冲序列,输出量则为相应的增量位移或步进位移,正常运行情况下,它每转一周是有固定的步数。 该步进电机为四相八拍步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。

开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

齿。

当开关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方向转动。

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

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。 单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:

a. 单四拍 b. 双四拍 c八拍

图2步进电机工作时序波形图

35BYJ46步进电机为四相八拍,其相序表如下: 步序 PA3 PA2 PA1 PA0 对应A口输出值 1 0 0 0 1 01H 2 0 0 1 1 03H 3 0 0 1 0 02H

4 0 1 1 0 06H

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

5 0 1 0 0 04H 6 1 1 0 0 0CH 7 1 0 0 0 08H 8 1 0 0 1 09H 步进电机的工作方式:

35BYJ46 有四相ABCD,如果对各个相依次单独通电,"A-B-C- D",磁场旋转一周需要换相四次,则称为四相单四拍;如果每次对两相同时通电,"AB- BC- CD- DA",则称为四相双四拍;也可以每次对三相同时通电,"ABC- BCD- CDA- DAB";将单四拍和双四拍交替使用,就称为四相八拍,如:"A- AB- B- BC- C- CD- D-DA"、"AB- ABC- BC- BCD- CD- CDA- DA- DAB",此时磁场旋转一周需要换相八次。双四拍每次对多相同时通电,与单四拍比较起来,每相通电的时间长,消耗的电功率增大,电机所得到的电磁转矩也大。同时,采用多相励磁会产生电磁阻尼,会削弱或消除振荡现象,使得电机不易产生失步。四相八拍与四相四拍相比较,步距角减小了一倍,有利于削弱振荡,提高电机的带负载能力。一般说来,步进电机控制系统需要以下部分,如图1 所示。其中的脉冲发生器用于产生频率变化的脉冲信号; 脉冲分配器根据方向控制信号将脉冲信号转换成有一定逻辑关系的环形脉_冲;功率放大器将脉冲分配器输出的环形脉冲放大,用于控制步进电机的运转,这些部分都可以由专门的电路来实现。

二、步进电机的驱动

步进电机的驱动方式很多,有单电压驱动、双电压驱动、斩波驱动、细分驱动和集成电路驱动。由于集成电路集驱动和保护于一体,作为小功率步进电动机的专用驱动芯片,使用起来非常方便。在实际应用中, 我们可以选择L298N 集成电路芯片作为35BYJ46 的驱动芯片。但本次实验我们采用的是自行设计的驱动电路。

3.2编写步进电机汇编程序

1、通过实验了解8255工作在方式0下的编程方法

8255可编程并行接口芯片介绍

8255可编程外围接口芯片是Intel公司生产的通用并行I/0接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:

方式0—基本输入/出方式;方式1—选通输入/出方式;方式2—双向选通工作方式

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

8255的内部结构及引脚如下图所示。

8255工作方式控制字和C口按位置位/复位控制字格式如下图所示。

(a)工作方式控制字 (b)C口按位置位/复位控制字 2、编程中两个重要的参数:

步数 N 控制步进电机的定位精度。 延时时间 DELAY 控制其步进的速率。

四.硬件工作原理

4.1需要的器件

导线若干、10欧电阻4个、三极管四个,四个二极管,通用电路板一块、35BYJ46型四相八拍步进电机一个、学生实验箱、计算机

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

4.2 硬件电路

图1驱动电路

图2步进电机内部电路

五.程序流图:

本程序用8255的a口输出控制信息,经驱动电路实现对步进电机的速度和方向的控制。

程序中8255的地址段设置为200h~207h,控制键为0~9,正转速度分三档,分别由123控制;3为最高速度,反转速度分三档,分别由456控制,6为最高速度;78键为速度微调,分别在各档位速度的基础上小幅度调节速度的大小;0为停止键;9为退出键。

程序设计上用按键控制输出的延迟时间的大小来达到控制转速的目的。 程序流程图如下:

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

开始 初始化 显示提示信息 初始化 8255 输入一个字符 是 0~6 或 9? Y 分流 1 2 按字符设置延迟时间 清空键盘缓冲区 3 4 5 9 6 结束 按字符设置延迟时间 清空键盘缓冲区 提示输入错误

N 0

设置循环次数

设置循环次数

输出正转数据 延时 判断循环是否结束 Y 判断键盘缓冲区是否有字符 Y 字符是否为 0~9 Y 减小延时 增大延时 7 8 分流 0~6 或 9

输出反转数据 延时 判断循环是否结束 Y 判断键盘缓冲区是否有字符 Y 字符是否为 0~9 Y 分流 0~6 或 9 8 增大延时 7 减小延时

N

N

N

N

N

N

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

六.总结与体会

通过这次试验,我熟悉了8255和步进电机的工作方式,了解了程序设计的流程,熟悉了用汇编语言控制硬件电路的方法。

参考文献

[1] 王永山 杨宏五 杨婵娟。 微型计算机原理与应用(第二版)西安电子

科技大学出版社;

[2] 微型计算机原理实验指导书 河北大学电子信息工程学院; [3] 华成英、童诗白。模拟电路技术基础(第四版)高等教育出版社。

附 录

stack segment stack dw

40dup(?)

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

top stack

data

string1

string2 buf1 buf2

data code assume start:

label word ends

segment

db '0--9 are control keys',0dh,0ah db '0 is stop',0dh,0ah

db '1--3 are forward control',0dh,0ah db '3 is the highest speed',0dh,0ah db '4--6 are backward contral',0dh,0ah db '6 is the highest speed',0dh,0ah db '7 is small speed increase',0dh,0ah db '8 is small speed decrease',0dh,0ah db '9 is quit and go back to dos',0dh,0ah,'$'

db 0dh,0ah,'input error,retry:',0dh,0ah,'$'

db 01H,03H,02H,06H,04H,0cH,08H,09H db 09H,08H,0cH,04H,06H,02H,03H,01H ends

segment

cs:code,ds:data,ss:stack mov ax,data mov ds,ax

正转相序反转相序 ; ;

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

e1: input: mov ax,stack mov ss,ax mov sp,offset top lea dx,string1 mov ah,09h

int 21h mov dx,203h mov al,80h out dx,al jmp input

lea dx,string2 mov ah,09h int 21h

mov ah,01h int 21h

cmp al,'0' jb e1 cmp al,'9' je exit cmp al,'6' ja e1 jmp sel

;显示提示信息

;设置8255工作方式

;显示出错信息

;键盘读字符

;9键退出

;判断输入字符是否符合

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

sel1: cmp al,'7' 要求 je k7a1 cmp al,'8' je k8a1 jmp sel

;正转7,8键处理方法

sel2: cmp al,'7' je k7a2 cmp al,'8' je k8a2

sel: cmp al,'9' je exit cmp al,'0' je input cmp al,'1' je k1 cmp al,'2' je k2 cmp al,'3' je k3 cmp al,'4' je k4 cmp al,'5'

;反转7,8键处理方法

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

cmp al,'6' je k6

k7a1:

cmp bp,2000 je a1 sub bp,200 jmp a1

k8a1: add bp,200 jmp a1

k7a2: cmp bp,2000 je a2 sub bp,200 jmp a2

k8a2: add bp,200 jmp a2

k1: mov bp,10000 jmp a1

k2: mov bp,7000 jmp a1

k3: mov bp,4000 jmp a1

k4:

mov bp,10000

;其他键处理

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

k5:

mov bp,7000 jmp a2

k6:

mov bp,4000 jmp a2

;设置延迟时间

a1:

mov dx,200h mov ah,0ch int 21h

a10:

lea si,buf1 mov cx,8

la1: mov al,[si] out dx,al call delay

go1: inc si loop la1 mov ah,01 int 16h

jne go jmp a10

go:

cmp al,'0' jb a1

;设置输出地址 ;清除键盘缓冲区

;按相序输出 ;读键盘缓冲区

;有输入跳转

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

je input cmp al,'9' ja a1

;判断输入是否有效

mov dl,al mov ah,02 int 21h jmp sel1

a2:

mov dx,200h mov ah,0ch int 21h

a20:

lea si,buf2 mov cx,8

la2:

mov al,[si] out dx,al call delay inc si loop la2 mov ah,01 int 16h jne goo jmp a20

;显示输入字符 ;反转

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

goo: exit: delay

dloop: dloop1: cmp al,'0' jb a2 je input cmp al,'9' ja a2 mov dl,al mov ah,02 int 21h jmp sel2

mov ah,0ch int 21h

mov ah,4ch int 21h

proc near push cx mov cx,bp

nop push cx, mov cx,100

loop dloop1 pop cx

;清除键盘缓冲区 ;退出

;延时子程序

本实验通过设计电路,编写程序来驱动步进电机的转动。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用的步进电机为35BYJ46型四相八拍,电压为DC12v

loop dloop pop cx ret

delay endp code

ends end start

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

Top