《课程设计论文基于单片机的步进电机控制系统设计.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于单片机的步进电机控制系统设计.doc(41页珍藏版)》请在三一办公上搜索。
1、课程设计(论文)题 目 名 称 基于单片机的步进电机控制系统设计 课 程 名 称 单 片 机 学 生 姓 名 学 号 系 、专 业 电气工程系 指 导 教 师 年 月 日邵阳学院课程设计(论文)任务书年级专业07电本1班学生姓名学 号题目名称基于单片机的步进电机控制系统设计设计时间2009年6月8日7月1日课程名称单片机原理课程编号1212000105设计地点数字控制与PC实验室一、 课程设计(论文)目的单片机原理课程是一门实践性、应用性很强的课程。通过课程设计使学生较系统的掌握有关单片机控制的设计思想和设计方法,为学生今后的从事单片机控制系统开发工作打下坚实的基础。本课程设计的基本要求是使学
2、生全面的掌握单片机控制系统设计的基本理论,熟悉掌握MCS-51系列单片机的编程方法,让学生在接近实际工作环境下,完成一个简单的单片机控制系统设计。二、 已知技术参数和条件1、2相4线步进电机;2、开发环境:MCS-51系列单片机开发系统,Proteus单片机仿真系统;3、硬件:实验室提供PC机、光电编码器、设计控制系统所需的电子元器件、可调直流电源等;4、单片机设计相关书籍资料、试验场地等;三、任务和要求设计任务:利用MCS-51系列单片机设计一个步进电机控制的系统,用四位数码管显示圈数和角度,能实现步进电机的正反转控制,在给定的圈数和步进角度实现精确定位。设计要求:1、 要求进行方案论证,说
3、明控制系统的工作原理;2、 要求设计控制系统的硬件电路,给出电路原理图和元件清单;3、 要求给出软件流程图并编写程序源代码;4、 完成系统调试,给出调试结果并分析;5、 撰写符合要求的课程设计说明书。注:1此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;2此表1式3份,学生、指导教师、教研室各1份。四、参考资料和现有基础条件(包括实验室、主要仪器设备等)1、THKSCM-1型单片机实验室指导书、KEIL软件,WAVE软件;2、数字控制与PLC实验室“THKSCM-1型单片机实验系统”。五、进度安排1、2009年6月8日至14日:搜集相关资料,熟悉课题任务;2、2009年6月15
4、日至16日:系统总体方案论证与比较,系统总体硬件电路设计;3、2009年6月17日至19日:系统各模块硬件电路设计;4、2009年6月20日至23日:系统软件设计;5、2009年6月24日至25日:系统调试改进;6、2009年6月26日至28日:整理书写设计说明书;7、2009年6月29日至7月1日:答辩。六、教研室审批意见教研室主任(签字): 年 月 日七|、主管教学主任意见主管主任(签字): 年 月 日八、备注指导教师(签字): 学生(签字):邵阳学院课程设计(论文)评阅表学生姓名: 学 号: 系: 电气工程系 专业班级: 07电本一班 题目名称:基于单片机的步进电机的控制系统 课程名称:
5、 单片机原理 一、学生自我总结 对我来说,这次的课程是一次难得的长途旅行,在旅行中有汗水有欢笑,但当自己迈向重点的那一刻,才知道这次旅行的意义。 在做课程设计的这段时间,我与组员们一起查阅有关单片机的资料,并做下一些笔记,并对课题进行深入的研究。每一次调试都让我兴奋不已,因为没做一步就将向成功迈进一步。虽然有些许失败,但失败是成功之母,失败让我不断积累经验,也为我指出了通向成功的明灯。 通过本次课程设计,我学到了许多书本上无法学到的知识,也深刻体会到单片机技术应用领域的广泛。不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣,让我对专业知识有了更深的理解。以后我
6、将更加努力学习单片机,希望自己能更进一步。 学生签名: 高志勇 2009 年 6 月 28日二、指导教师评定评分项目综合成绩权 重单项成绩指导教师评语: 指导教师(签名): 年 月 日注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。摘 要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而
7、无累积误差等特点。本设计首先介绍了AT89C51单片机、L298、驱动电路及两相四拍步进电机的基本原理与功能,并由这些器件的特点设计了系统组成的基本框架。整个系统通过单片机内部程序的控制,从I/O口输出控制脉冲,经过L298驱动电路的处理,输入能直接适合步进电机的控制信号;,使能控制两相四拍步进电机的独立的启停、转向等控制,以及七段显示管的显示圈数。关键字:AT 89C51单片机; LED;键盘;L298;两相四拍步进电机Abstractstep-by-steps the electrical machinery is transforms the electricity signal imp
8、ulse into the angular displacement or the linear displacement open-loop control part. In the non-overloads situation, electrical machinerys rotational speed, the stop position is only decided by the signal impulse frequency and the pulse number, but variation of loads influence, namely is not added
9、to the electrical machinery a signal impulse, the electrical machinery has transferred a step pitch angle. This linear relationships existence, step-by-steps in addition the electrical machinery only then the periodic error, but characteristic and so on non-accumulated error this design first introd
10、uced at89C51 monolithic integrated circuit, L298, the driving circuit and two four rackets step-by-step electrical machinerys basic principle and the function, and has designed the system composition bare bone by these components characteristic. the overall system through the monolithic integrated c
11、ircuit internal procedures control, from the I/O mouth output control pulse, undergoes L298 driving circuits processing, the input can direct suitable step-by-step electrical machinerys control signal; , enables to control two four rackets to step-by-step electrical machinerys independence to open s
12、tops, changes and so on controls, as well as display tubes demonstration turn. key words: AT 89C51 monolithic integrated circuit; LED; Keyboard; L298; Two four rackets step-by-step electrical machinery目 录1 概 述71.1设计概述71.2设计主要功能72 系统硬件设计72.1步进电机2.1.1步进电机原理2.1.2 步进电机特点2.2 89C51相关知识2.2.1组成框图及内部总体结构2.2.
13、2寄存器和存储器2.3步进电机的控制设计.72.3.1步进电机电路设计82.3.2数码管显示2.3.3键盘设计83 控制系统软件设计113.1主程序设计123.2 键盘程序设计143.3 PROTEUS软件仿真174 结束语19参考文献201 概 述步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。由实验中进行过步进电机的控制实验。经过一个学期的学习对8051
14、单片机有了一定的了解,对实验思考题进行思考和多方资料的参考做了有8051单片机来实现步进电机转数控制。1.1 设计概述结合对步进电机的了解,然后对步进电机的控制原理包括步进电机的控制方式和驱动方式作了系统的说明,采用8051单片机来控制步进电机,并给出了步进电机的双相三拍控制单片机控制和三相六拍的单片机控制的具体实现方法,用汇编程序进行控制运行。1.2 设计主要功能使用单片机以软件方式驱动步进电机,通过编程方法,对步进电机的转速、往返转动的角度以及转动次数等进行控制使其在一定范围下运行,还可以方便灵活地控制步进电机的运行状态,以满足不同用户的要求。 图1.2-1 步进电机2 系统的硬件设计2.
15、1 步进电机2.1.1 步进电机的控制原理 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。如图按右表2.1.1的时序给步机绕组通电,步进电机将产生转动,改变相序通电,步进电机的转
16、向将反相,停止发送脉冲,步机电机将停止运转。表2.1-1 通电次序2.1.2 步进电机的特点 步机电机之所以得到广泛应用的原因是由于步进电机有下列特性:1:步机电机是在脉冲作用下工作,步机电机的速度与加在绕组上的脉冲频率成正比。2:步进马达具有瞬间起动与急速停止的特性。3:改变线圈励磁的顺序,可就能改变马达的转动方向。 2.2 89C51单片计算机的组成原理2.2.1 组成框图及内部总体结构 89C5l内部组成方框图如图2所示,内部总体结构框图如图3所示。64KB总线扩展控制器可编程I/O可编程全双工串行口振荡器和时序OSC程序存储器4KB Flash ROM256字节 RAM/SFR216位
17、定时器/计数器80C51CPU 图2.2-1 89C51单片机组成方框图 89C51主要包括算术逻辑部件ALU、累加器A(有时也称ACC)、只读存储器ROM、随机存储器RAM、指令寄存器IR、程序计数据PC、定时器计数据、 IO接口电路、程序状态寄存器PSW、寄存器组,指令译码器ID,此外,还有堆栈寄存器SP、数据指针寄存器DPTR等部件。这些部件集成在一块芯片上,通过内部总线连接,构成完整的微型计算机。下面按其部件功能分类予以介绍。 图2.2-2 89C51总体结构框图2.2.2 寄存器和存储器微处理器中的寄存器是学习指令系统和程序设计中常会接触到的、寄存器是由触发器组成的,8位寄存器由8个
18、触发器组成,16位寄存器由16个触发器组成。MCS51中的寄存器较多,大体可分为通用寄存器和专用寄存器两类。 图2.2-3微处理器存储器结构 MCS51存储器配置:微型计算机必须配置一定数量的存储器,但不同的微型计算机存储器的配置不同。一种是程序与数据共用一个存储器,如图3(a)所示。一般的通用计算机都采用此种形式。另一种是将程序与数据分别放在两个存储器内,一个称程序存储器,另一个称数据存储器,如图3(b)所示。MCS5l单片机属于此类。这是由单片机的应用特点所决定的,因为单片机往往是为某个特定对象服务的,这是与通用计算机不同的一个显著特点。它的程序设计调试成功后,一般是固定不变的,因而程序(
19、包括常数表)可以而且也应该一次性地永久放到单片机内。这样不仅省去了每次开机后台程序重新装入步骤,还可以有效地防止围掉电和其它干扰而引起的程序丢失的错误。MCS51片内集成有一定容量的程序存储器(803180c318032除外)和数据存储器并具有较大的外部存储器扩展能力。物理上,MCS51有4个存储器空间:片内程序存储器、片外程序存储器,片内数据存储器、片外数据存储器。图5给出了访问程序存储器时,程序取指所涉及到的信号和时序。如果程序存储器是外部的,则程序存储器读选PSEN一般是每个机器周期两次有效,如图5(a)所示,如果是访问外部数据存储器,如图5(b)所示,则要跳过两个PSEN,因为地址和数
20、据总线正在用于访问数据存储器。应该注意的是,数据存储器总线周期为程序存储器总线周期的2倍,图5给出了端口0和端口2所发送的地址ALE和PSEN的相对时序。ALE用于将P0的低位地址字节锁存到地址锁存器中。图2.2-4 MCS-51 执引外部程序存储器中指令码时的总线周期2.3 步进电机的控制设计键盘系统由命令输入单元,微处理器和功率放大器三部分组成。键盘负责发布命令、输入数据,采用带中断的行列式键盘,微处理器负责将命令转化成控制信号。功率放大器具有信号放大的功能。图2.3-1 单片机控制步进电机原理图2.3.1 步进电机电路设计在Proteus环境选用下例元器件,设计电路如图8所示。IN400
21、3、BUTTON:二极管、按纽;7SEG-MPX4-CA、RESPACK-8、80C51、共阳四位一体数码管、排阻、单片机;RES、CAP、CAP-ELEC、AND-4、CRYSTAL:电阻、电容、电解电容、4输入与门、晶振;MOTOR-BISTEPPEA、L298:步机直流电机、电机驱动模块;图2.3-2 整个电路设计图2.3.2 数码管显示用一位共阴极数码管和单片机的P0口相连,显示电机转速的档位,有一档、二档、三档,分别显示1、2、3,在启动时初显示0,清零后也显示0. 图2.3-3 .共阴极数码管2.3.3 键盘设计 当按键数大于8时,通常采用行列式键盘电路。如图所示为用单片机扩展I/
22、O口组成的行列式键盘电路。该图中行线P2.0到P2.5通过上拉电阻接+Vcc,且P2.0- P2.3为列线处于输出状态,P2.4-P2.5为行线,处于输入状态。按键设置在行、列线交点上,行、列线分别连接按键开关的两端。 当键盘上没有键闭合时,行线和列线之间时断开的,所有行线输入全部为高电平。当按下键盘上的某个键使其闭合时,则对应的行线和列线短路,行线输入即为列线输出。如果此时把所有列线初始化为输出低电平,则通过读取行线输入值的状态是否全为1,即可判断有无键按下。共设八个按键,为一档、二档、三档、正转、反转、暂停、继续和清零。具体键盘电路如下图: 图 2.3-4 键盘电路 3 控制系统软件设计程
23、序主要分为主程序、键盘(中断)程序3.1 主程序设计主程序主要完成初始化,设置中断入口程序,并将R7寄存器的5、6、7三位做为功能标志位,R7中的值不停地送累加器,并检测累加器高三位是否为1,若其中有某位为1则转向相应的功能程序。主程序不断的循环处于等待中断状态。流程图如图所示:图3.1-1主程序流程图3.2 键盘程序设计主程序运行期间,若产生中断则转入键盘程序。键盘程序分为5部分:1 . 判断键盘上有无键按下2 . 去除抖动的影响3 . 扫描键盘,得到按下键的键号4 . 判别闭合的键是否释放5 . 键号入累加器,结束中断中断流程图如图所示:图 3.1-2 中断子程序流程图3.3 Proteu
24、s软件仿真在该设计中,利用Proteus软件进行仿真。Proteus是英国Labcenter公司开发的电路分析与仿真软件。运行于Windows操作系统上,可以仿真、分析(SPICE)数字电路、模拟电路、数模混合电路,是目前唯一能实现对51、PIC、AVR、HC11、ARM等处理器的仿真软件。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上
25、讲,是弥补了实验和工程应用间脱节的矛盾和现象图3.3-1 原始数码管显示图3.3-2开始运行程序时数码管显示图3.3-3 正转一段时间后数码管显示图3.3-4 反转一段时间后数码管显示具体程序清单 ORG 0000H LJMP MAIN ORG 0013H LJMP KEYL ORG 0030HMAIN:MOV SP,#60H ;初始化 MOV R0,#00H MOV R1,#00H MOV R3,#40 MOV 72H,#40 MOV P2,#0F0H CLR P3.4 CLR 06H CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 MOV 43H,#00H MOV
26、42H,#00H MOV 41H,#00H MOV 40H,#00H MOV R7,#00H SETB EA SETB IT1 SETB EX1START:SETB 20H ;主程序 CJNE R7,#1,L1 CLR 20H LCALL ZZ SETB 20HL1:CJNE R7,#2,L2 CLR 20H LCALL FF SETB 20HL2:LCALL LEDNNT3:LJMP STARTLED:MOV DPTR,#TAB ;显示程序 SETB P1.4 CLR P1.5 CLR P1.6 CLR P1.7 MOV A,43H MOVC A,A+DPTR MOV P0,A LCALL
27、TT CLR P1.4 SETB P1.5 CLR P1.6 CLR P1.7 MOV A,42H MOVC A,A+DPTR MOV P0,A LCALL TT CLR P1.4 CLR P1.5 SETB P1.6 CLR P1.7 MOV A,41H MOVC A,A+DPTR MOV P0,A LCALL TT CLR P1.4 CLR P1.5 CLR P1.6 SETB P1.7 MOV A,40H MOVC A,A+DPTR MOV P0,A LCALL TT CLR P1.7 RETKEYL: MOV DPTR,#JS CLR EX1 MOV 70H,R0 MOV 71H,R1
28、 MOV 72H,R3 MOV A,P2 MOV P2,#0FH MOV 01H,P2 MOV P2,#0F0H JNB ACC.4,E1 JNB ACC.5,E2 JNB ACC.6,E3 JNB ACC.7,E4 SETB EX1 RETIE1: MOV 20H,#0 LJMP KEYHE2: MOV 20H,#4 LJMP KEYHE3: MOV 20H,#8 LJMP KEYHE4: MOV 20H,#12 LJMP KEYHKEYH:MOV A,01H ;键盘程序 JNB ACC.0,D0 JNB ACC.1,D1 JNB ACC.2,D2 JNB ACC.3,D3 SETB EX1
29、 RETID0: MOV A,#0 ADD A,20H MOV B,#3 MUL AB JMP A+DPTRD1: MOV A,#1 ADD A,20H MOV B,#03H MUL AB JMP A+DPTRD2: MOV A,#2 ADD A,20H MOV B,#3 MUL AB JMP A+DPTRD3: MOV A,#3 ADD A,20H MOV B,#3 MUL AB JMP A+DPTRJS: LJMP LOOP1 LJMP LOOP2 LJMP LOOP3 LJMP LOOP10 LJMP LOOP4 LJMP LOOP5 LJMP LOOP6 LJMP LOOP11 LJM
30、P LOOP7 LJMP LOOP8 LJMP LOOP9 LJMP LOOP15 LJMP LOOP0 LJMP LOOP12 LJMP LOOP13 LJMP LOOP14LOOP0:JB 20H,SS0 LJMP WXSS0: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#0 LJMP RRTLOOP1:JB 20H,SS1 LJMP WXSS1: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#1 LJMP RRTLOOP2:JB 20H,SS2 LJMP WXSS2: MOV 43H,42H MOV
31、 42H,41H MOV 41H,40H MOV 40H,#2 LJMP RRTLOOP3:JB 20H,SS3 LJMP WXSS3: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#3 LJMP RRTLOOP4:JB 20H,SS4 LJMP WXSS4: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#4 LJMP RRTLOOP5:JB 20H,SS5 LJMP WXSS5: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#5 LJMP RRTLOOP6:JB
32、 20H,SS6 LJMP WXSS6: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#6 LJMP RRTLOOP7:JB 20H,SS7 LJMP WXSS7: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#7 LJMP RRTLOOP8:JB 20H,SS8 LJMP WXSS8: MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV 40H,#8 LJMP RRTLOOP9:JB 20H,SS9 LJMP WXSS9: MOV 43H,42H MOV 42H,41H MOV
33、 41H,40H MOV 40H,#9 LJMP RRTLOOP10:MOV A,43H MOV B,#10 MUL AB ADD A,42H MOV R0,A MOV A,41H MOV B,#10 MUL AB ADD A,40H MOV R1,A MOV R3,#40 SETB P3.4 SETB 06H MOV R7,#1 MOV 73H,R7 SETB EX1 RETILOOP11:MOV A,43H MOV B,#10 MUL AB ADD A,42H MOV R0,A MOV A,41H MOV B,#10 MUL AB ADD A,40H MOV R1,A MOV R3,#40
34、 SETB P3.4 SETB 06H MOV R7,#2 MOV 73H,R7 SETB EX1 RETILOOP12:CLR 06H SETB EX1 MOV R0,70H MOV R1,71H MOV R3,72H MOV R7,73H RETILOOP13:SETB P3.4 SETB 06H MOV R0,70H MOV R1,71H MOV R3,72H CJNE R0,#00H,GP1 CJNE R1,#00H,GP2 LJMP GPGP1: INC R3 LJMP GPGP2: DEC R1GP: MOV R7,73H SETB EX1 RETILOOP14:MOV SP,#6
35、0H MOV R0,#00H MOV R1,#00H MOV R3,#40 MOV 72H,#40 MOV P2,#0F0H CLR P3.4 CLR 06H CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 MOV 43H,#00H MOV 42H,#00H MOV 41H,#00H MOV 40H,#00H MOV R7,#00H SETB EA SETB IT1 SETB EX1 SETB EX1 RETILOOP15:JB 20H,SS10 LJMP WXSS10: MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#0
36、0H SETB EX1 RETIRRT: SETB EX1 CLR P3.4 CLR 06H RETIWX: MOV R0,70H MOV R1,71H MOV R3,72H MOV R7,73H SETB 06H RETIZZ: CJNE R0,#00H,FORWCYCLE ;正转圈,步程序NEXT2:CJNE R1,#00H,STEP LCALL SC MOV R0,#00H MOV R1,#00H MOV R3,#40 MOV 72H,#40 MOV P2,#0F0H CLR P3.4 CLR 06H MOV 43H,#00H MOV 42H,#00H MOV 41H,#00H MOV
37、40H,#00H MOV R7,#00H SETB EA SETB IT1 SETB EX1 RETFORWCYCLE:MOV R3,72HNEXTFORSTEP:LCALL FORWSTEP DEC R3 JB 06H,NT2 CLR P3.4 RETNT2: CJNE R3,#00H,NEXTFORSTEP MOV 72H,#40 DEC R0 LJMP ZZSTEP: LCALL FORWSTEP ;正转一步子程序 JB 06H,NT1 CLR P3.4 RETNT1: DEC R1 LJMP NEXT2FORWSTEP:JB 06H,NT LCALL SC MOV R7,#0 RETNT: SETB P1.0 CLR P1.1 SETB P1.2 CLR P1.3 L