步进电机转速控制系统

合集下载

步进电机运动控制系统设计

步进电机运动控制系统设计

步进电机运动控制系统设计设计时考虑到CPU在执行指令时可能受到干扰的冲击,导致程序”跑飞”或者进入”死循环”,因此,设计了看门狗电路,使用的是MAXIM公司生产的微处理系统监控集成芯片MAXI813。

本文还详细地给出了相关的硬件框图和软件流程图,并编制了该汇编程序。

步进电机最早是在1920年由英国人所开发。

1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。

以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的系统中。

在生产过程中要求自动化、省、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。

步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。

随着微和技术的发展,步进电机的需求量与日俱增,在各个国民领域都有应用。

步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。

步进电机可以直接用数字信号驱动,使用非常方便。

一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。

步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。

在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。

因此非常适合于单片机控制。

步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。

步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。

传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。

步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。

单片机步进电动机控制系统设计

单片机步进电动机控制系统设计

前言单片机是一个单芯片形态、面向控制对象的嵌入式应用计算机系统。

它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域。

从此,计算机技术在两个重要领域-—通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。

采用8031单片机控制步进电机,可实现步进电动机正反转控制和步进电动机的无级调速。

分析了步进电机的工作原理,讨论了系统硬件和软件的设计方法,并给出了步进电机的四相八拍单片机控制的具体实现方法。

该系统操作简单,降低了成本,提高了系统的可靠性。

步进电机具有控制方便和体积小等特点,因此在智能仪表和位置控制中得到了广泛的应用。

近年来大规模集成电路的发展以及各种单片机的迅速发展和普及,为设计功能强、价格低的步进电机控制驱动器提供了先进的技术和充足的资源.步进电动机是一种将电脉冲信号转换成相应角位移或线位移的电动机,它的运行需要专门的驱动电源,驱动电源的输出受外部的脉冲信号控制。

每一个脉冲信号可使步进电机旋转一个固定的角度,这个角度称为步距角。

脉冲的数量决定了旋转的总角度,脉冲的频率决定了电动机旋转的速度,改变绕组的通电顺序可以改变电机旋转的方向。

在数字控制系统中,它既可以用作驱动电动机,也可以用作伺服电动机.它在工业过程控制中得到广泛的应用,尤其在智能仪表和需要精确定位的场合应用更为广泛。

1 单片机的基本知识1。

1 概述单片微型计算机简称单片机,由于它的结构及功能均是按工业控制要求设计的,所以其确切的名称应是单片微控制器(Single Chip Microcontroller).它是把微型机算计的各个功能部件:中央处理器CPU、随机存储器RAM、只读存储器ROM、并行I/O接口、定时器/计数器及串行通信接口等集成在一块芯片上,构成一个完整的微型计算机系统,故又把它称为单片微型计算机系统(Single Chip Microcomputer).由于单片机面对的是测控对象,突出的是控制功能,所以它从功能和形态上来说都是应控制领域应用的要求而诞生的.随着单片机技术的发展,它在芯片内集成了许多面对测控对象的接口电路,如ADC、DAC、高速I/O口、PWM、WDT等。

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

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

D10-基于单片机旳步进电机控制系统一、理解什么是步进电机以及其工作原理步进电机是数字控制电机,步进电机旳运转是由电脉冲信号控制旳,其角位移量或线位移量与脉冲数成正比,每个一种脉冲,步进电机就转动一种角度(不距角)或前进、倒退一步。

步进电机旋转旳角度由输入旳电脉冲数确定,因此,也有人称步进电机为数字/角度转换器。

步进电机旳各相绕组按合适旳时序通电,就能使步进电机转动。

当某一相绕组通电时,对应旳磁极产生磁场,并与转子形成磁路,这时,假如定子和转子旳小齿没有对齐,在磁场旳作用下,由于磁通具有力图走磁阻最小途径旳特点,则转子将转动一定旳角度,使转子与定子旳齿互相对齐,由此可见,错齿是促使电机旋转旳原因。

二、步进电机旳特点(1)步进电机旳角位移与输入脉冲数严格成正比,因此当它转一转后,没有合计误差,具有良好旳跟随性。

(2)由步进电机与驱动电路构成旳开环数控系统,既非常以便、廉价,也非常可靠。

同步,它也可以有角度反馈环节构成高性能旳闭环数控系统。

(3)步进电机旳动态响应快,易于启停、正反转及变速。

(4)速度可在相称宽旳范围内平滑调整,低速下仍能保证获得很大旳转矩,因此一般可以不用减速器而直接驱动负载。

