基于51单片机步进电机课程设计概要

合集下载

关于51单片机步进电机调速的课程设计及步进电机调速程序

关于51单片机步进电机调速的课程设计及步进电机调速程序

指导教师评定成绩:审定成绩:重庆邮电大学自动化学院计算机控制技术课程设计报告基于MCS51单片机控制系统设计单位(二级学院): xxxxx学生姓名: xxxx专业:自动化班级: xxxxx学号: xxxxxx指导教师: xxxx设计时间: 2012 年 6 月重庆邮电学院自动化学院制摘要 (3)第1章本次设计的基本要求 (4)1.1基本要求 (4)第2章方案的论证 (4)2.1 控制方式的确定 (4)2.2 驱动方式的确定 (5)2.3 驱动电路的选择 (5)2.4 基本方案的确定 (6)第3章硬件电路的设计 (7)3.1 单片机的选择 (7)3.1.1 单片机的引脚功能 (7)3.1.2 主要特性: (8)3.2 步进电机的选择 (9)3.3驱动电路的选择 (10)3.4 显示电路与键盘的选择 (11)3.5 反馈电路的选择 (13)3.5.1光电编码器原理 (13)3.5.2步进电机测速原理 (14)3.5.3闭环PID控制原理 (14)第4章算法的设计: (15)4.1步进电机控制算法 (15)4.2 步进电机转速测量算法 (15)4.3 PID 控制算法 (15)4.3.1 位置式PID的控制算法 (16)4.3.2 增量式PID的控制算法 (16)第5章实验结果 (18)第6章问题总结 (20)6.1复位电路: (20)6.2数码管驱动: (20)6.3独立键盘: (21)6.4步进电机算法整定: (21)6.5焊接电路图: (22)第7章参考文献 (23)附录一分工表 (24)附录二:系统PCB图 (25)附录三:电路原理图 (26)附录四:仿真原理图 (27)附件五:元器件封装规格 (28)附录六:源程序 (29)摘要步进电机和直流电机原理及其驱动程序控制控制模块,通过AT89C51完成步进电机和直流电机各种运行方式的控制。

实现步进电机的正反转速度控制并且显示数据。

整个系统采用模块化设计,结构简单、可靠,通过按键控制,操作方便,节省成本。

基于51单片机的步进电机控制

基于51单片机的步进电机控制
7
电)四拍(A-B-C-D-A。。。),双(双相绕组通电)四拍(AB-BC- CD-DA-AB-。。。), 八拍(A-AB-B-BC-C-CD-D-DA-A。。。) 3、系统电路图
(1)接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容 0.1uF (2)接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用 12MHz), 还有辅助电容 20pF (3)接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析 复位工作原理 4、 接配置:EA(PIN31) (1)四个 8 位通用 I/O 端口,对应引脚 P0、P1、P2 和 P3; (2)两个 16 位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) (3)一个串行通信接口;(SCON,SBUF) (4)一个中断控制器;(IE,IP) 根据以上的方案比较与论证确定总体方案,确定硬件原理图。原理图如下:
1.3 步进电机的特点
1.精度高 一般的步进电机的精度为步进角的 3-5%,且不累积。可在宽 广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反 转控制及制动 等,这是步进电动机最突出的优点
2.过载性好——其转速不受负载大小的影响,不像普通电机,当负载加大 时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的 场合;
一、步进电机与驱动电路
1.1 什么是步进电机
步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱 动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度 (及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目 的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调 速的目的。

基于51单片机的步进电机控制

基于51单片机的步进电机控制

目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (4)2.3功能模块的设计与实现 (5)第3章结果测试及分析 (8)3.1结果测试 (8)3.2结果分析 (8)参考文献 (9)附录A (10)附录B(电路原理图) (15)附录C (元件列表) (16)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容与要求,要实现步进电机的工作过程,步进电机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置,也是一种能把输出位移增量和输入数字脉冲对应的驱动器件。

首先要给步进电机送入脉冲信号来启动,然后在已经设定好的步进电机的正反转及三种节拍工作方式中切换,步进电机的三种节拍工作方式分别为单四拍、双四拍、单双八拍。

步进电机的驱动需要时钟脉冲信号,改变单片机输出脉冲信号来实现的。

改变各脉冲的先后顺序,可以改变电机的旋转方向和工作方式。

步进电机工作方式的转换则通过键盘控制,可以进行启动、停止、正转、反转及三种节拍工作方式的选择。

键盘的控制是在程序中已经给给每个键设置相应的功能,扫描键盘判断是否有键按下,若有,则执行与之对应的功能;若没有键按下,则保持正在运行的状态不变。

1.2 设计思路采用C语言程序设计的方法结合硬件电路设计方法,利用Lab6000实验箱上已有芯片来实现步进电机的工作(包括正转、反转、单四拍、双四拍、单双八拍的节拍工作方式)。

1)提出方案首先,实现步进电机的启动与停止;其次,实现步进电机的正反转;再次,实现在正转时可选择三种节拍工作方式;最后,实现在反转时可选择三种节拍工作方式。

