基于单片机的步进电机转速控制全解

合集下载

基于单片机步进电机速度控制研究

基于单片机步进电机速度控制研究

基于单片机步进电机速度控制研究基于单片机步进电机速度控制研究步进电机是一种非常常见的电机类型,它在很多领域都有广泛的应用。

与传统的直流电机比较,步进电机具有很多优势,比如精度高、摩擦小、噪音小等。

但是为了更好地发挥步进电机的优势,需要对其进行精细的控制,包括速度的控制。

因此,基于单片机的步进电机速度控制研究非常重要,本文将对此进行深入探讨。

一、步进电机的原理和特点步进电机是一种能够将电脉冲转换成机械旋转的电动机。

它的核心是转子和定子之间的电磁相互作用,通过不同的脉冲信号控制电机的转动速度和方向。

步进电机的特点主要有以下几个方面:1. 精度高:步进电机的步进角度可以达到很小,因此可以实现精细的运动控制。

2. 摩擦小:步进电机与传统的直流电机相比,其内部的摩擦力要小很多,因此可以实现更加平稳的运动。

3. 噪音小:步进电机的电机转子比较轻,摩擦力较小,因此转动时噪音较小。

二、步进电机的速度控制步进电机的速度控制是一种基于脉冲信号的控制方式,根据输入的脉冲信号来控制电机的转动速度。

这种控制方式可以实现精确的速度控制,并且可以改变电机的运动方向。

步进电机的速度控制可以分为定速控制和变速控制。

定速控制是通过固定的脉冲频率来控制电机的速度,而变速控制则是通过改变脉冲频率来实现速度的变化。

三、基于单片机的步进电机速度控制基于单片机的步进电机速度控制是一种常见的控制方式。

它通过单片机的计算和控制来实现对电机的脉冲信号控制,可以更加灵活地实现对电机的控制。

常见的单片机包括STC89C52、STM32F103等。

步进电机的速度控制是通过控制脉冲信号的频率来实现的。

因此,为了实现步进电机的速度控制,需要设置一个计时器来定时产生脉冲信号。

计时器可以通过单片机内部的外设或者扩展外部芯片来实现,常用的计时器包括定时器0、定时器1等。

单片机的速度控制还可以实现反馈控制,常见的反馈控制方式包括编码器反馈和霍尔传感器反馈。

通过反馈控制,可以实现对电机速度的更加精准的控制,并且可以消除误差。

基于单片机步进电机速度控制研究.doc

基于单片机步进电机速度控制研究.doc

基于单片机步进电机速度控制研究本文对步进机一个全面的介绍,再基于单片机对步进电机的控制。

本文采用硬件控制系统,通过单片机MC9S12XS128与光电编码器对步进电机进行速度的控制。

最后对步进电机的速度曲线进行研究。

步进电机又称为脉冲电动机或者阶跃电动机,作为执行元件,是机电一体化的关键产品之一,广泛应用于各种自动化控制系统之中,比如当今电子钟表、工业机械手、包装机械和汽车制动元件的测试中等。

步进电机在未来应用前景会往更加小型化、从圆形电动机往方形电动机和四相、五相往三相电动机发展。

而这便需要对步进电机的控制提出了更高的要求。

1.步进电机综合介绍1.1.步进电机分类步进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型。

按结构特点电磁式步进电机可分为反应式(VR)、永磁式(PM)和混合式(HB)三大类;按相数分则可分为单相、两相和多相三种。

目前使用最为广泛的为反应式和混合式步进电机。

1.1.1.反应式步进电机反应式步进电机的转子是由软磁材料制成的,转子中没有绕组。

一般为三相,可实现大扭矩的输出,步进角一般为1.5度。

它的结构简单,成本低,但噪音大。

1.1.2.永磁式步进电机永磁式步进电机的转子是用永磁材料制成,转子本身就是一个磁源。

转子的极数和定子的极数相同,所以一般步距角比较大,步进角一般为7.5度或15度。

它输出转矩大,动态性能好,消耗功率小,但启动运行频率较低,还需正负脉冲供电。

1.1.3.混合式步进电机混合式步进电机综合了反应式和永磁式两者的优点。

它分为两相和五相,两相的步进角一般为1.8度,而五相的步进角为0.72度。

混合式与传统的反应式相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。

目前使用最为广泛的为反应式和混合式步进电机。

1.2.步进电机的工作原理步进电机是将电脉冲信号转化为角位移增量,也即是说,当步进驱动器接收到一个脉冲信号时,便驱动电机按照设定的方向转动一定的角位移量。

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

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

基于单片机的步进电机控制步进电机是一种常用的电动执行元件,在许多领域中都有广泛的应用。

为了实现对步进电机的精确控制,通常使用单片机来实现控制算法。

本文将介绍一个基于单片机的步进电机控制方案,并详细说明其实现过程和步骤。

首先,需要明确步进电机的工作原理。

步进电机通过控制电流的方向和大小来实现精确的旋转控制。

通常,步进电机由若干个驱动器组成,每个驱动器控制一个电机相位。

单片机通过控制驱动器的状态来控制步进电机的旋转。

1.硬件设计和搭建首先,需要根据步进电机的特性选择合适的单片机和驱动器。

单片机的选择应考虑其计算能力、IO口数量和通信接口等因素。

驱动器的选择应考虑其控制精度、最大电流和保护功能等因素。

然后,根据步进电机的型号和参数,设计并搭建电路板。