(5)步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电源。

(6)步进电机自身旳噪声和振动比较大,带惯性负载旳能力强。

三、步进电机旳控制步进电机旳控制重要包括换相次序旳控制、速度控制、速度控制、加减速控制等,控制系统就是运用单片机旳功能实现以上控制旳系统,即本次设计旳目旳。

四、示意图五、硬件设计计划本设计旳硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。

最小系统只要是为了使单片机正常工作。

控制电路只要由开关和按键构成,由操作者根据对应旳工作需要进行操作。

显示电路重要是为了显示电机旳工作状态和转速。

驱动电路重要是对单片机输出旳脉冲进行功率放大,从而驱动电机转动。

(1)控制电路根据步进电机旳工作原理可以懂得,步进电机转速旳控制重要是通过控制通入电机旳脉冲频率,从而控制电机旳转速。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

步进电机控制系统设计

步进电机控制系统设计

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。

本设计运用了8086 CPU芯片以及74273芯片、8255A芯片和步进电机以及7位小功率驱动芯片ULN2003A、指示灯等辅助硬件电路,设计了步进电机正反转及调速系统。

绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。

该步进电机的正反转及调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速。

关键词:步进电机;正反转;调速控制;ULN2003A芯片;8086微机系统1、课程设计任务书1.1任务和目的 (4)1.2设计题目 (4)1.3内容和要求 (4)1.4列出使用元器件和设备清单 (4)2、绪论 (4)3、步进电机的总体方案 (6)4、步进电机的硬件设计 (7)4.1总体设计思路 (7)4.2电路原理图 (10)4.3线路连接图 (11)5、步进电机软件设计 (12)5. 1流程图 (12)5.2控制程序 (14)&调试说明 (19)6.1调试过程 (19)6.2调试缺陷 (19)7、总结收获 (19)8、参考文献 (20)附录:元器件及设计清单1. 课程设计任务书1.1任务和目的掌握微机硬件和软件综合设计的方法。

1.2设计题目步进电机控制系统设计1.3内容和要求1. 基本要求:控制步进电机转动,要求转速1步/1秒;设计实现接口驱动电路。

2. 提高要求:改善步进电机的控制性能,控制步进电机转/停;正转/反转;改变转速(至少3挡);1.4列出使用元器件和设备清单8086cpu可编程并行接口8255指示灯键盘74LS138译码器驱动模块步进电机2. 绪论步进电机又称脉冲电动机或阶跃电动机,国外一般称为Step motor或Steeping motor、Stepper servo Steppe,等等。

基于PLC的步进电机运动控制系统设计

基于PLC的步进电机运动控制系统设计

机电工程系基于PLC的步进电机运动控制系统设计专业:测控技术与仪器指导教师:xxx姓名: xxx _______________(2011年5月9日)目录一、步进电机工作原理 (1)1。

步进电机简介 (1)2。

步进电机的运转原理及结构 (1)3。

旋转 (1)4。

步进电动机的特征 (2)1)运转需要的三要素:控制器、驱动器、步进电动机 (2)2)运转量与脉冲数的比例关系 (2)3)运转速度与脉冲速度的比例关系 (2)二、西门子S7-200 CPU 224 XP CN (2)三、三相异步电动机DF3A驱动器 (3)1。

产品特点 (3)2。

主要技术参数 (3)四、PLC与步进电机驱动器接口原理图 (5)五、PLC控制实例的流程图及梯形图 (5)1.控制要求 (5)2。

流程图 (5)3.梯形图 (6)六、参考文献 (6)七、控制系统设计总结 (6)基于PLC的步进电机运动控制系统设计一、步进电机工作原理1.步进电机简介步进电机是一种将电脉冲转化为角位移的执行机构。

通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。

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

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单2.步进电机的运转原理及结构电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。