2)方案论证P1口接步进电机的A~D口,键盘接通片选信号,扫描键盘,由于本程序设定固定按键为功能键,所以扫描键盘时,将使用到的按键的相应列扫描码设置为低电平,如果有键按下,74LS374输出的低电平经过按键被接到74LS245的端口上,这样从74LS245读回的数据就会有低位,根据74LS374输出的列信号和74LS245读回的行信号,就可以判断哪个键被按下。

基于51单片机的步进电机控制系统设计

基于51单片机的步进电机控制系统设计

基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。

本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。

一、硬件设计步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。

1.51单片机选择由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。

本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。

2.外部电源步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。

电源电压和电流的大小需要根据具体的步进电机来确定。

3.步进电机驱动模块步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。

常用的步进电机驱动芯片有L297、ULN2003等。

4.其他辅助电路为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。

这些电路的设计需要根据具体的应用来确定。

二、软件设计1.系统初始化系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。

根据实际需求还可以进行其他模块的初始化设置。

2.步进电机驱动程序步进电机的驱动程序主要通过脉冲信号来控制电机的转动。

脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。

脉冲信号可以通过定时器产生,也可以通过外部中断产生。

3.运动控制算法步进电机的运动控制可以采用开环控制或闭环控制。

开环控制简单,但无法保证运动的准确性和稳定性;闭环控制通过对电机转动的反馈信号进行处理来调整脉冲信号的生成,从而实现精确的运动控制。

4.其他功能设计根据具体的应用需求,可以加入其他功能设计,如速度控制、位置控制、加速度控制等。

基于51单片机的步进电机控制系统设计与实现

基于51单片机的步进电机控制系统设计与实现

步进电机工作原理
步进电机是一种基于磁场的控制系统,工作原理是当电流通过定子绕组时,会 产生一个磁场,该磁场会吸引转子铁芯到相应的位置,从而产生一定的角位移。 步进电机的角位移量与输入的脉冲数量成正比,因此,通过控制输入的脉冲数 量和频率,可以实现精确的角位移和速度控制。同时,步进电机具有较高的分 辨率和灵敏度,可以满足各种高精度应用场景的需求。
二、系统设计
1、硬件设计
本系统主要包括51单片机、步进电机、驱动器、按键和LED显示等部分。其中, 51单片机负责接收按键输入并控制步进电机的运动;步进电机用于驱动负载运 动;驱动器负责将51单片机的输出信号放大,以驱动步进电机。LED显示用于 显示当前步进电机的状态。
2、软件设计
软件部分主要包括按键处理、步进电机控制和LED显示等模块。按键处理模块 负责接收用户输入,并根据输入控制步进电机的运动;步进电机控制模块根据 按键输入和当前步进电机的状态,计算出步进电机下一步的运动状态;LED显 示模块则负责实时更新LED显示。
三、系统实现
1、按键输入的实现
为了实现按键输入,我们需要在主程序中定义按键处理函数。当按键被按下时, 函数将读取按键的值,并将其存储在全局变量中。这样,主程序可以根据按键 的值来控制步进电机的转动。
2、显示输出的实现
为了实现显示输出,我们需要使用单片机的输出口来控制显示模块的输入。在 中断服务程序中,我们根据设定的值来更新显示模块的输出,以反映步进电机 的实时转动状态。
基于单片机的步进电机控制系统需要硬件部分主要包括单片机、步进电机、驱 动器、按键和显示模块等。其中,单片机作为系统的核心,负责处理按键输入、 控制步进电机转动以及显示输出等功能。步进电机选用四相八拍步进电机,驱 动器选择适合该电机的驱动器,按键用于输入设定值,显示模块用于显示当前 步进电机的转动状态。

基于单片机的步进电机的控制课程设计报告

基于单片机的步进电机的控制课程设计报告

单片机课程设计报告步进电机控制学院:电气学院班级:电气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口为输入,作为行线。

