单片机张旭.docx
《单片机张旭.docx》由会员分享,可在线阅读,更多相关《单片机张旭.docx(16页珍藏版)》请在冰豆网上搜索。
单片机张旭
单片机课程设计报告
题目步进电机的控制
专业自动化与信息工程学院
班级电技081
学生姓名张旭
学号3080422019
指导老师王水鱼
2011年7月8日
一.设计目的
1.熟悉单片机编程原理。
2.熟练掌握51单片机的控制电路和最小系统。
3.单片机基本应用系统的设计方法。
二.设计的主要内容和要求
1.查阅资料,了解步进电机的工作原理。
2.通过单片机给参数控制电机的转动。
3.通过按钮控制启停及反转。
4.通过按钮可实现加速和减速。
三.整体设计思路
1.整体方案
本系统主要是由AT89C51,按键,步进电机,通过单片机编程,实现步进电机控制的脉冲分配,使电机实现正转,反转以及停止等功能。
2.具体实现方案及概念解析
步进电机:
步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机可以作为一种控制用的特种电机,利用其精度高等特点,广泛应用于各种工业控制系统中。
根据系统要求画出单片机控制步进电机的控制框图,见下图。
系统包括单片机、按键和步进电机。
单片机控制步进电机的控制框图
开始通电后,步进电机停止转动,单片机分别接有按钮开关K1,K2,K3,K4,K5用来控制步进电机的不同转向,不同转速,当按下K1后,电机正转;当按下K2后,电机反转,当按下K0,电机停转。
控制其转动方向,其实只需考虑在脉冲分配的过程中注意一定的顺序即可解决。
就四相步进电动机而言,如果采用单四拍方式,其脉冲分配的方式和顺序是A-B-C-D-A,为正转;则其反转的脉冲分配方式和顺序是D-C-B-A-D。
如果采用单双八拍方式,其反转的脉冲分配方式和顺序是D-DC-C-CB-B-B-A-AD-D。
为实现电机加速,减速,给电机设置不同延时时间常数,根据时间常数的不同,电机转速不同,延时时间常数越大,电机转速越慢,延时时间常数越小,电机转速越快。
四.硬件设计
1.硬件线路
根据系统框图,可以设计出单片机控制步进电机的硬件电路图,电路图如下:
2.元件清单
AT89C52单片机控制步进电机系统元件清单如下所示。
元件名称型号数量用途
单片机AT89C521控制核心
晶振6MHz1晶振电路
电容30pF1晶振电路
电解电容10pF/10V1复位电路
电阻10KΩ1复位电路
步进电机5V/0.3A1
按键4按键电路
电源+5V/0.5A1提供+5V
五.软件设计
1.程序流程图:
。
2.程序清单
K1BITP2.1;设定按键接口
K2BITP2.2
K3BITP2.3
K4BITP2.4
K5BITP2.5
K0BITP2.0
ORG0000H
LJMPMAIN
ORG0080H
MAIN:
MOVSP,#60
SETBK1
SETBK2
JNBK1,ZHENGZHUAN
JNBK2,FANZHUAN2
AJMPMAIN1
MAIN1:
AJMPMAIN
ZHENGZHUAN:
MOVP1,#01H
ACALLDELAY1
ACALLPANDUAN1
MOVP1,#09H
ACALLDELAY1
ACALLPANDUAN1
MOVP1,#08H
ACALLDELAY1
ACALLPANDUAN1
MOVP1,#0CH
ACALLDELAY1
ACALLPANDUAN1
MOVP1,#04H
ACALLDELAY1
ACALLPANDUAN1
MOVP1,#06H
ACALLDELAY1
ACALLPANDUAN1
MOVP1,#02H
ACALLDELAY1
ACALLPANDUAN1
MOVP1,#03H
ACALLDELAY1
ACALLPANDUAN1
LJMPZHENGZHUAN
KS:
MOVP1,#01H
ACALLDELAY2
ACALLPANDUAN2
MOVP1,#09H
ACALLDELAY2
ACALLPANDUAN2
MOVP1,#08H
ACALLDELAY2
ACALLPANDUAN2
MOVP1,#0CH
ACALLDELAY2
ACALLPANDUAN2
MOVP1,#04H
ACALLDELAY2
ACALLPANDUAN2
MOVP1,#06H
ACALLDELAY2
ACALLPANDUAN2
MOVP1,#02H
ACALLDELAY2
ACALLPANDUAN2
MOVP1,#03H
ACALLDELAY2
ACALLPANDUAN2
LJMPKS
MS:
MOVP1,#01H
ACALLDELAY3
ACALLPANDUAN3
MOVP1,#09H
ACALLDELAY3
ACALLPANDUAN3
MOVP1,#08H
ACALLDELAY3
ACALLPANDUAN3
MOVP1,#0CH
ACALLDELAY3
ACALLPANDUAN1
MOVP1,#04H
ACALLDELAY3
ACALLPANDUAN3
MOVP1,#06H
ACALLDELAY3
ACALLPANDUAN3
MOVP1,#02H
ACALLDELAY3
ACALLPANDUAN3
MOVP1,#03H
ACALLDELAY3
ACALLPANDUAN3
LJMPMS
FANZHUAN:
MOVP1,#01H
ACALLDELAY1
ACALLPANDUAN21
MOVP1,#03H
ACALLDELAY1
ACALLPANDUAN21
MOVP1,#02H
ACALLDELAY1
ACALLPANDUAN21
MOVP1,#06H
ACALLDELAY1
ACALLPANDUAN21
MOVP1,#04H
ACALLDELAY1
ACALLPANDUAN21
MOVP1,#0CH
ACALLDELAY1
ACALLPANDUAN21
MOVP1,#08H
ACALLDELAY1
ACALLPANDUAN21
MOVP1,#09H
ACALLDELAY1
ACALLPANDUAN21
LJMPFANZHUAN
FZKS:
MOVP1,#01H
ACALLDELAY2
ACALLPANDUAN22
MOVP1,#03H
ACALLDELAY2
ACALLPANDUAN22
MOVP1,#02H
ACALLDELAY2
ACALLPANDUAN22
MOVP1,#06H
ACALLDELAY2
ACALLPANDUAN22
MOVP1,#04H
ACALLDELAY2
ACALLPANDUAN22
MOVP1,#0CH
ACALLDELAY2
ACALLPANDUAN22
MOVP1,#08H
ACALLDELAY2
ACALLPANDUAN22
MOVP1,#09H
ACALLDELAY2
ACALLPANDUAN22
LJMPFZKS
FZMS:
MOVP1,#01H
ACALLDELAY3
ACALLPANDUAN23
MOVP1,#03H
ACALLDELAY3
ACALLPANDUAN23
MOVP1,#02H
ACALLDELAY3
ACALLPANDUAN23
MOVP1,#06H
ACALLDELAY3
ACALLPANDUAN23
MOVP1,#04H
ACALLDELAY3
ACALLPANDUAN23
MOVP1,#0CH
ACALLDELAY3
ACALLPANDUAN23
MOVP1,#08H
ACALLDELAY3
ACALLPANDUAN23
MOVP1,#09H
ACALLDELAY3
ACALLPANDUAN23
LJMPFZMS
TZ:
MOVP1,#00h
LJMPMAIN
DELAY1:
MOVR7,#255
d11:
MOVR6,#150
d12:
DJNZR6,d12
DJNZR7,d11
rET
dELAY2:
MOVR7,#255
d21:
MOVR6,#50
d22:
DJNZR6,d22
DJNZR7,d21
RET
DELAY3:
MOVR7,#255
d31:
MOVR6,#225
d32:
DJNZR6,d32
DJNZR7,d31
RET
PANDUAN1:
SETBK3
SETBK5
SETBK0
SETBK2
JNBK3,MS1
JNBK5,KS1
JNBK0,TZ1
JNBK2,FANZHUAN
JMPFANHUI1
MS1:
LJMPMS
KS1:
LJMPKS
TZ1:
LJMPTZ
FANHUI1:
RET
PANDUAN2:
SETBK4
SETBK3
SETBK0
SETBK1
JNBK3,MS2
JNBK4,ZHENGZHUAN2
JNBK0,TZ2
JNBK1,ZHENGZHUAN
JMPFANHUI2
MS2:
LJMPMS
ZHENGZHUAN2:
LJMPZHENGZHUAN
TZ2:
LJMPTZ
FANHUI2:
RET
PANDUAN3:
SETBK4
SETBK5
SETBK0
JNBK4,ZHENGZHUAN3
JNBK5,KS3
JNBK0,TZ3
JMPFANHUI3
ZHENGZHUAN3:
LJMPZHENGZHUAN
KS3:
LJMPKS
TZ3:
LJMPTZ
FANHUI3:
RET
PANDUAN21:
SETBK3
SETBK5
SETBK0
JNBK3,MS21
JNBK5,KS21
JNBK0,TZ21
JMPFANHUI21
MS21:
LJMPFZMS
KS21:
LJMPFZKS
TZ21:
LJMPTZ
FANHUI21:
RET
PANDUAN22:
SETBK4
SETBK3
SETBK0
JNBK3,MS22
JNBK4,FANZHUAN22
JNBK0,TZ22
JMPFANHUI22
MS22:
LJMPFZMS
FANZHUAN22:
LJMPFANZHUAN
TZ22:
LJMPTZ
FANHUI22:
RET
PANDUAN23:
SETBK4
SETBK5
SETBK0
JNBK4,FANZHUAN23
JNBK5,KS23
JNBK0,TZ23
JMPFANHUI23
FANZHUAN23:
LJMPFANZHUAN
KS23:
LJMPFZKS
TZ23:
LJMPTZ
FANHUI23:
RET
END
六.仿真
连接好电路后,对程序进行装载编译连接后,仿真。
结果:
按下正转按钮电机常速正转
按下反转按钮电机常速反转
按下减速按钮电机慢速反转
按下常速按钮电机常速反转
按下加速按钮电机快速反转
按下停止按钮电机停止运转
仿真截图如下:
电机正转
电机反转相位恰与电机正转相位反相。
加速运转时频率明显加快,减速运转时频率显著减慢。
七.总结
两周的课设很快的就结束了,本次课设主要以单片机为基础,用单片机来控制电机的转动,熟悉单片机的一般搭建电路,了解一般电子电路与单片机构成简单系统及简单编程的方法。
熟练掌握了KeilC51集成开发环境的使用方法,进一步加深对单片机常用指令的理解与运用。
能够较熟练的运用protues绘制电路原理图以及进行仿真。
以及keilc51和protues的联合调试。
在课设过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及常用编程设计思路技巧的掌握方面有了很大的提高。
同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域对我今后进一步学习计算机方面的知识有极大的帮助,使我们积累实际电子制作经验,达到学以致用的目的,真正的吧理论和实践结合起来,让我们进一步体验到实践的重要性。
对我们以后的工作有很大的帮,同时锻炼了我们团队合做精。
同时非常感谢老师的细心指导,当我们遇到困难时,能及时给予我们帮助。
八.参考文献
[1]潘晓宁,朱耀东。
单片机程序设计实践教程
[2]刘海宽,包建华。
单片机实验与实训教程
[3]杨居义,马宁。
单片机原理与工程应用
[4]胡健,刘玉宾。
单片机原理及接口技术实践教程
[5]韩志军,刘新民。
单片机系统设计与应用实例
[6]朱博,马鸣鹤。
单片机应用技术教程