0、1/3て、2/3て,即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A’与齿5相对齐,(A'就是A,齿5就是齿1)3.旋转如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力,以下均同)。

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

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

基于STM32的步进电机控制系统设计与实现1. 引言步进电机是一种常见的电动机类型,具有定位准确、结构简单、控制方便等优点,在自动化控制领域得到广泛应用。

本文将介绍基于STM32单片机的步进电机控制系统设计与实现,包括硬件设计、软件开发和系统测试等内容。

2. 硬件设计2.1 步进电机原理步进电机是一种将输入脉冲信号转换为角位移的设备。

其工作原理是通过改变相邻两相之间的电流顺序来实现转子旋转。

常见的步进电机有两相、三相和五相等不同类型。

2.2 STM32单片机选择在本设计中,我们选择了STM32系列单片机作为控制器。

STM32具有丰富的外设资源和强大的计算能力,非常适合用于步进电机控制系统。

2.3 步进电机驱动模块设计为了实现对步进电机的精确控制,我们需要设计一个步进电机驱动模块。

该模块主要包括功率放大器、驱动芯片和保护电路等部分。

2.4 电源供应设计步进电机控制系统需要稳定可靠的电源供应。

我们设计了一个电源模块,用于为整个系统提供稳定的直流电源。

3. 软件开发3.1 开发环境搭建在软件开发过程中,我们需要搭建相应的开发环境。

首先安装Keil MDK集成开发环境,并选择适合的STM32单片机系列进行配置。

3.2 步进电机控制算法步进电机控制算法是实现步进电机精确控制的关键。

我们可以采用脉冲计数法、速度闭环控制等方法来实现对步进电机的位置和速度控制。

3.3 驱动程序编写根据硬件设计和步进电机控制算法,我们编写相应的驱动程序。

该程序主要负责将控制信号转换为驱动模块所需的脉冲信号,并通过GPIO口输出。

3.4 系统调试与优化在完成软件编写后,我们需要对系统进行调试和优化。

通过调试工具和示波器等设备,对系统进行性能测试和功能验证,以确保系统工作正常。

4. 系统测试与评估在完成硬件设计和软件开发后,我们需要对系统进行全面的测试和评估。

主要包括功能测试、性能测试和稳定性测试等内容。

4.1 功能测试功能测试主要验证系统是否按照预期工作。

步进电机控制系统的设计

步进电机控制系统的设计

步进电机控制系统的设计
步进电机控制系统是一种常见的电机控制系统,用于控制步进电机的速度和方向。

设计步进电机控制系统需要考虑以下几个方面:
1. 选择合适的步进电机:根据应用场景,选择适合的步进电机型号和规格。

根据步进电机的电阻、电感等参数,计算出合适的电流和电压。

2. 选择合适的驱动器:根据步进电机的规格和控制要求,选择适合的驱动器型号。

常见的驱动器有常流驱动器和常压驱动器两种。

常流驱动器适用于控制步进电机的转速和保证输出力矩的精度;常压驱动器适用于控制步进电机的位置和运动精度。

3. 设计控制电路:根据步进电机的控制要求,设计相应的控制电路,包括信号输入电路、脉冲控制电路和电源电路。

根据实际需求,可以选择使用微控制器、PLC或者其他控制器实现控制。

4. 编写控制程序:根据实际控制要求,编写相应的控制程序。

程序可以使用各种高级语言编写,如C语言、Python等。

5. 测试和调试:完成步进电机控制系统的设计后,需要进行测试和调试。

测试包括电路测试和控制程序测试。

进行测试时需要注意安全,避免电路短路、过载等问题。

在调试过程中,需要根据测试结果进行调整优化,直到达到预期的控制效果。

总之,步进电机控制系统的设计需要充分考虑电机的规格和控制要求,选择合适的驱动器和控制器,设计合适的控制电路和编写适合的控制程序,并进行充分的测试和调试。

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

课程设计报告题目:步进电机转速控制显示系统学生姓名:陶宁学生学号:系别:电气信息工程专业:自动化届别: 2013届指导教师:苗磊电气信息工程学院制2012年5月步进电机转速控制显示系统学生:陶宁指导教师:苗磊电气信息工程学院自动化系1课程设计的任务与要求课程设计的任务对于步进电机的进行转速控制,包括正转与反转,并且通过LCD显示。

课程设计的要求该设计要求通过程序实现单片机对电动机进行控制。

共包含五个键盘,分别操控正转、反转、停止、加速、减速。

并且讲电动机的转动状态反映在LCD上。

课程设计的研究基础2步进电机转速控制显示系统方案制定方案提出方案一:使用开关直接控制电动机的正反转以及转速控制,此种设计非常简便易操作,共两个开关控制。

图1 方案一方案二:使用四个五个开关分别控制电机的正转、反转、停止、加速、减速。

图2方案二方案比较方案一:本方案十分简单,除了实现正常的正转反转,只能实现步进电机的正转加速,还有反转减速,并不能实现正转减速或者反转加速等功能。

程序设计上比较简单,实用性不大。

方案二:本方案较方案一复杂些,并且成功的实现了电机的正转加速和减速,反转的加速和减速,简单明了,控制范围更大,实用性更强。

但是由于复杂性增加,程序的编写难度上就增加了。

方案论证对于以上两个方案比较分析得出:方案二成功的实现了方案一所有的功能,而且其他功能上更加全面。

使用上也更加易操作。

方案一对于简单的应用可以适用,但局限性很大,有时无法实现必要的功能。

方案选择根据以上的比较论证,选择方案二。

3 步进电机转速控制显示系统方案设计各单元模块功能介绍及电路设计该设计分为控制模块,驱动模块,显示模块。

控制模块:五个开关控制单片机的输入高低电平,通过单片机的接口功能设计程序控制输出电平的高低最后达到控制电动机正反转的功能。

驱动模块:通过单片机的到控制步进电机之前的放大噐ULN2003A,从而达到控制步进电机转速的效果。

显示模块:通过单片机中的到和控制LCD 12864,以显示目前电动机的状态。

电路参数的计算及元器件的选择12864液晶电源:VDD:+5V;LCD外接驱动电压为~。

步进电机:额定电压12V;额定电流。

ULN2003A输入额定电压为+12V。

特殊器件的介绍(1)AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

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

1)主要特性a.与MCS-51 兼容字节可编程闪烁存储器c.寿命:1000写/擦循环d.数据保留时间:10年e.全静态工作:0Hz-24Hzf.三级程序存储器锁定*8位内部RAMk.可编程串行通道l.低功耗的闲置和掉电模式m.片内振荡器和时钟电路2)管脚说明:供电电压。