51步进电机课程设计

51步进电机课程设计

51步进电机课程设计一、课程目标知识目标:1. 学生能理解步进电机的原理与结构,掌握其工作方式和分类。

2. 学生能掌握51单片机对步进电机的控制方法,包括脉冲信号的产生与分配。

3. 学生能解释步进电机在自动化设备中的应用,了解其在不同行业中的功能。

技能目标:1. 学生能够独立完成51单片机与步进电机的连接,进行基本的编程控制。

2. 学生通过实践,学会调试步进电机参数,优化电机运行效果。

3. 学生能够设计并实现简单的步进电机控制系统,解决实际问题。

情感态度价值观目标:1. 学生通过课程学习,培养对工程技术的兴趣,增强创新实践的意识。

2. 学生在团队协作中,学会相互尊重、沟通与配合,培养集体荣誉感。

3. 学生认识到科技对社会发展的作用,理解技术在实际应用中的价值,形成正确的技术观。

课程性质:本课程为实践性强的工程技术课程,结合理论教学与动手操作,旨在提高学生的实际应用能力。

学生特点:考虑到学生年级特点,课程设计需兼顾理论知识的深度和操作实践的难度,确保学生能够理解和掌握。

教学要求:教学内容与实际应用紧密结合,注重培养学生的动手能力和问题解决能力,通过任务驱动的方式,激发学生的学习兴趣和探究精神。

目标分解为具体可衡量的学习成果,以便于教学设计和评估。

二、教学内容1. 步进电机原理及分类:介绍步进电机的组成结构、工作原理,对比不同类型的步进电机特点及应用场景。

- 教材章节:第三章“步进电机原理及特性”2. 51单片机控制基础:回顾51单片机的结构、编程基础,学习如何利用51单片机产生脉冲信号,实现对步进电机的控制。

- 教材章节:第二章“51单片机原理与应用”3. 步进电机驱动电路设计:讲解步进电机驱动电路的原理,学习如何搭建驱动电路,连接51单片机与步进电机。

- 教材章节:第四章“步进电机驱动电路设计”4. 步进电机控制程序编写:学习编写控制程序,实现对步进电机的启停、转向、速度调节等基本功能。

- 教材章节:第五章“步进电机控制程序设计”5. 步进电机控制系统实践:分组进行项目实践,设计并实现一个简单的步进电机控制系统,如自动化窗帘、智能小车等。

基于51的步进机控制器设计概要

基于51的步进机控制器设计概要

绍兴文理学院课程设计课程名称:单片机机及其应用课题名称::步进机控制器设计姓名:杨见班级:自动化131学号:13132130专业:自动化指导老师:任沙浦目录第1节目的与目标 (3)第2节AT89C51单片机相关资料 (3)2.1AT89C51简介 (3)2.2引脚简介: (3)2.3最小系统: (5)2.4复位电路: (5)第3节步进机原理 (5)3.1步进机简介 (5)3.2线圈通电表 (6)3.3步进电机的基本术语 (6)第4节设计过程 (7)4.1设计方案与思路 (7)4.2Protues仿真图: (8)第5节程序设计及其框图 (8)5.1主程序: (8)5.2数码管显示: (9)5.3按键控制: (11)第6节硬件设备 (11)6.1元器件: (11)第7节总结 (12)7.1心得体会 (12)7.2收获 (12)第8节参考文献 (12)第9节附件: (12)第1节目的与目标利用所学单片机和模数电的知识以及基本焊接技术,通过对课题进行剖析查资料,确定设计方案,然后进行相关硬件的组装及焊接,调试,最后将写好的程序烧入单片机内,运行调试直至达到规定要求。

此课题为步进机控制器设计,要求:1.步进机能实现正反转 2.步进机能进行加减速第2节AT89C51单片机相关资料2.1AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and ErasableRead Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

2.2引脚简介:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息与电气工程学院课程设计说明书(2012/2013学年第二学期)课程名称:单片机课程设计题目:步进电机控制实验专业班级:自动化1002班学生姓名:***学号:*******指导教师:苗敬利,王巍设计周数:2周设计成绩:13年6 月17 日目录第1章设计目的............................... 错误!未定义书签。