在电路板上,需要连接单片机、驱动器和步进电机,以及相应的电源和信号线。

2.控制算法设计在单片机中,需要设计控制算法来实现步进电机的精确控制。

常用的控制算法有定位控制、速度控制和加速度控制等。

根据实际需求,选择合适的控制算法,并编程实现。

3.编程实现根据控制算法的设计,使用合适的编程语言(如C语言或汇编语言)编写程序。

程序应包括步进电机的初始化代码、控制算法的实现代码和中断服务程序等。

在程序中,需要通过单片机的IO口控制驱动器,以改变驱动器的状态,从而控制步进电机的旋转方向和速度。

同时,还需要通过测量步进电机的位置和速度来实现闭环控制。

4.调试和优化完成编程后,需要进行调试和优化,以保证步进电机的控制精度和可靠性。

可通过调整控制算法的参数、增加传感器和使用滤波算法等方式来提高步进电机控制的性能。

综上所述,本文介绍了一个基于单片机的步进电机控制方案。

通过硬件设计和搭建、控制算法设计、编程实现和调试优化等步骤,可以实现对步进电机的精确控制。

这种方案在工业自动化、仪器仪表和机器人等领域具有广泛的应用价值。

基于单片机步进电机转速测速控制器

基于单片机步进电机转速测速控制器

摘要在电气时代的今天,电动机在工农业生产与人们日常生活中都起着十分重要的作用。

步进电机作为最常见的一种电机,作为一种数字伺服执行元件,步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。

为了实现步进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专用驱动芯片实现步进电机的速度和位置定位控制。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

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

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

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

本设计采用89C52单片机为核心设计,L297和L298为驱动芯片,用单片机内部的定时器改变CP脉冲的频率时间对步进电机的转速控制,实现电机调速与正反转功能,并用数字灯和数码管显示当前状态。

【关键词】步进电机单片机L297 L298IABSTRACTIn the electrical era, the motor plays an important role in indus trial and agricultural production and daily life. Stepper motor as th e most common type of motor, a digital servo actuator, stepper motor has a simple structure, reliable operation, easy to control, good con trol performance, widely used in CNC machine tools, robots, automated instrumentation areas. Generally based onsingle chip as the microproc essor control system for easy movement of the stepper motor control, speed and position of the stepper motor positioning control stepper m otor-specific driver chip.The stepper motor is the electrical pulses into angular displacement or linear displacement of the open-loop con trolcomponents.In the case of non-overloading, motor speed, the stop position depends only on the pulse frequency and pulse number, regard less of load changes, to the motor plus a pulse signal, the motor is turned to a step angle. The existence of this linear relationship, co upled with the characteristics of the stepper motor only periodic err or without accumulated error. Makes the speed, position and control t he stepper motor to control very simple. Governorgeneral of the stepp er motor is to change the frequency of the pulse input stepper motor to achieve the speed control of stepper motor, stepper motors each to a pulse rotating a fixed angle, so that you can control the stepper m otor a pulse to the next pulse time interval to change the frequency of the pulse, the delay length to specifically control the stepping a ngle to change the motor speed, in order to achieve the speed control of stepper motor.Stepper motor is a digital motor control, it will pulse signal ch anges in angular displacement, that is, to a pulse signal, the steppeIIr motor to rotate atan angle, so it is suitable for single-chip contr ol.This design uses a 89C52 microcontroller as the core design, the L297 and L298 driver chip, change the time of the CP pulse frequency of the stepper motor speed control, motor speed control with reversin g function using theinternal timer of the microcontroller, and digita l light and The digital tube displays the current status.【Key words】Stepper motor Microcontroller L297 L298III目录前言 (1)第一章绪论 (2)第一节单片机控制步进电机的背景与意义 (2)第二节国内外研究状况 (2)1.2.1 国外研究状况 (2)1.2.2 国内研究状况 (3)第三节本文主要研究内容 (3)第四节本章总结 (4)第二章系统概述 (5)第一节步进电机介绍 (5)2.1.1 步进电机的概述 (5)2.1.2 步进电机的工作原理 (8)2.1.3 步进电机的选择 (9)第二节步进电机驱动介绍 (10)2.2.1 步进电机驱动系统简介 (10)2.2.2 步进电机绕组的电气的特性 (11)第三节单片机介绍 (13)2.3.1 单片机原理概述 (13)2.3.2 单片机的应用系统 (13)2.2.3 AT89C52 (14)第四节核心芯片介绍 (18)2.4.1 L297的工作原理 (18)2.4.2 L297驱动相序的产生 (19)2.4.3 L298简介 (20)2.4.4 驱动方式的确定 (22)第五节本章总结 (22)- 1 -第三章系统的设计与实现 (23)第一节系统整体设计 (23)3.1.1 系统原理图 (23)3.1.2 系统整图 (23)第二节系统硬件电路的设计 (24)3.2.1 电源电路的设计 (24)3.2.2 按键电路的设计 (26)3.2.3 驱动电路的设计 (27)3.2.3 显示部分电路 (27)3.2.4 时钟部分 (28)3.2.5 抗干扰设计 (28)第三节系统软件程序设计 (29)3.3.1 系统主程序设计 (30)3.3.2 键盘控制程序设计 (30)3.3.3 正反转程序设计 (31)3.3.4 加减速程序设计 (32)3.3.5 显示子程序的设计 (33)3.3.6 定时中断流程图 (34)第四节本章总结 (35)第四章系统的测试 (36)第一节测试的步骤 (36)第二节测试的数据 (37)第三节理论与实际的分析 (38)第四节本章总结 (39)第五章总结与展望 (40)第一节总结 (40)第二节展望 (41)致谢 (42)参考文献 (43)- 2 -附录一 (44)英文原文 (44)英文翻译 (47)附录二 (50)源程序清单 (50)- 3 -前言步进电机广泛应用与ATM机、喷绘机、刻字机、写真机、喷图设备、医疗仪器及设备、计算机外设及海量储存设备、精密仪器、工业控制系统、办公自动化、机器人等领域。