:接地。

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

口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。

口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流[3][4]。

(2)ULN2003AULN2003A是一个7路反向器电路,即当输入端为高电平时ULN2003A输出端为低电平,当输入端为低电平时ULN2003A输出端为高电平。

共16个端口,其中1~7口为输入端口,相对应16~10口为输出端口。

8号口9号口为地与com端口[3]。

图3 ULN2003A(3)步进电机MOTOR-STEPPER步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。

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

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

系统整体电路图图4系统整体电路图4 步进电机转速控制显示系统仿真和调试仿真软件介绍本设计主要采用Protues软件,Protues软件是英国Labcenter electronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译。

它具有丰富的元器件库,超过27000种元器件,可方便地创建新元件。

仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。

仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。

理论上同一种仪器可以在一个电路中随意的调用。

图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。

这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。

这些都尽可能减少了仪器对测量结果的影响。

还提供了比较丰富的测试信号用于电路的测试。

这些测试信号包括模拟信号和数字信号[1][2]。

系统仿真实现(1)打开仿真,出现如图界面,目前电动机为停止状态。

图5初始状态(2)按下K1正转开关,电动机开始正转,LCD显示正转。

图6正转状态(3)按下K4开关,电动机开始加速转动,显示屏显示正转加速。

图7正转加速状态(4)随后转速达到稳定,LCD显示正转正常运行。

图8正转正常运行状态(5)按下K6开关,使电动机减速,显示正转减速运行。

图9正转减速(6)当步进电机转速达到稳定时,LCD显示正转低速运行。

图10正转低速运行(7)此时按下K3,无需先按下K2停止,电动机实现反转运行,显示反转低速运行。

图11反转低速运行(8)此时按下K4,与正转加速类似,加速过程后,显示反转正常运行。

图12反转正常运行状态系统测试测试环境:20℃测试仪器:XP系统计算机,protues仿真软件,keil程序编辑软件。

测量数据:暂无数据。

数据分析由于本课程设计仅限于仿真阶段,实现其设计功能,未做出实体,所以暂时没有数据,有待以后深入研究发展。

5 总结设计小结本设计通过分析步进电机结构工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合,对本次设计,有以下结论:(1)采用单片机为控制核心,利用其强大的功能,把开关和显示电路有机的结合起来,组成一个操作方便,交互性强的控制系统。

而且整个系统所包含的技术包括了很多现本科学校自动化专业所要求的知识,有利于实践教学取得最大效果。

(2)系统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。

收获体会通过对本设计的设计与研究,对于proteus有了更深层次的了解,对于软件操作也更加的熟练。

基于以前的对于单片机的知识的学习,没有十分系统的做过相应的实验,此软件的仿真功能很好的解决了这一问题。

使得对于单片机的各个接口,模块功能,程序的设计有了更深层次的理解。

我们深知做的工作还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。

展望随着技术的不断发展,步进电机的控制应用前景将越来越广阔,而其控制系统也将向着智能化和网络化的方向发展。