第2章设计任务与要求.. (3)第3章设计思路与方案 (4)3.1 控制电机正/反向转 (4)3.2 控制电机运转速度 (5)第4章硬件电路设计 (5)4.1 主控模块 (5)4.2 驱动控制模块 (6)4.3 按键控制模块 (7)4.4 显示模块 (8)第5章系统软件设计 (9)5.1 主程序 (9)5.2 子程序 (10)第6章系统仿真 (10)6.1 KEIL调试控制程序 (10)6.2 Proteus仿真 (11)第7章收获与体会 (12)附录1 总电路图 (15)附录2 源程序清单 (16)步进电机简易控制系统设计第一章设计目的步进电机是现代数字控制技术中最早出现的执行部件,步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

需要单片机产生脉冲序列和方向控制控制信号。

步进电机的特点是可以将数字脉冲控制信号直接转换为一定数值的机械角位移.并且能够自动产生定位转矩使转轴锁定。

对控制系统的研制中最基本的要求就是性能可靠和结构简单。

利用AT89S52单片机来设计和开发步进电机的控制系统,可以很好地满足这一要求。

驱动程序写入AT89S52单片机中,通过程序控制步进电机的转速与转向。

实现软件与硬件相结合的控制方法,使步进电机运行稳定、可靠性高,达到对步进电机的最佳控制。

第2章设计任务与要求(1)能用按键控制步进电机的正反装运行。

(2)能在一定范围内控制电机的加速和减速。

(3)在不断电的情况下能通过一个按钮能随时控制电机的停止。

(4)能显示电机当前的运行情况。

第3章设计思路与方案对步进电动机的控制,接口采用软件方法控制步进电动机的旋转。

步进电动机的驱动电路由ULN2003A芯片实现,并通过90C52芯片的P1.0~P1.6端口引脚出发,然后通过ULN2003A芯片再驱动电动机。

操作部分共分为五个操作按钮:正转、反转、暂停、加速、减速。

其中正反转通过接入步进电机绕组的不同相序来实现。

加速、减速是通过延时时间的改变调整输入电机绕组的频率实现。

停止按钮则保证随时可以在不断电源情况下暂停。

五个操作按键分别通过90C52芯片的P3.0~P3.4口读取正/反转控制信号(K1、K2)、启/停(K0)以及加速/减速控制(K3、K4)的值。

对步进电机简易控制系统的设计,其具体情况可以根据任务要求从以下几个方面来考虑:3.1 控制电机正/反向转步进电动机某一项绕组通电时,在其内部形成N-S极,产生磁场,在磁场的作用下,转子将会转动,步进一步。

若步进电动机按顺序给绕组通电,步进电动机将沿顺时针方向转动。

若步进电动机按逆序给绕组通电,则步进电动机将沿逆时针方向转动。

因而只要控制脉冲输出的顺序,就可实现对步进电动机正/反转的控制。

3.2 控制电机运转速度步进电动机运转的速度是由输入到电机绕组的频率所决定的。

频率越高,电动机运转的速度越快,否则,速度就越慢。

因而通过延时程序控制输出脉冲的频率,就可以实现对步进电动机转速的控制。

第4章硬件电路设计步进电机简易控制系统设计包含了主控模块、按键控制模块、驱动控制模块、显示模块四个模块。

其功能实现是首先利用按键模块输入所要执行的任务,然后通过主控模块调用所对应的程序并把信息送给步进电机,使电机按照所按下的按钮命令来运转,同时在显示屏上显示当下的运行状态。

从而实现步进电机简易控制系统设计的功能。

其硬件总电路图如附录一所示。

4.1 主控模块主控模块采用的是89C52单片机芯片来控制。

89C52是一个8位单片机,片内ROM 全部采用FLASH ROM技术,晶振时钟为12MHz。

89C52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。

第31引脚需要接高电位使单片机选用内部程序存储器;P3口的引脚10到引脚14分别接正转按钮、反转按钮、暂停按钮、加速按钮、减速按钮;引脚1到引脚7分别接芯片LN2003A的1、2、3、4引脚。

芯片接线简图如图1所示。

图1 90C52芯片图4.2 驱动控制模块驱动电路主要是利用PNP、NPN、二极管等组成的电路,电路图如下图2所示,电路中的PC0、PC1、PC2、PC3分别接单片机AT89C52的P1.0、P1.1、P1.2、P1.3;电路接5V高电平,目的是驱动电机,使电机正常工作。

图2 驱动电路图4.3 按键控制模块按键模块有五个按钮,正转按钮、反转按钮、加速按钮、减速按钮和暂停按钮,它们分别控制电机的正向转动、反向转动、加速、减速和随时暂停。

