基于单片机的步进电机控制系统.docx
- 文档编号:24538636
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:18
- 大小:326.82KB
基于单片机的步进电机控制系统.docx
《基于单片机的步进电机控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制系统.docx(18页珍藏版)》请在冰豆网上搜索。
基于单片机的步进电机控制系统
数理与信息工程学院
《单片机原理及应用》期末学期课程设计
题目:
基于单片机的步进电机控制系统
专业:
电子信息工程
班级:
电信041班
姓名:
林浩波
学号:
04610117
指导老师:
余水宝
成绩:
12自己的东西偏少,格式欠规范化
(2007.1)
目录
第1章引言………………………………………………………………….3
1.1步进电机控制系统概述………………………………………………….3
1.2本设计任务和主要内容……………………………………………………4
第2章系统主要硬件电路设计………………………………………………….5
2.1单片机控制系统原理…………………………………………………….5
2.2单片机主机系统电路……………………………………………………5
2.2.1时钟电路……………………………………………………………6
2.2.2复位电路……………………………………………………………6
2.3步进电机驱动电路…………………………………………………………7
2.4LED显示电路…………………………………………………………….8
第3章系统的软件设计…………………………………………………………10
3.1步进电机的位置控制……………………………………………………10
3.2显示子程序………………………………………………………………13
第四章结束语…………………………………………………………………17第5章参考文献…………………………………………………………………18
基于单片机的步进电机控制系统
数理与信息工程学院电信041林浩波
指导教师:
余水宝
第1章引言
在当今社会的各个领域步进电机无处不在,应用领域涉及机器人、工业电子自动化设备、医疗器件、广告器材、舞台灯光设备、印刷设备、计算机外部应用设备等等。
因此,设计出高精确度、实时监控、语音提示的步进电机具有重要的现实意义和实用价值。
本设计是基于80C51单片机的步进电机控制系统,能够有效地对步进电机转速、方向的控制。
为了能够更加人性化的控制系统,本设计还增加了语音提示部分,在实际应用当中由于紧急事件需要在短时间内了解电机的工作情况,这时看数码显示就很不方便,而语音提示提供很大帮助,只要按下语音提示按钮便能获取相关技术数据。
本设计采用16位单片机MCS80C51对步进电机进行控制,通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过驱动芯片驱动步进电机;同时,用4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为4位单个数码管的显示驱动。
1.1步进电机控制系统概述
步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字执行元件,随着计算机应用技术、电子技术和自动控制技术在国民经济各个领域中的普及与深入,步进电机的需求量越练越大。
随着工业技术的不断发展,以及同类产品的不断出现,步进电机面临着前所未有的挑战。
但近30年来,数字技术、计算机技术和永磁材料的迅速发展,推动步进电机的发展,为步进电机的应用开辟了广阔的前景,近几年来,步进电机需求量一直呈现出较快的增长速度,其中扫描仪、打印机、传真、DVD-ROM/CD-ROM驱动器、空调及多功能自动化办公设备等应用对步进电机的需求增长最强。
此外由于USB2.0的日益流行促进了高分辨率扫描仪的销售,步进电机向着小型、薄型和更小的步进角度发展。
步进电机有着方方面面重要应用,如何对其进行有效控制,使其能够发挥最大的优势是各个行业技术开发人员所共同关注的,本文旨在设计一套较完整的通用控制系统,对步进电机的转速、方向实行智能化控制,并能通过LED显示其转速。
1.2本设计任务和主要内容
本论文主要研究单片机控制的步进电机系统,对步进电机的转速、方向进行控制和显示。
主要内容如下:
2通过键盘设定步进电机的转速及方向
②LED显示步进电机的转速
第2章系统主要硬件电路设计
2.1单片机控制系统原理
图2-1单片机控制系统原理框图
2.2单片机主机系统电路
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图2-2单片机主机系统图
2.2.1时钟电路
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:
内部振荡和外部振荡。
MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2-2所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
图2-2中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选12MHz
2.2.2复位电路
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。
复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。
复位操作有两种情况,即上电复位和手动(开关)复位。
本系统采用上电复位方式。
图2-2中R9和Cl组成上电复位电路,其值R取为1K,C取为1pF.
2.3步进电机驱动电路
驱动电路集成化成为一种趋势。
目前,已有多种步进电机驱动集成电路芯片,它们大多集驱动和保护于一体,作为小功率步进电机的专用驱动芯片,广泛用于小型仪表、计算机外设等领域,使用起来非常方便。
本设计采用UCN5804B芯片。
UCN5804B芯片适用于四相步进电机的单极性驱动。
它最大能输出1.5A电流、3.5V电压。
内部集成有驱动电路,上电自行复位,可以控制转向和输出使能。
图2-3步进电机驱动电路
图2-3为步进电机驱动电路,其中4、5、12、13脚为接地引脚,1、3、6、8脚为输出引脚,电动机各相的的接线如图,14脚是控制电机的转向,其中低电平为正转,高电平为反转;11脚是步进脉冲的输入端,9、10脚决定工作方式,其真值表如表2-1所示:
表2-19、10脚真值表
工作方式
9脚
10脚
双四拍
0
0
八拍
0
1
单四拍
1
0
禁止
1
1
2.4LED显示电路
由于系统显示的内容比较简单,显示量不多,所以显示选用数码管既方便又经济。
LED有共阴极和共阳极两种。
如图2-4所示。
符号和引脚共阴极共阳极
图2-4LED数码管结构原理图
二极管的阴极连接在一起,通常此共阴极接地,而共阳极则将二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔画即亮;不加电压即暗。
为了保护各段LED不被损坏,需外加限流电阻。
数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。
为节省端口及降低功耗,本系统采用动态扫描显示方式。
本电路的“段控”和“位控”分别由P1口和P3口控制,P3选中哪个数码管,哪个数码管就亮,P1口控制显示数字。
因AT89C51单片机I/O口资源有限,必须对其Il0口进行扩展才能满足实现系统功能,如图2-7所示为用8155扩展1/0口的4个8位LED动态显示器,显示扫描由程控实现,其中PA口输出字型码,PC口输出位选信号即扫描信号,图中片选线CE和AT89C51的P2.7口相连,IO/M选通输入线与P2.4口相连,该系统中当P2.7=0且P2.4=1时,选中8155芯片内三个I/O口。
相应的端口地址分配如表2-1:
表2-28155端口地址分配
图2-5显示电路
第3章系统的软件设计
3.1步进电机的位置控制
步进电机的运行控制涉及到位置控制和加、减速控制。
步进电机的位置控制,指的是控制步进电机执行机构从一个位置精确地运行到另一个位置。
步进电机的位置控制是步进电机的一大特点,它可以不用借助位置传感器而只需要的开环控制就能达到足够的位置精度。
步进电机的位置控制需要两个参数。
第一个是绝对位置,即步进电机控制的执行机构当前的位置参数,绝对位置是有极限的,其极限是执行机构运动的范围,超越了这个极限就应报警。
第二个是从当前位置移动到目标位置的距离,我们可以用折算的方式将这个
距离折算成步进电机的步数。
这个参数是外界通过键盘或可调电位器旋钮输入的,所以折算的工作应该在键盘程序或A/D转换程序中完成。
下面是本程序使用的资源:
30H、31H------存放定时器的常熟,低位在前
32H~34H--------存放绝对位置参数,低位在前
35H、36H-------存放步进数,低位在前
中断服务子程序框图如图2-6所示。
图2-6步进电机位置控制子程序框图
程序如下:
POS:
CPLP1.0;改变P1.0电平状态
PUSHACC;累加器A进栈
PUSHPSW
PUSHR0;R0进栈
JNBP1.0,POS4;P1.0=0时,半个脉冲,转到POS4
CLREA;关中断
JNBP1.1,POS1;反转,转到POS1
MOVR0,32H;正转
INC@R0
CJNE@R0,#00H,POSE;无进位则转向POS2
INCR0
INC@R0
CJNE@R0,#00H,POS2
INCR0
INC@R0
CJNE@R0,#00H,POS2;无越界,则转POS2
CLRTR0;发生越界,停定时器(停电动机)
LCALLBAOJING;调报警子
POS1:
MOVR0,#32H;反转
DEC@R0
CJNE@R0,#0FFH,POS2;无借位则转向POS2
INCR0
DECR0
CJNE@R0,#0FFH,POS2
INCR0
DEC@R0
CJNE@R0,0FFH,POS2
CLRTR0
LCALLBAOJING
POS2:
MOVR0,#35H;指向步数低位35H
DEC@R0
CJNE@R0,#0FFH,POS3IU9
INCR0
DEC@R0
POS3:
SETBEA
MOVA,35H
ORLC
JNZPOS4
CLRTR0
SJMPPOS5
POS4:
CLRC
CLRTR0
MOVA,TL0
ADDA,#08H
ADDA,,30H
MOVTL0,A
MOVA,TH0
ADDCA,31H
MOVTH0,A
SETBTR0
POS5:
POPR0
POPPSW
POPACC
RETI
3.2显示子程序
硬件电路如图2-4所示,通过8155芯片来扩展I/O口,其端口地址分别是:
命令/状态寄存器:
7FF8H,PA口:
7FF9H,PB口:
7FFAH,PC口:
7FFBH。
通过P1口控制数字显示,即“段选”,P3口控制“位选”。
ORG0000H ;初始化
START:
JMPMAIN
ORG30H
MAIN:
MOVSP,#5FH
B_BITEQU34H ;个位显示数据存储器
A_BITEQU35H ;十位显示数据存储器
C_BIT EQU22H ;百位显示数据存储器
D_BIT EQU23H ;十位显示数据存储器
E_BIT EQU34H ;万位显示数据存储器
Count EQUr4 ;计数器数据存储器
ACALLINIT_RS232;调用INIT_232子程序
CPLP0.0 ;P0.0亮表示正在设定串口
MOVR5,#25
ACALLDELAY
CPLP0.0 ;P0.0暗表示设定完成
MOVP1,#0FFH
MOVP2,#0FFH
WAIT:
acallDIAPY;调用显示程序
JNBRI,WAIT;接收电脑发过来的数据
ClRRI ;清RI,继续下次接收
LJMPWAIT
DIAPY:
MOVR1,SBUF把接收到的数据放到A里
MOVA,R1
MOVB,#100
DIVAB
MVO33H,A
MOVA,B
MOVB,#10
DIVAB
MOVB_BIT,B ;提取百位
MOVA_BIT,A
MOVDPTR,#TAB
MOVR0,#5
DP11:
MOVR1,#250
DPLOP:
个位显示
MOV,A,B_BIT
MOVCA,@A+DPTR;提取字模
MOVP1,A
CLRP2.2 ;开个位
ACALLDELAY1;调用扫描子程序
SETBP2.2 ;十位显示
MOVA,A_BIT]
MOVCA,@A+DPTR;提取字模
MOVP1,A
CLRP2.3 ;开十位
ACALLDELAY1
SETP2.3 ;百位显示
MOVA,A_BIT
MOVCA,@A+DPTR;提取字模
MOVP1,Amovp1,a
CLRP2.4 ;开百位
ACALLDELAY1
SETBP2.4
DJNZR1,DPLOP
DJNZR0,DP11
RET
INIT_RS232:
;rs232初始化设定
MOVTMOD,#20H ;1200bs
MOVTH1,#0E8H
SETBTR1
MOVSCON,#01010000B
RET
DELAY1:
MOV R7,#2
D3:
MOV R6,#25
D4:
DJNZR6,D4
DJNZR7,D3
RET
delay:
MOVR5,#20
D2:
MOVR6,#50
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
TAB:
DB 0C0H,0f9H,0a4H,0b0h,99h;"0","1","2","3","4"
DB 92H,82H,0f8H,80H,90h ;"5","6","7","8","9'
DB 88H,83H,46H,0a1H,86h ;"a","b","c","d","e"
DB 8eh;"F"
END
第四章结束语
本次课程设计是在学习单片机课程后的一次实践,通过查阅大量书籍、专业网站、论坛等,通过反复对比,采用技术较为成熟以及仿真效果的电路。
在软件设计方面,一部分参考文献的已成程序进行修改编写,一部分则是平时的经验积累。
应该说这次课程设计还是基本达到了设计的要求,但是也存在着未能解决的问题,由于在执行语音程序时对资源的消耗比较大,在语音报数的时候会中断步进电机驱动信号的输出,导致电机停转。
为此,在参考有关文献之后我将尝试使用两块单片机,通过双机通讯来传递信号。
这次步进电机的综合实验我们学到了步进电机、数码管、4*4键盘、更重要的是学会了程序出问题时调试的方法,并养成了遇到困难主动独立寻找解决方案的信心和技巧。
第5章参考文献
[1]谢自美,电子线路设计、实验、测试(第二版).华中理工大学出版社,2000.
[2]薛钧义,张彦斌,樊波等《凌阳十六位单片机原理及应用》.北京航空航天大学出版社,2003
[3]王晓明,电动机的单片机控制.北京航空航天大学出版社,2002.5
[4]张鑫,单片机原理及应用.电子工业出版社,2005.8
[4][EB/01]
[5][EB/02]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 步进 电机 控制系统