基于单片机的步进电机的控制课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告
步进电机控制
学院:电气学院
班级:电气0904
姓名:王浩
学号:3090501097
一.设计任务
了解步进电机的原理,设计一套以51单片机为核心的步进电机控制器,步进电机采用四相四拍或四相八拍工作方式,键盘和显示器采用实验室试验箱。了解十六只键组成的键盘(用于输入)及六只LED构成的显示器(用于显示)的原理,分别设计他们的程序,在电脑上进行仿真。
具体要求
1、从键盘上输入正、反转命令,转速参数(16级)和转动
步数显示在LED显示器上。
2、显示器上显示:第一位为0表示正转,为1表示反转;
第二位0~F为转速等级,第三到第六位设定步数。
3、单片机依显示器上显示的正、反转命令,转速级数和转动
步数进行相应动作,转动步数减为零时停止转动。
二.工作原理
1、步进电机基本原理
如图,当有一相绕组被通电激励时,磁通从正相齿,经过软铁芯的转子,并以最短路径流向负相齿,为使磁通路径最短,在磁场力的作用下,转子被迫移动,使最近的一对齿与被激励的一相对准。
那么,通过对它每相线圈中电流的顺序切换可使电机作步进式旋转。
相数:产生不同对极N、S磁场的激磁线圈对数。
拍数:指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB或A-B-C-D-A,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.
步距角:对应一个脉冲信号电机转子转过的角位移. 步距角=360/(转子齿数*拍数)
2、LED显示器原理
LED显示器由七条发光二极管组成显示字段,有的还带有一个小数点。将七段发光二极管阴极连在一起,称为共阴极接法,当某个字段的阳极为高电平时,对应的字段就点亮。共阳极接法是将LED的所有阳极并联后接到+5v上,当某一字段的阴极为0时,对应的字段就点亮。
3、键盘接口原理
键盘实际上是又排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。本设计采用8155接口芯片构成的4*8键盘的接口电路,其中A口为输出,作为列线;C口为输入,作为行线。当所有的键没有被按下时,C口输入均为高;若某列线为低,恰好该列上有键被按下,则键所在的行线为低。
三.设计原理
系统中使用20BY-0型号步进电机,它使用+5V直流电源,步距角为18度,电机线圈由A、B、C、D四相组成。
步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。
BA、BB、BC、BD即为脉冲信号输入插孔,驱动器输出A、B、C、D接步进电机。
四.连线图
步进电机模块插头接实验系统J3插座,(顺接)
把P1.0~P1.3分别接到BA~BD插孔。
五.设计说明及流程
1.数码管显示字形
LED显示器是由发光二极管构成的字段组成的显示器。
显示程序任务:
设置显示缓冲区(7EH-79 H) ,存放待显示数据和字符(位置码)。
显示译码:程序存储器中建立字形码常数表,查表得出对应数据和字符的字形码。
输出显示:输出字形码到显示端口
2.字位口表(从高位起)
3.键盘显示原理图
位置G5 G4 G3 G2 G1 G0 数值20H 10H 08H 04H 02H 01H
(1)显示子程序模块
采用动态显示方式,即一位一位地轮流点亮(扫描)6位显示器。
在8032RAM存储器中设置六个显示缓冲区单元7EH-79H,分别存放6位显示器的显示数据(从高到低)。
(2)键盘输入模块
实验系统有4×8的键盘结构(见键扫显示原理图)。
键盘的行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和列线都断开,行线都为高电平。当键盘上某一键闭合时,则该键所对应的行线和列线都短路。
CPU逐行逐列地检查键盘的状态,可判断键盘上有无键闭合。CPU对键盘上闭合键的键号确定,可根据行线和列线的状态计算求得,也可以根据行线和
列线的状态查表求得。
(3)步进电机控制模块
实现步进电机的转动方式以及转速控制原理:
四相四拍运行方式,即AB-BC-CD-DA-AB或A-B-C-D-A
或者四相八拍方式,即A-AB-B-BC-C-CD-D-DA-A-AB实验时控制P1口对应位为“ 1”。通过控制每一拍的间隔来控制电机的转速
内存使用分配表
步序
控制位
工作
状态
控制
模型P1.7 P1.6 P1.5 P1.4 P1.3
D相
P1.2
C相
P1.1
B相
P1.0
A相
1 0 0 0 0 0 0 1 1 AB 03H
2 0 0 0 0 0 1 1 0 BC 06H
键位地址分配:07H,04H,08H,05H,09H,06H,
0AH,0BH,01H,00H,02H,0FH,
03H,0EH 0CH,0DH,00H,00H,
00H,00H,00H,00H,16H
六.程序清单
ORG 0000H
AJMP MAIN
ORG 0050H
MAIN:MOV SP,#40H ;主程序部分
MOV 79H,#00H
MOV 7AH,#00H
MOV 7BH,#00H
MOV 7CH,#00H
MOV 7DH,#00H
MOV 7EH,#00H
MOV R1,#7EH ;取显示内存缓冲区的第一位a
MAIN1: ACALL KEY ;调用按键程序
MOV @R1,A ;获得的值存放到7E中
CJNE R1,#78H,KS ;是否到79,不是,转KS
CJNE A,#16H,AGAIN ;按下的不是exc(给定值0FFH),是则跳转到run LJMP RUN ;跳转到步进电机控制部分
AGAIN: LJMP MAIN
KS: DEC R1
LJMP MAIN1
RUN:MOV A, 7EH ;取(7EH)当前所存
JZ ZHEN ;跳转到正转
JNZ FAN ;跳转到反转
SJMP $
ZHEN: MOV P1,#03H ;正转部分