如下图2所示:K1正向转动按钮一端接单片机AT89C52的P3.0(引脚10),K2反向转动按钮一端接单片机AT89C52的P3.1(引脚11),K3暂停按钮接一端单片机AT89C52的P3.2(引脚12),K4是加速按钮一端接单片机AT89C52的P3.3(引脚13),K4是减速按钮一端接单片机AT89C52的P3.4(引脚14),同时都接地。

当按下其中任意一个键时,其状态的变换都会通过相应的端口输入单片机,从而完成控制的输入。

图3 按键控制模块图4.4 显示模块使电机正常工作。

P2.0口控制位显示,P0.0~P0.6控制段显示。

同时都通过一个上拉电阻接高电平,上拉电阻起到限流作用。

图4 显示模块第5章系统软件设计5.1 主程序主程序的源程序见附录二源程序清单表,正转子程序及主程序设计流程图如下图4 图5所示:图5图65.2 子程序子程序有正\反转子程序、正转加\减速子程序、反转加\减速子程序、延时子程序和显示子程序。

它们的源程序见附录二源程序清单表。

第6章系统仿真6.1 KEIL调试控制程序调试程序具体步骤如下:(1)打开Keil编译软件。

(2)新建一个项目,在项目里进行设置,转换成HEX文件。

(3)将刚写好的汇编语言程序添加进去。

(4)点击编译生成后缀名为“. HEX”的文件。

6.2 Proteus仿真打开 Proteus 上的单片机控制步进电机电路图,点击AT89C52单片机,调用后缀名为.”HEX”的文件。

点击运行,观察现象。

当按下Proteus软件上的开始按钮时,电机不转动。

其显示如图6所示:图7 暂停转动图当按下K2按钮时,电机则正向转动,电机转动一段时间后的显示图如图8所示:图8 反向转动图当按下K1按钮时,电机开始正向转动,电机上显示的是转过的角度。

下面是当电机反向转动一段时间后的显示图如图7所示:图9 正向转动图当按下按钮K4或K5时,电机相应的做加速转动或减速转动,但加速或减速到一定范围是则不能再加速或减速了。

K3是控制电机的暂停,任意时刻按下K3按钮,电机就停止转动。

当再次按下按钮K1或K2按钮时电机又重新开始工作。

第7章收获与体会此次课程设计也许我们小组的每一位成员都收获了许多。

实验前,我们对单片机电脑仿真软件完全没有概念,而且我们收到的方案要求比较迟,所以在接收到方案时我们完全不知道自己究竟要干什么。

然后我们上网查了很多资料,并且学着用isis及Keil uVision2软件去进行仿真分析,此次课程设计使我对步进电机的控制有了更深的了解,对单片机也有了更高层次的了解。

也使我意识到许多地方的缺陷,所谓基础不牢地洞山摇。

单片机编程是用汇编语言进行编程,也就需要我们对电路的分析,然后总结,查阅相关资料才能变成好的程序,编程讲究的是多动手写,自己写,用自己的思路,不怕写错,写错再改,懂得有新的思想这样才能提高。

设计前首先要考虑好要实现的基本功能,选择和设计好相应的硬件电路及程序架构,软硬结合,同时考虑到以后想要扩展功能,因此硬件电路及程序架构应有可扩展的潜力,这就要求进行程序设计应尽可能考虑利用各种中断,使CPU资源有效利用,同时尽可能扩展IO口,实现IO口的最大利用。

如若只是利用查询方式,则光是实现步进电机的控制与发光二极管的控制,就已经是相当的勉强。

其次,要考虑到步进电机的步距角及要求的最小的脉冲周期,这就涉及到延时程序的延时时间选择,要使电机转得动,延时时间不能过小,又要转的明显,延时时间不能过大,同时,又要使加速、常速、减速的梯度比较明显,即延时时间的控制要有技巧。

最后,成员的有效分工,充分要利用各成员的优势,能使事倍功半。

通过本次实验,我们小组受益匪浅。

一方面,我们将课堂上的理论知识应用到了实际,加强巩固了理论知识,也提高了实际动手能力,通过实践反馈,了解到我们自身知识面的不足。

另一方面,在实验过程中,遇到问题时候,我们小组列出可能问题,一一进行排查,找出问题的所在,队员之间分工明确,团结合作,本次实验正是通过队员之间的合作实现的。