基于单片机控制的步进电动机调速系统设计

基于单片机控制的步进电动机调速系统设计

论文题目:基于单片机控制的步进电动机调速系统设计摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

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

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

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。

在本设计方案中采用AT89C51型单片机内部的定时器改变CP脉冲的频率从而实现对步进电机的转速进行控制,实现电机调速与正反转的功能。

关键词:步进电机,单片机,调速系统Abstract:Step-by-step electric motor is the ring opening gating element changing electricity pulse signal into angular displacement or line displacement. Under the situation of must overload, the electric motor rotation rate , discontinuous location depend on pulse signal frequency and pulse number only , make free from being loaded with the effect changing ,but be that being added a pulse signal , the electric motor by electric motor is to have rotated a step spur angle. This gleam of the sexual relationships existence, adds step-by-step electric motor characteristics such as only having the cyclicity error but there being no accumulative error.Feasible simplicity controlling a field using step-by-step electric motor to come to control changeable extraordinary in speed , location etc.Step-by-step electric motor speed regulation general be change import step-by-step electric motor pulse frequency come true step-by-step electric motor speed regulation, because of step-by-step electric motor every be given to a pulse right away rotate one fixed angle, such right away not bad pass under the control of step-by-step electric motor a pulse arrive at next pulse period come to change pulse frequency,Come to control the speed regulation , realizing step-by-step electric motor thereby to come to change the electric motor rotation rate step-by-step angle concretely the deferred length. Frequency adopt the internal timer of AT89C51 type monolithic machine to change CP pulse in the design plan in realizes the speed regulation controlling , realizing an electric motor and the function that the positive and negative rotates being in progress to step-by-step electric motor rotation rate thereby.Key words:Step-by-step electric motor , monolithic machine , speed regulation system摘要 (1)Abstract: (2)第一章步进电机概述 (4)第一节步进电机的特点 (4)第二节步进电机的工作原理 (4)第三节步进电机的分类 (4)一步进电机分为三大类 (4)二步进电机的内外结构 (5)第四节步进电机详细调速原理 (6)第二章本次设计的基本要求 (6)第三章方案的论证 (6)第一节驱动方式的确定 (6)第二节基本方案的确定 (7)第四章硬件电路的设计 (7)第一节单片机的选择 (7)第二节驱动电路的选择 (8)第五章算法的设计 (11)第一节 PID 控制算法 (11)第六章软件的设计 (16)第一节显示子程序的设计 (16)第二节键盘子程序的设计 (16)第三节驱动程序流程的设计: (18)第四节正反转程序流程图 (19)一正反转程序流程图 (19)二转速快慢程序流程图 (20)三定时中断流程图 (21)第七章实验结果与分析 (22)第一节有关参数的计算与分析 (22)第二节理论与实际的分析 (22)结束语 (24)致谢 (24)参考文献 (25){{第一章步进电机概述第一节步进电机的特点1)一般步进电机的精度为步进角的3-5%,且不累积。

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

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

基于单片机的步进电机控制系统的设计
步进电机是一种特殊的电机,它的转动是以步进的形式进行的,每一次步进角度由控制电路发出的一个脉冲决定。

因此,基于单片
机的步进电机控制系统需要实现以下功能:
1. 产生脉冲信号:单片机需要通过定时器等模块产生相应的脉
冲信号,以控制步进电机的运动。

2. 识别旋转方向:步进电机需要能够前进和后退,因此单片机
需要实时检测步进电机的转动方向,并控制脉冲信号发生的顺序。

3. 控制转速:控制步进电机转速需要通过控制脉冲信号的频率
来实现,单片机需要动态地调整脉冲信号的频率,从而控制欲速度。

下面是实现步进电机控制的一种基本算法:
1. 设置电机控制端口,初始化各参数。

2. 等待步进电机稳定。

在控制电路上电时,如果步进电机没有
停在起始位置,需要先手动将步进电机转动到起始位置,然后等待
电机稳定。

3. 根据旋转方向和转速控制脉冲信号产生频率。

根据步进电机
的旋转方向,确定脉冲信号产生的顺序,然后通过定时器等模块产
生相应的脉冲信号,从而控制步进电机旋转。

4. 根据指令调整转速。

根据实际需求调整步进电机的转速,即
调整脉冲信号频率。

上述算法是一个最基本的控制算法,具体的实现还需要考虑步
进电机控制的精度、错误处理等方面的问题。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的步进电机转速控制

基于单片机的步进电机转速控制

电子器件市场调研与系统设计实践专 业: *** 班 级: 姓 名: 学 号: 指导教师: ****大学****学院**** 年 **月**日基于单片机得步进电机调速与正反转控制系统1 系统要求步进电动机就是用电脉冲信号进行控制,将电脉冲信号转换成相应得角位移或线位移得微电动机,它最突出得优点就是可以在宽广得频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且用其组成得开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛得应用。

随着微电子与计算机技术得发展,步进电动机得需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要得意义、本设计基于单片机控制得步进电机设计课题就是以单片机为主控制模块,从而实现电机得启停、正反转与调速得目得得一个设计课题。

在课题设计之前,通过互联网了解到了当前步进电机得发展状况及发展前景。

同时也了解了当今最先进得步进电机所具备得功能,方便为课题设计提供参考与借鉴;最后,通过画原理框图得形式,以最直观得方式为整个课题设计制定了流程及要求。

1.1 设计目得《电子器件市场调研与系统设计实践》就是本专业得重要实践教学环节,强调实际应用技能训练、结合自动化专业系列课程得学习,培养我们对电子器件得认知,锻炼我们得市场调研能力,加深我们对自动化专业系列课程知识得掌握。

通过课程设计环节培养学生与人交往、独立思考与处理问题得能力、1。

2 设计内容及要求本次课程设计所选得步进电机就是四相步进电机,采用得方法就是利用单片机控制步进电机得驱动。

步进电机就是一种将电脉冲转化为角位移得执行机构、当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定得方向转动一个固定得角度(称为“步距角"),它得旋转就是以固定得角度一步一步运行得。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位得目得;同时可以通过控制脉冲频率来控制电机转动得速度与加速度,从而达到调速得目得、本次课程设计就就是通过改变脉冲频率来调节步进电机得速度得,并且通过数码管显示其转速得级别。

基于单片机的步进电机转速控制器的设计的开题报告

基于单片机的步进电机转速控制器的设计的开题报告
[2]秦曾煌.电工学[M] .北京:高等教育出版社,1999.
[3]常斗南,等.可编程序控制器原理、应用、实验[M] .北京:机械工业出版社,1998.
[4]于海生,等.微型计算机控制技术[M] .北京:清华大学出版社,1999.
[5]王福瑞,等.单片机微机测控系统设计大全[M] .北京:北京航空航天大学出版社,1998.
设计(论文)
题目
基于单片机的步进电机转速控制器的设计
设计(论文)
类型(划“√”)
工程设计
应用研究
开发研究
基础研究
其它

一、本课题的研究目的和意义
步进电机已成为出直流电机和交流电机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生活和生产进入电气化过程中起着关键的作用。可是在人类社会进入电气化时代的今天,传统电动机已不能满足工业自动化和办公自动化等各种运动控制系统的要求。发展了一系列新的具有控制功能的电动机系统,其中较有自己特点,且应用十分广泛的就是步进电机。
[14]王润孝,秦现生编著1机床数控原理与系统1西北工业大学出版社,1997.
[15]李伯成,侯伯李等编1IBM - PC微机应用系统设计1西安电子科技大学,1996.
[16]黄义源主编1机械设备电气与数字控制1中共广播电视大学出版社,1992
[17]Bai You'ai He JianDe Chen Qing (et al) Effects of nitrogen supply levels on greenhouse tomato growth and nitrogen utilization in Beijing Region.ChinaVegetables.InstituteofVegetablesand Flowers,Beijing,China: 2004. 2,7-9.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机控制步进电机转动程序设计_概述及说明

单片机控制步进电机转动程序设计_概述及说明

单片机控制步进电机转动程序设计概述及说明1. 引言1.1 概述在现代工业和科技领域中,步进电机常被用于各种自动化设备和精密控制系统中。

步进电机以其精准的定位和可控性而被广泛应用于数控机床、印刷设备、医疗仪器等领域。

单片机是一种高度集成的微处理器,具有强大的计算能力和丰富的外设接口,可以为步进电机提供有效的控制信号和驱动能力。

本文将介绍单片机对步进电机转动程序设计的概念、原理和实现过程,并进行相关实验与结果分析。

通过深入了解单片机与步进电机之间的关系,我们可以更好地理解并合理设计步进电机转动程序,提高整个系统的稳定性和效率。

1.2 文章结构本文分为五个主要部分。

引言部分旨在说明文章背景、目的及结构安排,从而使读者对文章内容有清晰的认识。

接下来将介绍单片机控制步进电机转动程序设计的相关概念、原理和要点,并详细描述硬件准备与连接配置。

然后,将着重阐述步进电机驱动程序的设计与编码实现过程。

随后,将介绍转动程序的测试方法和优化技巧。

最后,通过实验数据的分析和讨论,总结结论并展望未来针对问题的研究方向及相关工程应用前景。

1.3 目的本文的目的是探讨单片机控制步进电机转动程序设计的相关要点,并提供具体的硬件连接配置、驱动程序设计和优化方法。

通过阅读本文,读者将能够了解并应用单片机在步进电机控制中的原理和技巧,从而实现更加精确和可靠的步进电机转动控制。

同时,本文还旨在为有关领域研究者提供有关步进电机转动程序设计的参考资料,并预测其未来在工程应用中可能展示出来的前景及意义。

2. 单片机控制步进电机转动程序设计:2.1 步进电机概述:步进电机是一种将电动机转换为角位移输出的装置。

与直流电机不同,步进电机可以精确地控制角度和位置。

它由多个绕组(相)构成,每个绕组都被称为一个相位。

通过在不同的相之间交替通电,可以使步进电机转动一个固定的角度。

2.2 单片机控制步进电机原理:单片机是一种微处理器芯片,它具有强大的计算和控制能力。

基于单片机的步进电机的控制器设计

基于单片机的步进电机的控制器设计

基于单片机的步进电机的控制器设计在现代工业自动化和控制领域中,步进电机因其精确的定位和可控的旋转角度而得到了广泛的应用。

而设计一个高效、稳定且易于操作的基于单片机的步进电机控制器则成为了实现精确控制的关键。

一、步进电机的工作原理要设计步进电机的控制器,首先需要了解步进电机的工作原理。

步进电机是一种将电脉冲信号转换成角位移或线位移的开环控制电机。

它由定子和转子组成,定子上有若干个磁极,磁极上绕有绕组。

当给定子绕组依次通电时,产生的磁场会驱动转子按照一定的方向和步距角转动。

步距角是指每输入一个电脉冲信号,转子所转过的角度。

步距角的大小取决于电机的结构和控制方式。

常见的步距角有 18°、09°等。

通过控制输入电脉冲的频率和数量,可以精确地控制步进电机的转速和转角。

二、单片机的选择在设计控制器时,单片机的选择至关重要。

常见的单片机如 51 系列、STM32 系列等都可以用于控制步进电机。

51 系列单片机价格低廉,开发简单,但性能相对较低;STM32 系列单片机性能强大,资源丰富,但开发难度相对较大。

考虑到控制的精度和复杂程度,我们可以选择STM32 系列单片机。

例如,STM32F103 具有较高的处理速度和丰富的外设接口,能够满足步进电机控制器的需求。

三、控制器的硬件设计硬件设计主要包括单片机最小系统、驱动电路、电源电路等部分。

单片机最小系统是控制器的核心,包括单片机芯片、时钟电路、复位电路等。

STM32F103 的最小系统通常需要外部晶振提供时钟信号,以及合适的复位电路保证单片机的可靠启动。

驱动电路用于放大单片机输出的控制信号,以驱动步进电机工作。

常见的驱动芯片有 ULN2003、A4988 等。

以 A4988 为例,它可以接收来自单片机的脉冲和方向信号,并输出相应的电流来驱动步进电机。

电源电路则为整个系统提供稳定的电源。

通常需要将外部输入的电源进行降压、稳压处理,以满足单片机和驱动电路的工作电压要求。

基于单片机步进电机速度控制

基于单片机步进电机速度控制
通过调节步进电机的速度,可以适 应不同的工作负载,实现节能降耗 。
步进电机控制的历史与发展
历史
步进电机最初是由美国发明家哈罗德·斯普拉里在20世纪初发明的,当时主要 用于调节收音机的音量。随着技术的发展,步进电机逐渐应用于各种工业领 域。
发展
随着计算机技术和数字控制技术的不断发展,步进电机的控制精度和性能得 到了显著提升。单片机作为一种常见的控制芯片,被广泛应用于步进电机的 速度控制。
控制算法
控制算法是用来控制步进 电机旋转的程序,它通常 由定时器、计数器等组成 。
程序设计
程序设计是用来实现控制 算法的程序,它通常由C 语言、汇编语言等编写。
控制程序实现
通过将控制算法和程序设 计结合起来,可以实现步 进电机的速度控制和位置 控制。
03
硬件设计
单片机选型
总结词
选择低功耗、高性能的单片机
输入输出接口设计
总结词
设计简单可靠的输入输出接口
详细描述
在输入输出接口设计时,需要选择合适的接口类型和规格,同时需要考虑接口的耐用性和可维护性。 对于输入接口的设计,可以选择光耦隔离或继电器隔离等方式;对于输出接口的设计,可以选择PWM 或SSR等方式。
04
软件设计
控制程序流程设计
初始化程序
设置单片机和步进电机的参数,包括输入 输出端口、电机型号等。
VS
模糊控制算法
根据电机的实际运行状态和环境参数,对 PID控制算法进行优化,提高控制的稳定 性和适应性。
单片机与上位机通信
Modbus协议通信
采用Modbus协议实现单片机与上位机之 间的通信,上位机发送速度控制信号和电 机状态信息,单片机接收并处理。
串口通信

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

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

基于单片机控制的步进电机调速系统的设计步进电机是一种常用的电机类型,它通常用来实现精确定位和控制运动。

步进电机的控制需要一个精确的调速系统来确保稳定的运行和准确的位置控制。

本文将基于单片机控制的步进电机调速系统进行设计。

首先,我们需要选择合适的硬件以及编程平台。

本设计选择使用Arduino Uno作为单片机控制器,它具有易用性和强大的控制功能。

步进电机选择了NEMA 17型号,它具有较高的分辨率和扭矩输出。

接下来,进行电路设计与连接。

将步进电机的四个线圈连接到单片机的GPIO引脚上,并使用电流驱动模块控制电机的供电。

通过连接外部电源,电流驱动器将为步进电机提供稳定的电流,以确保电机能够正常工作。

在编程方面,首先需要编写初始化代码,配置单片机的GPIO引脚以及串口通信功能。

然后,可以使用Arduino提供的步进电机库来控制电机的旋转。

该库提供了简单的命令来控制步进电机的转动方向和转速。

为了设计调速系统,我们可以使用一个旋转编码器来实时监测电机的转速。

旋转编码器将会测量电机的转动次数,从而计算出电机的转速。

在单片机的程序中,我们可以设置一个目标转速,并根据旋转编码器的数据来调整电机的驱动频率。

为了实现平滑的调速过程,我们可以使用PID控制算法来调整电机的驱动频率。

PID控制算法是一种经典的反馈控制算法,它可以根据目标值和实际值之间的差异来调整控制信号。

通过不断地比较电机的实际速度与目标速度,PID控制算法可以动态地调整电机的驱动频率,以达到稳定的调速效果。

最后,我们可以设计一个用户界面来设置目标速度和监控电机的运行状态。

通过串口通信功能,单片机可以与上位机进行数据交互,用户可以通过上位机发送指令来设置目标速度,并且可以实时监测电机的转速和运行状态。

总结起来,基于单片机控制的步进电机调速系统设计需要进行硬件选择与连接、软件编程以及用户界面设计。

通过合理地选择硬件和软件方案,以及使用PID控制算法,我们可以实现一个稳定且准确的步进电机调速系统。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

浅析利用单片机控制步进电机

浅析利用单片机控制步进电机

浅析利用单片机控制步进电机步进电机是一种特殊的电机,它的旋转是以固定的步进角度进行的。

由于步进电机具有结构紧凑、响应快、精度高等优点,因此在现代工业中被广泛应用。

单片机是一种集成电路,具有处理器、内存、输入输出接口等功能,可以实现复杂的控制系统。

利用单片机控制步进电机,可以实现自动化控制、精确位置控制等功能。

本文将从单片机控制步进电机的原理、编程方法和实际应用等方面进行浅析。

一、步进电机的原理步进电机是以固定步进角度进行的,它通过定时脉冲的输入来实现旋转。

步进电机通常有两种类型:单相和双相。

单相步进电机只有一个磁极,其旋转步进角度为180度或360度,速度较低,适用于低速应用。

双相步进电机由两个相互独立的电动机组成,其中一个电动机是主电动机,控制步进角度;另一个电动机是助力电动机,用于控制转矩大小。

二、单片机控制步进电机的编程方法步进电机是一种开环控制系统,其传感器是定位脉冲信号,控制器要根据这个信号使步进电机准确地运动到指定位置。

下面介绍一种单片机控制步进电机的编程方法。

1.确定步进电机的类型和规格。

根据步进电机的类型(单相或双相)及规格(步距角、电压电流等)来选择合适的控制器。

2.编写程序。

编写程序时,需要考虑控制器与步进电机之间的通信和信号处理。

步进电机的控制是由单片机输出脉冲序列实现的,单次输出的脉冲数和脉冲频率(即马达的转速)均需要在程序中进行设置。

3.配置输入输出引脚。

单片机需要配置引脚,将其作为输入输出引脚。

需要将单片机的输出引脚与步进电机的控制器相关引脚相连,以实现控制。

在配置引脚时,需要注意引脚电平的设置,确保信号的传输正常。

4.实现控制算法。

步进电机的控制算法有两种:矢量控制算法和微步控制算法。

其中矢量控制算法可以实现粗略定位,微步控制算法可以实现精细定位。

5.调试和测试。

在完成程序的编写和调试之后,需要对控制程序进行测试。

测试过程中需要注意输出脉冲数和频率、步进电机的准确旋转等情况。

基于单片机的步进电机转速控制

基于单片机的步进电机转速控制

电子器件市场调研与系统设计实践专 业: *** 班 级: 姓 名: 学 号: 指导教师: ****大学****学院**** 年 **月**日基于单片机的步进电机调速与正反转控制系统1 系统要求步进电动机就是用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或线位移的微电动机,它最突出的优点就是可以在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且用其组成的开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。

随着微电子与计算机技术的发展,步进电动机的需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。

本设计基于单片机控制的步进电机设计课题就是以单片机为主控制模块,从而实现电机的启停、正反转与调速的目的的一个设计课题。

在课题设计之前,通过互联网了解到了当前步进电机的发展状况及发展前景。

同时也了解了当今最先进的步进电机所具备的功能,方便为课题设计提供参考与借鉴;最后,通过画原理框图的形式,以最直观的方式为整个课题设计制定了流程及要求。

1、1 设计目的《电子器件市场调研与系统设计实践》就是本专业的重要实践教学环节,强调实际应用技能训练。

结合自动化专业系列课程的学习,培养我们对电子器件的认知,锻炼我们的市场调研能力,加深我们对自动化专业系列课程知识的掌握。

通过课程设计环节培养学生与人交往、独立思考与处理问题的能力。

1、2 设计内容及要求本次课程设计所选的步进电机就是四相步进电机,采用的方法就是利用单片机控制步进电机的驱动。

步进电机就是一种将电脉冲转化为角位移的执行机构。

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转就是以固定的角度一步一步运行的。

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

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

电子器件市场调研与系统设计实践专 业: *** 班 级: 姓 名: 学 号: 指导教师: ****大学****学院**** 年 **月**日基于单片机的步进电机调速与正反转控制系统1 系统要求步进电动机是用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或线位移的微电动机,它最突出的优点是可以在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且用其组成的开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。

随着微电子和计算机技术的发展,步进电动机的需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。

本设计基于单片机控制的步进电机设计课题是以单片机为主控制模块,从而实现电机的启停、正反转和调速的目的的一个设计课题。

在课题设计之前,通过互联网了解到了当前步进电机的发展状况及发展前景。

同时也了解了当今最先进的步进电机所具备的功能,方便为课题设计提供参考和借鉴;最后,通过画原理框图的形式,以最直观的方式为整个课题设计制定了流程及要求。

1.1 设计目的《电子器件市场调研与系统设计实践》是本专业的重要实践教学环节,强调实际应用技能训练。

结合自动化专业系列课程的学习,培养我们对电子器件的认知,锻炼我们的市场调研能力,加深我们对自动化专业系列课程知识的掌握。

通过课程设计环节培养学生与人交往、独立思考和处理问题的能力。

1.2 设计内容及要求本次课程设计所选的步进电机是四相步进电机,采用的方法是利用单片机控制步进电机的驱动。

步进电机是一种将电脉冲转化为角位移的执行机构。

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。

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

本次课程设计就是通过改变脉冲频率来调节步进电机的速度的,并且通过数码管显示其转速的级别。

另外通过单片机实现它的正反转,步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。

2 系统方案及原理2.1 系统设计方案该步进电机调速系统主要具有电机启停、调速、正反转控制和显示功能,现将该步进电机调速控制系统实现的所有功能的具体步骤整理如下:(1)步进电机启停功能。

单片机预设初值,预设初值脉冲发送给驱动器,驱动步进电机按预设的最低速运行。

(2)步进电机调速功能。

将产生的不同频率和脉宽的脉冲信号输入到驱动器中,驱动电机在单位时间内转动若干个步角距。

(3)步进电机转向控制。

通过改变步进电机绕组的通电相序,改变转子的转向,从而实现步进电机的正反转控制功能。

(4)复位功能。

通过复位单片机,使单片机输出的脉冲复位为预设初值,从而使步进电机复位为预设最低速度运行。

(5)显示功能。

通过在四位一体数码管中显示设定步进电机目前的转速和转向。

2.2 自动浇花系统原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

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

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

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。

系统是单片机控制,整个设计的电压是5v,所以电机的电压也要选择5v可以驱动的,所以本实验选择28BYJ-48步进电机作为设计对象,步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。

当通电状态的改变完成一个循环时,转子转过一个齿距。

原理框图如图1。

图1步进电机控制系统原理框图3 市场调研及硬件设计3.1市场调研认真分析了题目所要求的功能后,进行了系统设计。

对方案进行了仿真实验,并对所需的器件进行了市场调研,通过不同的途径,包括淘宝店、天猫购物、实体店,对比分析后,最优方案是通过淘宝店购买元器件。

主要的元器件罗列如表1。

通过硬件电路搭建后,完成实物电路板的焊接过程,实物图见附录A。

3.2电路原理图从控制系统的大小和复杂度出发,必须考虑单片机的基本参数和增强功能。

前者往往需要考虑芯片的速度,ROM容量,I/O引脚数量和工作电压(1.8V/3V/5V)等,后者则包括是否拥有看门狗,双指针,双串口,实时时钟,CAN接口,SPI 接口,USB接口等附加模块。

本设计中受控对象只有超声波、声光报警,复杂度低,采用低端的通用的单片机芯片就能够满足要求。

P0口为四位一体数码管的段选。

P1.0为步进电机启停按键定义,P1.1为步进电机正反转按键定义,P3.0为步进电机加速按键定义,P3.1为步进电机减速按键定义,P2.0、P2.1、P2.2、P2.3为四位一体数码管的位选。

P2.7、P2.6、P2.5、P2.4为脉冲信号输入端定义,原理图如图2。

图2 系统原理图4 硬件调试及分析4.1 Proteus软件仿真在实物制作前,需要首先在Proteus仿真软件中对电路进行设计(即对硬件电路图进行合理的搭配,如图2),通过仿真软件测试电路与编译的程序相配合,检查外围电路设计是否合理,程序编译是否正确,以及软件和硬件是否能够正常配合工作,实现设计中的要求,若仿真电路没有问题,就可以在实际电路中对实物进行焊接制作。

我选择单片机仿真软件Proteus8.2仿真以及Keil4 编译。

源程序见附录B。

4.2 按键电路按键操作在四位一体数码管上显示步进电机的转速和转向,有启停按键,正反转按键以及加减速按键,如图3。

图3 按键电路图4.3 显示电路检测到土壤湿度湿度和预先设置的上下限值,显示在液晶显示屏上,如图4。

图4 步进电机一档速正转4.4 驱动电路STC89C51RC的P2口作为驱动电路的控制引脚,P2输入高电平时,对应的输出为0,LED灯亮,步进电机转动,水泵工作;P2口输入低电平时,对应输出为1,LED灯熄灭,步进电机停止转动,如图5。

图5 驱动电路5 总结在把理论设计转换成实物的整个过程,如:电路设计、分析计算、画电路图、焊接电路、检查调试、软件流程控制设计分析、编写调试软件、烧写软件到整个软硬件系统的调试,最后直到系统完成。

其中整个系统的前期准备是首先必须做到位的,如控制什么、用什么控制、得到什么结果,进而对各部分应选择具体的芯片作进一步的考虑,以使系统得到最优的表现。

通过本课题,一方面我在查阅资料的基础上,了解STC89C51单片机控制的一些基本技术,掌握其控制系统的分析方法与实现方法,能对单片机外围电路设计进行系统学习与掌握;另一方面,在设计步进电机控制系统的硬件电路,控制程序和相应的电路图时,应充分运用说学知识,善于思考,琢磨,分析。

我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。

学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。

这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。

参考文献[1] 王思明,张金敏,苟军年.单片机原理及应用系统设计[M].北京:科学出版社,2012.[2] 周润景,刘晓霞.基于PROYEUS的电路设计、仿真与制板[M]. 北京:电子工业出版社,2013.8.[3] 潭浩强.C 语言程序设计.清华大学出版社[M].2005.07.[4] 张毅刚,MCS-51单片机应用设计[M].哈尔滨工业大学出版社.2004.[5] 刘乐喜.微机计算机接口技术及应用[M].华中科技大学出版社.2005.08.[6] 冯博琴.微型计算机原理与接口技术[M].清华大学出版社.2004.附录A 实物图附录B 源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define led P0//数码管段选#define haha P2sbit s1 = P1^0;sbit s2 = P1^1;sbit s3 = P3^0;sbit s4 = P3^1;//按键定义,s1正转,s2反转,s3加1,s4减1sbit wei3 = P2^3;sbit wei2 = P2^2;sbit wei1 = P2^1;sbit wei0 = P2^0;//数码管位选定义sbit a = P2^7;sbit b = P2^6;sbit c = P2^5;sbit d = P2^4;//脉冲信号输入端定义uchar code display[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳数码管驱动信号0---9,不显示uchar code time_counter[10][2]={{0xda,0x1c},{0xde,0xe4},{0xe1,0xec},{0xe5,0xd4},{0xe9,0xbc}, //9.7 ----1ms{0xed,0xa4},{0xf1,0x8c},{0xf5,0x74},{0xf9,0x5c},{0xfc,0x18}};uchar code qudong[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90};uchar num1 = 0;//控制取励磁信号变量uchar num2 = 8;uchar k=1;//加减档位控制,1为最小档bit flag1 = 0;//初始正转,正反转标志uchar buf[4]={0,10,10,1};//数码管显示缓存,正转,不显示,不显示,显示1档位,高----低//================================定时器0/1初始化函数================================void T0_T1_init(){TMOD = 0x11;//定时器0/1均工作于方式1,16位计时方式TH0 = (65536 - 4000)/256;TL0 = (65536 - 4000)%256;//定时器0,定时4ms用于数码管扫描显示TH1 = time_counter[k-1][0];TL1 = time_counter[k-1][1];//定时器1,定时10ms用于步进电机转速控制TR0 = 1;TR1 = 1;ET0 = 1;ET1= 1;//开定时器中断EA = 1;//开总中断}//================================ms级延时函数=======================================void delay1m(uint x){uint i,j;for(i=0;i<x;i++) //连数x次,约x msfor(j=0;j<120;j++); //数120 次,约1 ms}//================================主函数=============================================void main(){T0_T1_init();buf[1] = 10;//不显示while(1){if(s1 == 0){delay1m(3);if(s1 == 0){flag1 = 0;//正转buf[0] = 0;//最高位显示0haha = 0x00;//停止{k--;if(k == 0){k = 10;}buf[2]= k/10;buf[3]= k%10;}flag1 = 1;//反转buf[0] = 1;//最高位显示1haha = 0x00;//停止}while(!s2);}if(s3 == 0) //速度加1档{delay1m(3);if(s3 == 0){k++;if(k > 10 ){k = 1;}buf[2]= k/10;buf[3]= k%10;}while(!s3);}if(s4 == 0) //速度减1档{delay1m(3);if(s4 == 0){k--;if(k == 0){k = 10;}buf[2]= k/10;buf[3]= k%10;}while(!s4);}}}//==================================定时器0中断函数,用于数码管扫描显示====================================void time0_interrupt()interrupt 1{static num = 0;TH0 = (65536 - 4000)/256;TL0 = (65536 - 4000)%256;//定时器0,定时4ms用于数码管扫描显示switch(num){case 0:wei3=1;wei2=1;wei1=1;wei0=0;led = display[buf[3]];break;case 1:wei3=1;wei2=1;wei1=0;wei0=1;led = display[buf[2]];break;case 2:wei3=1;wei2=0;wei1=1;wei0=1;led = display[buf[1]];break;case 3:wei3=0;wei2=1;wei1=1;wei0=1;led = display[buf[0]];break;}num++;if(num == 4)num = 0;}//==================================定时器1中断函数,用于脉冲频率控制=====================================void time1_interrupt()interrupt 3{static num1 = 0;static num2 = 0;TH1 = time_counter[k-1][0];TL1 = time_counter[k-1][1];//定时器1,定时1 用于步进电机转速控制if(flag1 == 0)//正转{switch(num1){case 0:a = 1;b = 0;c = 0;d = 0;break;case 1:a = 1;b = 1;c = 0;d = 0;break;case 2:a = 0;b = 1;c = 0;d = 0;break;case 3:a = 0;b = 1;c = 1;d = 0;break;case 4:a = 0;b = 0;c = 1;d = 0;break;case 5:a = 0;b = 0;c = 1;d = 1;break;case 6:a = 0;b = 0;c = 0;d = 1;break;case 7:a = 1;b = 0;c = 0;d = 1;break;}num1++;if(num1 == 8)num1 = 0;}else //反转{switch(num2){case 0:a = 1;b = 0;c = 0;d = 1;break;case 1:a = 0;b = 0;c = 0;d = 1;break;case 2:a = 0;b = 0;c = 1;d = 1;break;case 3:a = 0;b = 0;c = 1;d = 0;break;case 4:a = 0;b = 1;c = 1;d = 0;break;case 5:a = 0;b = 1;c = 0;d = 0;break;case 6:a = 1;b = 1;c = 0;d = 0;break;case 7:a = 1;b = 0;c = 0;d = 0;break;}num2++;if(num2 == 8)num2 = 0;}}。

相关文档
最新文档