此课程设计还是比较基础部分,基本上在实用上没有太大用途,但是我们要在现在的基础上,不断吸收新的技术和方法,并将其应用于课题研究上来,为以后学习更多的电子类如嵌入式、微机原理等知识打下了坚实基础。

6参考文献[1]侯玉宝,等.基于proteus的51系列单片机设计与仿真[M].电子工业出版社,2010.[2]林志琦,等.基于proteus的单片机可视化软硬件仿真[M].科学出版社,2006.[3]李全利,等.单片机原理及接口技术[M].北京航空航天大学出版社,2010.[4]薛均义,等.MCS-51 系列单片微型计算机及其应用[M].西安交通大学出版社,2009.7附录系统主要功能展示图图13 系统展示器件清单C程序#include <>#include <>#include <>#define uc unsigned char #define ui unsigned int #define LCDPAGE 0xB8#define LCDLINE 0x40sbit p00=P0^0;sbit p01=P0^1;sbit p02=P0^2;sbit p03=P0^3;sbit E=P3^5;sbit RW=P3^4;sbit RS=P3^2;sbit L=P3^1;sbit R=P3^0;sbit Busy=P2^7;uc scan_key1,scan_key2; uc step1;step2;static step_index;ui count1,count2;uc butter;static speed;uc code CHANG[]={0x20,0x18,0x08,0x09,0xEE,0xAA,0xA8,0xAF, 0xA8,0xA8,0xEC,0x0B,0x2A,0x18,0x08,0x00, 0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF, 0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00, };uc code YUN[]={0x40,0x41,0xCE,0x04,0x00,0x20,0x22,0xA2, 0x62,0x22,0xA2,0x22,0x22,0x22,0x20,0x00, 0x40,0x20,0x1F,0x20,0x28,0x4C,0x4A,0x49, 0x48,0x4C,0x44,0x45,0x5E,0x4C,0x40,0x00, };uc code XING[]={0x10,0x08,0x84,0xC6,0x73,0x22,0x40,0x44, 0x44,0x44,0xC4,0x44,0x44,0x44,0x40,0x00, 0x02,0x01,0x00,0xFF,0x00,0x00,0x00,0x00, 0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00, };uc code ZHENG[ ] ={0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02, 0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00, 0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20, 0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00, };uc code ZHUAN[ ] ={0xC8,0xA8,0x9C,0xEB,0x88,0x88,0x88,0x40,0x08,0x08,0x04,0xFF,0x04,0x04,0x00,0x02, 0x0B,0x12,0x22,0xD2,0x0E,0x02,0x00,0x00, };uc code CONTRARY[ ] ={0x00,0x00,0xFE,0x12,0x72,0x92,0x12,0x12, 0x12,0x11,0x91,0x71,0x01,0x00,0x00,0x00, 0x40,0x30,0x4F,0x40,0x20,0x21,0x12,0x0C, 0x0C,0x12,0x11,0x20,0x60,0x20,0x00,0x00, };uc code TING[] ={0x80,0x40,0x20,0xF8,0x07,0x02,0x04,0x74, 0x54,0x55,0x56,0x54,0x74,0x04,0x04,0x00, 0x00,0x00,0x00,0xFF,0x00,0x03,0x01,0x05, 0x45,0x85,0x7D,0x05,0x05,0x05,0x03,0x00, };uc code ZHI[ ] ={0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00, 0xFF,0x40,0x40,0x40,0x40,0x40,0x00,0x00, 0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40, 0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x00, };uc code JIA[]={0x00,0x08,0x08,0x08,0xFF,0x08,0x08,0xF8, 0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00, 0x40,0x20,0x18,0x07,0x00,0x20,0x40,0x3F,};uc code SU[]={0x40,0x42,0xCC,0x00,0x04,0xE4,0x24,0x24, 0xFF,0x24,0x24,0x24,0xE4,0x04,0x00,0x00, 0x40,0x20,0x1F,0x20,0x48,0x49,0x45,0x43, 0x7F,0x41,0x43,0x45,0x4D,0x40,0x40,0x00, };uc code JIAN[]={0x00,0x02,0xEC,0x00,0xF8,0x28,0x28,0x28, 0x28,0x28,0xFF,0x08,0x8A,0xEC,0x48,0x00, 0x02,0x5F,0x20,0x18,0x07,0x00,0x1F,0x49, 0x5F,0x20,0x13,0x0C,0x13,0x20,0x78,0x00, };uc code BAI[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };uc code DI[]={0x40,0x20,0xF0,0x0C,0x07,0x02,0xFC,0x44, 0x44,0x42,0xFE,0x43,0x43,0x42,0x40,0x00, 0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x20, 0x10,0x28,0x43,0x0C,0x10,0x20,0x78,0x00, };void iniLCD(void);void chkbusy(void);void wcode(uc cd) ;void wdata(uc dat);void disrow(uc page,uc col,uc *temp);void display( uc page,uc col,uc *temp);void ground(step); void run1(); void run2();void stop();void delay(ui time);void iniLCD(void) { L=1;R=1;wcode(0x38);wcode(0x0f);wcode(0xc0);wcode(0x01);wcode(0x06);}void chkbusy(void){E=1;RS=0;RW=1;P2=0xff;while(!Busy);}void wcode(uc cd) {chkbusy();P2=0xff;RW=0;RS=0;P2=cd;E=1;E=0;}void wdata(uc dat){chkbusy();P2=0xff;RW=0;RS=1;P2=dat;E=1;E=0; }void disrow(uc page,uc col,uc *temp){uc i;if(col<64){L=1;R=0;wcode(LCDPAGE+page);wcode(LCDLINE+col);if((col+16)<64){for(i=0;i<16;i++)wdata(*(temp+i));}else{for(i=0;i<64-col;i++)wdata(*(temp+i));L=0;R=1;wcode(LCDPAGE+page); wcode(LCDLINE);for(i=64-col;i<16;i++)wdata(*(temp+i));}}else{L=0;R=1;wcode(LCDPAGE+page);wcode(LCDLINE+col-64);for(i=0;i<16;i++)wdata(*(temp+i));}}void ground(step_index){P0=0x00;switch(step_index){case 0:p00 = 1;p01 = 0;p02 = 0;p03 = 0;case 1:p00 = 1; p01 = 1; p02 = 0; p03 = 0; break; case 2:p00 = 0; p01 = 1; p02 = 0; p03 = 0; break; case 3:p00 = 0; p01 = 1; p02 = 1; p03 = 0; break; case 4:p00 = 0; p01 = 0; p02 = 1; p03 = 0; break; case 5:p00 = 0; p01 = 0; p02 = 1; p03 = 1;case 6:p00 = 0;p01 = 0;p02 = 0;p03 = 1;break;case 7:p00 = 0;p01 = 0;p02 = 0;p03 = 1;}}void display( uc page,uc col,uc *temp){disrow( page, col, temp);disrow( page+1, col, temp+16);}void main(void){P2=0xff;iniLCD(); step2=0;step1=0;P1=0xff;P0=0x00;EX1=1;EA=1;speed=2010;while(1){if((scan_key1==1)&(scan_key2==0)){display(6,0x00,&ZHENG);display(6,0x10,&ZHUAN);ground(step_index);delay(speed);step_index++;if(step_index>7)step_index=0;}if((scan_key1==0)&(scan_key2==1)){ground(step_index);display(6,0x00,&CONTRARY); display(6,0x10,&ZHUAN);delay(speed);step_index--;if(step_index<0)step_index=7;}if(scan_key1==0&scan_key2==0){display(6,0x00,&TING);display(6,0x10,&ZHI);display(6,0x20,&BAI);display(6,0x30,&BAI);P0=0xff;}if(step1==1&step2==0){speed=speed-100;if(speed<200|speed==200){ speed=200;display(6,0x20,&ZHENG);display(6,0x30,&CHANG);display(6,0x40,&YUN);display(6,0x50,&XING);}else{display(6,0x20,&JIA);display(6,0x30,&SU);}}if(step1==0&step2==1){speed=speed+100;if(speed>2500|speed==2500){ speed=2500;display(6,0x20,&DI);display(6,0x30,&SU);display(6,0x40,&YUN);display(6,0x50,&XING);}else{display(6,0x20,&JIAN);display(6,0x30,&SU);}}}}void delay(ui time){ for (count1=0;count1<time;count1++ )for(count2=0;count2<3;count2++);}void key(void) interrupt 2{uc i;for(i=0;i<200;i++);if(P3^3==0){butter=~P1;switch(butter){case 0x01: scan_key1=1;scan_key2=0; break; case 0x02: scan_key1=0;scan_key2=0;break; case 0x04: scan_key1=0 ;scan_key2=1; break; case 0x08: step1=1;step2=0;break; case 0x10: step1=0;step2=1;break;default : ;}}P1=0XFF;}。

相关文档
最新文档