附录1 总电路图附录2源程序清单;程序功能:开关控制步进电机正反转;数码管显示0表示电动机正转;1表示电动机反转;2表示电动机正转加速;3表示电动机正转减速;4表示电动机反转加速;5表示电动机反转减速;键的端口定义 K1 EQU P3.0 ;正转键K2 EQU P3.1 ;反转键K3 EQU P3.2 ;停止键K4 EQU P3.3 ;加速K5 EQU P3.4 ;减速;主程序STOP: MOV P1, #0FFH ;关闭P1口LOOP: JNB K1, Z_M2 ;正转键按下转正转扫描部分 JNB K2, F_M2 ;反转键按下转反转扫描部分JNB K3, STOP1 ;停止键按下转停止部分JMP LOOP;----------------------------- ;键盘消抖STOP1: ACALL DELAYJNB K3, $ACALL DELAYJMP STOPZ_M2: ACALL DELAYJNB K1, $ACALL DELAYJMP Z_MF_M2: ACALL DELAYJNB K2, $ACALL DELAYJMP F_M;--------------------------- ;正转子程序Z_M: MOV R0,#00HZ_M1:MOV R7,#0ACALL DISPLAYMOV A, R0MOV DPTR, #TABLEMOVC A,@A+DPTRJZ Z_MMOV P1,AJNB K3, STOP1JNB K2, F_M2JNB K4, ACC_M2_ZZJNB K5, DLY_M2_ZZACALL DELAYINC R0JMP Z_M1RET;----------------------------- ;反转子程序F_M: MOV R0,#05HF_M1:MOV R7,#1ACALL DISPLAYMOV A, R0MOV DPTR, #TABLEMOVC A,@A+DPTRJZ F_MMOV P1,AJNB K3, STOP1JNB K1, Z_M2JNB K4, ACC_M2_FZJNB K5, DLY_M2_FZACALL DELAYINC R0JMP F_M1RET;-----------------------------;正转加速子程序ACC_M2_ZZ: MOV R0,#00HACC_M1: MOV A, R0MOV DPTR, #TABLEMOVC A,@A+DPTRJZ ACC_M2_ZZMOV P1,AJNB K3, STOP1JNB K5, DLY_M2_ZZJNB K2, F_M2ACALL DELAY1INC R0MOV R7,#2ACALL DISPLAYJMP ACC_M1RET;-----------------------------;正转减速子程序DLY_M2_ZZ:MOV R0,#00HACC_M2: MOV A, R0MOV DPTR, #TABLEMOVC A,@A+DPTRJZ DLY_M2_ZZMOV P1,AJNB K3, MID1JNB K2, F_M2JNB K4, ACC_M2_ZZACALL DELAY2INC R0MOV R7,#3ACALL DISPLAYJMP ACC_M2RETMID1: LJMP STOP1MID2: LJMP Z_M2;-----------------------------;反转加速子程序ACC_M2_FZ: MOV R0,#05HDLY_M1: MOV A,R0MOV DPTR, #TABLEMOVC A,@A+DPTRJZ ACC_M2_FZMOV P1,AJNB K3, MID1JNB K1, MID2JNB K5, DLY_M2_FZACALL DELAY1INC R0MOV R7,#4ACALL DISPLAYJMP DLY_M1RET;-----------------------------;反转减速子程序DLY_M2_FZ: MOV R0,#05HDLY_M2: MOV A, R0MOV DPTR, #TABLEMOVC A,@A+DPTRJZ DLY_M2_FZMOV P1,AJNB K3, MID1JNB K1, MID2JNB K5, ACC_M2_FZACALL DELAY2INC R0MOV R7,#5ACALL DISPLAYJMP DLY_M2RET;----------------------------- ;延时子程序DELAY1:MOV R1,#10JMP D1DELAY2:MOV R1,#100JMP D1DELAY: MOV R1,#40D1: MOV R2,#248DJNZ R2,$DJNZ R1,D1RETDISPLAY:PUSH ACC ;显示子程序PUSH DPHPUSH DPLMOV A,R7CHANG: MOVC A,@A+DPTRMOV P0,A CLR P2.0ACALL DELAY2SETB P2.0POP DPLPOP DPHPOP ACCRETTAB: DB 3FH,06H,5BH,4FH ;显示字符存放表DB 66H, 6DH, 7DH, 07HDB 7FH, 6FH, 77H, 7CHDB 39H, 5EH, 79H, 71H ;-----------------------------TABLE: DB 0FCH, 0F9H, 0F3H, 0F6H ;正反转编码存放表DB 00DB 0F3H, 0F9H, 0FCH, 0F6HDB 00/* DB 0F7H, 0F3H, 0FBH, 0F9HDB 00H*/;-------------------------------END。

相关文档
最新文档