步进电机转速控制系统

合集下载

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

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

步进电机运动控制系统设计设计时考虑到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. 测试和调试:完成步进电机控制系统的设计后,需要进行测试和调试。

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

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

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

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

PID步进电机的调速

PID步进电机的调速

一、PID控制系统PID是比例,积分,微分的缩写。

比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。

比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

积分调节作用:是使系统消除稳态误差,提高无差度。

因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。

积分作用的强弱取决与积分时间常数Ti ,Ti越小,积分作用就越强。

反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。

积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。

因此,可以改善系统的动态性能。

在微分时间选择合适情况下,可以减少超调,减少调节时间。

微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。

此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。

微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。

图1-1 PID控制系统二、二阶系统数学模型二阶系统方框图如下图所示二阶系统闭环传递函数的标准形式2222)()()(n n n s s s R s C s ωζωω++==Φ (2-1)得出自然频率(或无阻尼振荡频率)Mn T K=ω (2-2) 阻尼比KT M 21=ζ (2-3)令式(2-1)的分母多项式为零,得二阶系统的特征方程0222=++n n s ωζω (2-4)其两个根(闭环极点)为1221-±-=ζωζωn n 、s (2-5)显然,二阶系统的时间响应取决于ζ和n ω这两个参数。

应当指出对于结构和功用不同的二阶系统,ζ和n ω的物理含意是不同的。

图2-2 标准形式二阶系统结构图三、PID 调速系统数学模型PID 控制系统是一种线性控制系统。

7.2 步进电机及其驱动控制系统

7.2 步进电机及其驱动控制系统

C N C 主要内容7.2 步进电机及其驱动控制系统主要内容:•步进电机的原理;•主要性能参数;•步进驱动的特点;•驱动控制:环形分配器,功放电路。

要求:在掌握原理基础上,注重围绕应用了解各型电机的特点、性能参数、功放电路。

主要内容定义:步进电机是一种脉冲控制的执行元件,将电脉冲转化为角位移。

每给步进电机输入一个脉冲,其转轴就转过一个角度,称为步距角。

✓脉冲数量----位移量;✓脉冲频率----电机转速;✓脉冲相序----方向。

组成:由步进电机驱动电源和步进电机组成,没有反馈环节,属于开环位置控制系统。

7.2.1 步进电机概述主要内容优点:结构简单,价格便宜,工作可靠;缺点:–容易失步(尤其在高速、大负载时),影响定位精度;–在低速时容易产生振动;–细分技术的应用,明显提高了定位精度,降低了低速振动。

应用:要求一般的开环伺服驱动系统,如经济型数控机床、和电加工机床、计算机的打印机、绘图仪等设备。

步进电动机的分类按运动方式分:旋转式、直线运动式、平面运动式和滚切运动式。

按工作原理分:反应式(磁阻式)、电磁式、永磁式、混合式。

按结构分:单段式(径向式)、多段式(轴向式),印刷绕组式。

按相数分:三相、四相、五相、六相和八相等。

按使用频率分:高频步进电动机和低频步进电动机。

(1) 反应式步进电动机极与极之间的夹角为60°,每个定子磁极上均匀分布了五个齿,齿槽距相等,齿距角为9°。

转子铁心上无绕组,只有均匀分布的40个齿,齿槽距相等,齿距角为360°/40=9°。

单段式的结构:三相反应式步进电动机。

定子铁心上有六个均匀分布的磁极,沿直径相对两个极上的线圈串联,构成一相励磁绕组。

特点:转子无绕组,定转子开小齿、步距小;应用最广。

7.2 步进电机及其驱动控制系统C N C(2) 永磁式步进电动机工作原理:转子或定子一方具有永久磁钢,另一方有软磁材料制成,由绕组轮流通电产生的磁场与永久磁钢相互作用,产生转矩是转子转动。

步进电机多轴运动控制系统的研究

步进电机多轴运动控制系统的研究

步进电机多轴运动控制系统的研究随着现代工业技术的不断发展,多轴运动控制系统在各种自动化设备中的应用越来越广泛。

步进电机作为一种重要的运动控制元件,具有精度高、响应快、可靠性高等优点,因此被广泛应用于多轴运动控制系统中。

本文将围绕步进电机多轴运动控制系统的研究展开讨论,主要分为以下几个部分:系统架构、控制算法研究、实验验证和结论。

步进电机多轴运动控制系统主要由主板、从板和驱动板三部分组成。

主板主要负责整个系统的协调和控制,包括各轴运动参数的设定、运动程序的编制以及与上位机的通讯等。

从板主要负责将主板的指令传达给各轴的驱动器,同时还将各轴的运行状态反馈给主板。

驱动板则是负责将电力供应给步进电机,同时根据从板传达的指令控制电机的运动。

在步进电机多轴运动控制系统中,位置控制、速度控制和电流控制是三个关键的方面。

位置控制方面,采用矢量控制算法,通过调整电机的旋转角度来控制物体的位置。

速度控制方面,采用速度反馈控制算法,根据电机的实时转速进行调整,以保证运动的平稳性。

电流控制方面,采用电流反馈控制算法,根据电机的实时电流进行调整,以保证电机运行的可靠性。

为了验证所设计的步进电机多轴运动控制系统的可行性和有效性,我们进行了以下实验:设备搭建:根据系统架构,搭建了包含主板、从板、驱动板的实验平台,并选择了合适的步进电机进行连接。

数据采集和处理:利用编码器等传感器采集电机的位置、速度等数据,同时通过上位机实时监控各轴的运动状态。

算法验证:分别对位置控制、速度控制和电流控制算法进行验证,通过改变电机运动参数的方式观察各轴的运动情况,以检验算法的有效性。

实验结果表明,我们所设计的步进电机多轴运动控制系统具有良好的可行性和有效性。

在位置控制方面,电机能够准确到达指定的位置;在速度控制方面,电机转速稳定,能够满足大多数应用场景的需求;在电流控制方面,电机运行过程中电流稳定,保证了电机的可靠运行。

本文对步进电机多轴运动控制系统进行了深入研究,主要取得了以下成果:设计了包含主板、从板和驱动板的步进电机多轴运动控制系统架构,并明确了各部分的作用和连接方式。

步进电机的转速控制方法

步进电机的转速控制方法

步进电机的转速控制方法
步进电机是一种常见的电动机类型,广泛应用于数码打印机、机床、自动化设备等领域。

对于步进电机的转速控制,有以下几种常见的方法:
1. 定时脉冲控制方法:这是最基本的控制方法。

通过控制脉冲信号的频率和占空比来控制步进电机的转速。

提高脉冲频率可加快转速,而改变占空比则可调节转速。

2. 微步驱动控制方法:与定时脉冲控制方法相比,微步驱动控制方法能够实现更细腻的转速控制。

通过在控制信号中加入多个微步信号,可以使步进电机每转动一个脉冲角度时细分为更小的角度,从而实现更加精确的转速控制。

3. 闭环控制方法:闭环控制方法通过在步进电机系统中添加编码器或位置传感器等反馈装置,实时监测步进电机的位置,并与期望位置进行比较,通过调整驱动信号来控制步进电机的转速。

闭环控制方法可以更加精确地控制转速,并在负载变化时实现自适应调整。

4. 软件控制方法:通过控制步进电机驱动器上的软件或编程方式,实现转速的控制。

例如,使用PLC(可编程逻辑控制器)或单片机编程,通过改变输出信号来控制步进电机的转速。

需要注意的是,步进电机的最大转速与驱动器的工作电压、负载情况、驱动电流等因素有关,因此在实际应用中需要综合考虑这些因素,并选择合适的转速控制方法来满足实际需求。

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

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

基于51单片机的步进电机控制系统设计与实现步进电机控制系统是基于51单片机的一种控制系统,它主要用来控制步进电机的转动方向和转速等参数。

下面详细解释一下这个系统的设计和实现。

1. 系统硬件设计步进电机控制系统的硬件主要包括51单片机、驱动电路、步进电机和电源等部分。

其中,驱动电路是控制步进电机的关键,它通常采用L298N芯片或ULN2003芯片等常用的驱动模块。

在硬件设计方面,主要需要考虑以下几个方面:(1)步进电机的种类和规格,以便选择合适的驱动电路和电源。

(2)驱动电路的接线和参数设置,例如步进电机的相序、脉冲频率和电流大小等。

(3)电源的选取和参数设置,以满足系统的供电要求和安全性要求。

2. 系统软件设计步进电机控制系统的软件设计主要包括编写控制程序和调试程序。

其中,控制程序是用来实现步进电机的正转、反转、加速和减速等控制功能,而调试程序则用来检测系统的电路和程序的正确性和稳定性。

在软件设计方面,主要需要考虑以下几个方面:(1)确定控制程序的算法和流程,例如使用“循环控制法”或“PID控制法”等控制方法。

(2)选择编程语言和编译器,例如使用汇编语言或C语言等。

(3)编写具体的控制程序和调试程序,并进行测试和调试,以确保程序的正确性和稳定性。

3.系统实现步进电机控制系统的实现主要包括硬件组装和软件烧录两个部分。

在硬件组装方面,需要按照硬件设计图纸进行零部件的选取和电路的组装,同时进行电源和信号线的接入。

在软件烧录方面,需要使用专用的编程器将程序烧录到51单片机的芯片中,并进行相应的设置和校验。

总之,基于51单片机的步进电机控制系统是一个功能强大、应用广泛的控制系统,可以实现精密控制和自动化控制等多种应用,具有很高的实用价值和研究价值。

步进电机控制系统的设计[文献综述]

步进电机控制系统的设计[文献综述]

文献综述电子信息工程步进电机控制系统的设计摘要:步进电机是一种易于精确控制的执行元件,近几年来随着微电子技术的不断发展步进电机的控制方法也随之变得多种多样。

为了提高步进电机控制系统的动态性以及控制精度,本文献因此提出了一系列关于基于现场可编程门阵列(FPGA)和由数字信号处理器(DSP)构成的步进电机控制系统的设计方法。

关键字:现场可编程门阵列(FPGA);步进电机;数字信号处理器(DSP);引言20世纪后期随着晶体管的发明逐渐应用于步进电机上,使得对于数字化的控制变得更为容易。

如今的步进电机已广泛运用在高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中[1]。

例如数控机床、计算机设备、自动记录仪等,另外在工业自动化生产线、印刷设备中均有应用。

随着步进电机的应用越来越广泛,步进电机在实时性和灵活性等性能上的要求也越来越高,虽然步进电机的发展迅速,但是在大功率步进电机驱动电源的设计和使用仍然存在问题,很大程度上地限制了大功率步进电机在数控机床、自动控制等技术方面的应用。

一、基本概况步进电机(Stepping Motor)是将电脉冲信号转化为角(线)位移的电元件,当步进驱动器接受脉冲信号后,就会驱动步进电机转动一个固定的角度,即步距角。

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

在非超载的情况下,脉冲信号的频率和脉冲数来决定了电机的转速停止的位置,且不受负载变化的影响。

因此步进电机在速度、位置等控制领域的控制变的非常简单且容易操作。

最早步进电机的原理与今天的反应式步进电机的组成原理基本相同。

随着时代的发展,微型计算机具有多功能的特点,因而步进电动机的控制方式变得灵活和多样。

早期的步进电机的控制系统是分立元件来控制回路,它的缺点是调试安装复杂,要消耗大量元器件,而且定型之后,不容易改变其控制方案。

基于微型计算机的控制系统则是通过软件来控制步进电机,这样能够更好地发挥步进电机的潜力;因此,用微型计算机控制步进电机已经成为一种必然的趋势,并且也符合数字化的时代发展要求。

定时器控制步进电机转速原理

定时器控制步进电机转速原理

定时器控制步进电机转速原理-概述说明以及解释1.引言1.1 概述概述:本文将探讨定时器控制步进电机转速的原理。

定时器是一种常见的计时器件,通过精准的计时和控制脉冲输出,可以实现对步进电机的精确控制。

步进电机是一种特殊的电机,通过接收一定的脉冲信号来控制每一步的运动,从而实现精确的位置和转速控制。

本文将详细介绍定时器和步进电机的工作原理,从而深入探讨定时器如何控制步进电机的转速。

通过本文的阐述,读者将对定时器控制步进电机转速的原理有一个全面的了解。

1.2 文章结构文章结构部分的内容:本文将分为引言、正文和结论三个部分。

在引言部分,将概述文章的主题,介绍定时器控制步进电机转速的原理,并说明文章的结构和目的。

在正文部分,将分别介绍定时器的工作原理和步进电机的工作原理,然后详细阐述定时器如何控制步进电机转速的原理。

在结论部分,将对定时器控制步进电机转速的原理进行总结,并展望其应用前景,最终得出结论。

整个文章结构清晰,逻辑严谨,将全面深入地探讨定时器控制步进电机转速的原理及其应用。

1.3 目的本文旨在介绍定时器控制步进电机转速的原理,通过深入分析定时器和步进电机的工作原理,探讨定时器如何精准地控制步进电机的转速。

通过本文的阐述,读者可以更好地理解定时器和步进电机的工作原理,以及它们之间的关联,从而为相关领域的工程技术人员提供参考和借鉴。

同时,本文也对定时器控制步进电机转速的应用前景进行展望,希望能够为未来的研究和工程实践提供一定的启发和指导。

2.正文2.1 定时器的工作原理定时器是一种用来产生准确时间间隔的电子设备,它可以根据预设的时间参数来产生特定的时间脉冲信号。

定时器可以用来控制各种设备的时间间隔,如LED灯的闪烁、蜂鸣器的鸣叫、步进电机的运动等。

定时器主要由一个计数器和一组控制逻辑组成。

计数器用来存储时间参数,控制逻辑则用来确定何时产生时间脉冲信号。

当计数器的值达到预设的时间参数时,控制逻辑会触发输出时间脉冲信号。

步进电机多轴运动控制系统的研究

步进电机多轴运动控制系统的研究

步进电机多轴运动控制系统的研究1. 本文概述随着现代工业自动化和精密控制技术的快速发展,步进电机因其高精度、易于控制等特点,在多轴运动控制系统中扮演着至关重要的角色。

本文旨在深入研究步进电机在多轴运动控制系统中的应用,探讨其控制策略、系统设计及性能优化等方面的问题。

本文将概述步进电机的基本原理和工作特性,分析其在多轴运动控制中的优势。

接着,将重点探讨步进电机在多轴控制系统中的控制策略,包括开环控制和闭环控制,以及这两种控制策略在实际应用中的优缺点比较。

本文还将详细讨论多轴运动控制系统的设计与实现,包括硬件选型、软件编程及系统集成等方面。

特别关注步进电机与控制器之间的接口技术、运动控制算法的实现,以及系统在实际工作环境中的稳定性和可靠性。

本文将探讨步进电机多轴运动控制系统的性能优化方法,包括速度、精度和效率等方面的提升策略。

通过实验验证和数据分析,评估不同优化策略的实际效果,为步进电机在多轴运动控制系统中的应用提供理论指导和实践参考。

本文将从原理分析、控制策略、系统设计到性能优化等多个方面,全面深入研究步进电机在多轴运动控制系统中的应用,旨在为相关领域的研究和实践提供有益的参考和指导。

2. 步进电机原理及特性步进电机是一种特殊的电机类型,其运动不是连续的,而是按照固定的步长进行。

这种电机的特性使其非常适合需要精确控制位置和速度的应用场景。

步进电机通常被用在开环控制系统中,因为它们不需要持续的反馈信号来调整其运动。

步进电机的工作原理基于电磁学。

电机内部包含一系列电磁极,当电流通过这些电磁极时,它们会产生磁场。

这些磁场与电机内部的永磁体相互作用,产生旋转力矩,从而使电机转动。

通过控制电流的方向和顺序,可以控制电机的旋转方向和步长。

步进电机的主要特性包括其步距角、定位精度和动态性能。

步距角是电机每接收一个脉冲信号所转动的角度,这个角度通常很小,可以在5到8之间。

定位精度是指电机能够准确到达的目标位置,这主要取决于电机的制造精度和控制系统的精度。

《控制步进电机》课件

《控制步进电机》课件
《控制步进电机》 PPT课件
contents
目录
• 步进电机简介 • 步进电机控制系统 • 步进电机驱动器 • 步进电机的控制策略 • 步进电机的应用案例
01
步进电机简介
步进电机的定义与工作原理
步进电机是一种将电脉冲信号转换成角位移或线位移的执行元件。
工作原理:步进电机内部通常有多个相位的线圈,当给这些线圈按照一定的顺序 通电时,电机内部的转子会按照通电的顺序和方向进行旋转,从而输出旋转的机 械能。
03
步进电机驱动器
步进电机驱动器的种类与选择
种类
根据步进电机的工作原理和应用需求 ,步进电机驱动器可分为单极性驱动 器和双极性驱动器。
选择
选择合适的步进电机驱动器需要考虑 电机的规格、工作电压、电流以及控 制精度等因素。
步进电机驱动器的原理与工作方式
原理
步进电机驱动器通过控制脉冲信号的 频率和数量,来控制步进电机的转动 速度和角度。
步进电机在医疗器械中的应用
1 2
医疗设备驱动
步进电机在医疗器械中作为驱动部件,如医学影 像设备、手术机器人等。
高精度要求
步进电机的高定位精度和控制精度,满足医疗器 械对精确度的极高要求。
3
安全可靠性
步进电机稳定可靠的特性,确保医疗器械在使用 过程中的安全性和可靠性。
THANKS FOR WATCHING
04
步进电机的控制策略
步进电机的速度控制
速度控制
通过调节输入到步进电机的脉冲频率,可以控制步进电机的转速 。
动态响应
步进电机具有快速动态响应特性,能够实现高精度的速度控制。
调速范围
步进电机可以在较大的调速范围内实现平滑的速度调节。
  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;}。

相关文档
最新文档