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

合集下载

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

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

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

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

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

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

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

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

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

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机、喷绘机、刻字机、写真机、喷图设备、医疗仪器及设备、计算机外设及海量储存设备、精密仪器、工业控制系统、办公自动化、机器人等领域。

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

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

毕业设计(论文)课题名称基于单片机的步进电机控制设计学生姓名学号系、年级专业信息工程系﹑电子信息工程专业指导教师职称讲师2009年5 月22 日摘要本论文主要介绍了基于单片机的步进电机控制的规则、硬件结构、软件代码的编写与工作原理、以与液晶模块12864LCD的详细介绍以与指令集。

模拟出单片机系统下的步进电机转速控制,具有任意转速选择、转动时间、正反转、加速和减速设置、系统低功耗、可实现在线调试等特点。

本系统是以单片机为其控制核心,以有源晶振构成的电路作为时钟信号,通过键盘输入选择向单片机控制系统发出步进转动控制命令,控制系统接收命令后做出一系列必要的判断后,控电机的转速、转向等。

本设计已通过了实验仿真,运行稳定,达到了基本的设计要求。

本设计要分为两大块:一块为硬件电路组成部分,一块为软件程序设计部分。

在硬件电路里主要包括有源晶振部分、键盘输入控制部分、电机驱动电路与液晶显示部分等与单片机的接线设计;软件编程方面主要是子程序和主程序的编写,包括:初始化代码、液晶驱动代码、时间记录代码、表格数据代码等。

关键词:单片机;步进电机;12864LCD;指令集AbstractThis thesis is mainly introduce the Prepared and working principles about regulation、structure of hardware、software code of stepping motor control based on MCU as well as detail information and instruction set on LCD Module 12864LCD. This thesis also simulates that under the system of single-chip stepping motor speed control has the disadvantages of changing speed、time arbitrary、Positive and negative transfer、installation of accelerated and deceleration、low-power system and online debugging. Single-chip as core of control and the circuit made up by active crystal as clock signal, the stepper motor speed control system starts to making a series of necessary judgment and then control rotate speed and change direction when it receive the command of stepper transfer control from single-chip control system by keyboard. As run steady, this project has already passed the simulation and has achieved the basic purpose.This project consists of two parties. One is hardware circuit and the other is software programming. In the part of hardware circuit is include active crystal、control system of keyboard input 、system of motor drive circuit and liquid crystal system. In the second part, Design of connection of single-chip、software prepared is the mainly prepared of Subroutine and Main program including initialization code 、liquid drive code 、the timing of recording code form data code[8].Key words: MCU;stepper motor;12864LCD;Instruction Set.目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题的来源 (1)1.2 课题研究的意义 (1)1.3 课题国内研究现状 (1)1.4 课题研究的目的和主要内容 (2)第2章步进电机方案设计与分析 (4)2.1 方案提出 (4)2.2 可行性分析 (5)2.3 主要器件选择 (5)第3章系统硬件设计 (7)3.1 AMPIRE128*64液晶屏介绍 (7)3.2 HD61202与其指令集介绍 (8)3.3 晶振、复位、驱动电路 (11)3.4 液晶显示屏与单片机接口电路 (13)3.5 控键与单片机接口电路 (13)第4章系统软件设计 (16)4.1 电机流程图 (16)4.2 液晶屏驱动代码设计 (17)4.3 固定字符显示代码 (21)4.4 中断子程序 (22)4.5 汉字表 (23)4.6 字符表 (25)4.7 延时子程序 (26)4.8 主函数程序 (26)第5章系统仿真 (28)5.1 Keil2编译环境介绍 (28)5.2 Proteus 仿真平台 (29)5.3 建立工程项目 (31)5.4 Proteus中原理图的绘制与文件的加载 (35)5.5 开机界面显示 (36)5.6 控制界面显示 (36)5.7 仿真结果分析与解决方法 (37)第6章PCB板设计 (38)6.1加载网络表与元件封装 (38)6.2 PCB板参数设置 (40)6.3元件布局与布线设计 (42)结束语 (44)参考文献 (45)致谢 (46)附录Ⅰ总体电路图 (46)第1章绪论1.1 课题的来源步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。

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

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

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

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

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

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

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

2. 等待步进电机稳定。

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

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

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

4. 根据指令调整转速。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的步进电机控制探讨在步进电机的运行过程中,来自于单片机的电子脉冲信号可以控制其转动角度,而借助于单片机硬件电路以及软件编程等形式,则可实现步进电机的启动、停止以及正反转等动作,以此来实现对步进电机的有效控制。

基于此,本文分析了基于单片机的步进电机控制方法,以期为步进电机的应用与控制提供相应参考。

标签:单片机;步进电机;控制策略;控制系统0 引言步进电机的系统结构简单,对转动定位控制精准,因此步进电机在仪表控制和过程控制中发挥着至关重要的作用,且在当今的自动化控制、电动阀控制、数控机床以及医疗设施等各领域中得到了广泛应用。

而在步进电机的具体应用过程中,单片机可以对其起到更加精准的控制作用,以此来实现应用效果的显著提升。

因此,在步进电机的应用与研究中,应加大对单片机控制的研究,以此来实现步进电机的良好应用与发展。

1 步进电机工作原理在步进电机的运行过程中,电子脉冲信号数量及其频率对其转动速度以及停止位置起到决定性作用。

在步进电机运行过程中,如果给定一个脉冲信号,其转子便可经过相应角度,我们将该角度叫做步距角。

就目前的步进电机来看,步距角一般按照半步和一步进行划分,具体情况如表1所示。

按照以上划分方式,每给定一个脉冲信号,步进电机就可以转动0.9°,随着脉冲信号书的连续给定,可控制步进电机实现连续运转。

2 基于单片机的步进电机控制2.1控制系统框架分析2.1.1硬件系统设计构架分析在本次所研究的步进电机控制系统中,应用到的单片机为51单片机,主控制器型号为80C51,该控制器属于一种有着高效性的微控制器,通过该控制器的应用,可以为嵌入形式的控制系统提供出价格低廉、灵活度高的方案,其组成部分及其个数如表2所示。

在本次研究中,主要选择的步进电机是四相六线形式的步进电机,其额定电压是12V,这种步进电机可以在单拍模式下工作,也可以在单双拍混合模式下工作。

但是通常情况下,在该步进电机工作在单拍模式下时,其转动相角过度比较少,转动角度比较大,而且转动也并不十分连贯[1]。

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

基于单片机的步进电机转速控制器的设计的开题报告
[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.

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

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

基于单片机的步进电机控制电路设计
步进电机是一种应用广泛的电机,它的控制方式是通过逐步改变电流来驱动电机转动。

基于单片机的步进电机控制电路设计可以使步进电机的控制更加精确、方便和自动化。

下面将介绍一下如何设计一台基于单片机的步进电机控制电路。

首先,我们需要选择合适的单片机。

对于步进电机控制,需要一个I/O口数目足够的单片机,并且要求计算速度快、性能稳定。

常用的单片机有AT89C51、AVR、PIC、STM32等,其
中STM32拥有强大的计算能力和外设支持,非常适合用于步
进电机控制电路的设计。

接下来,我们需要考虑步进电机的驱动方式。

步进电机可以采用全步进或半步进两种方式驱动。

全步进控制方式会让电机一步步转动,步距为180度,转速慢但精确度高,而半步进控制方式可以让电机先半步,再进入全步进控制,提高了转速同时又保持了较高的精度。

最后,我们需要设计电路连接和代码编写。

在电路连接方面,需要将单片机输出引脚和驱动芯片的控制引脚相连,同时将驱动芯片输出端和电机的相应引脚相连。

在代码编写方面,需要根据所选单片机的指令集来编写步进电机控制引脚输出的程序,实现步进电机转速和方向的控制。

综上所述,基于单片机的步进电机控制电路设计需要选取合适的单片机,选择合适的步进电机驱动方式,并根据电路连接和
代码编写来实现电机的精确控制。

这样设计出的步进电机控制电路可以应用于各种机械设备控制,使之更加智能化和自动化。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

设计题目:基于MCS-51单片机的反应式步进电机控制器设计,要求能够控制其转速、正反转和运行步数。

摘要:在中国这个发展中大国,单片机的出现意味着计算机分为通用计算机系统和嵌入式计算机系统。

单片机单芯片因它的体积微小和成本低廉的优点而广泛的应用到家电、仪表、汽车电子、工业控制单元、办公自动化设备、通信设备等这些产品中去,是现代电子系统中极其重要的智能化工具。

在未来,单片机将会进一步的走向低功耗、小体积、大容量、高性能、低价位和混合信号集成化。

本设计基于AT89S51单片机,利用反应式步进电机控原理,对其控制进行硬件和软件的设计。

以实现对反应式电机的控制器可对36BF003型步进电机进行正反转、启停、速度和步数控制。

关键字:步进电机;单片机;拍数;控制器;反应式一、控制原理分析1.1 三相步反应式进电机工作原理反应式步进电机又称可变磁阻式步进电机,它和普通的电机一样,也是有定子和转子组成,它利用磁阻转矩使转子转动。

三相反应式步进电机定机定子上有六个极,每个极上装有控制绕组,每相对的两极组成一相。

转子上有数个均匀分布的齿,其上没有绕组,当A相通电时,转子在磁场力的作用下与定子齿对齐,若切断A相电源,同时接通B相电源,在磁场力的作用下转子转过一个步距角(步距角由转子齿数、控制绕组相数和通电方式决定),如再使B相断电,同时使C相控制绕组通电,转子又转过一个步距角。

如此循环通电,并按A→B→C→A顺序通电,步进电机便按一定的方向转动。

电机的转速取决于控制绕组接通的断开的变化频率。

若改变通电顺序,即按A→C→B→A方式通电,则电机反向转动。

上述通电方式称为三相单三拍通电方式;这里的“拍”是指定子控制绕组每改变一次通电方式,为一拍;“单”是指每次只有一相控制绕组通电;“三拍”是指经过三次切换控制绕组的通电状态为一个循环。

三相步反应式进电机除上述通电方式外,还有三相双三拍和三相单双六拍通电方式,三相双三拍通电顺序为AB→BC→CA→AB或AB→CA→BC→AB,三相单双六拍通电顺序为A →AB→B→BC→C→CA→A或A→AC→C→CB→B→BA→A,这里“AB”表示A、B两相同时通电,依此类推。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本设计选择使用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单片机的步进电机控制系统是一个功能强大、应用广泛的控制系统,可以实现精密控制和自动化控制等多种应用,具有很高的实用价值和研究价值。

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

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

基于单片机控制的步进电机控制器一.设计要求(一)基本功能1.实现步进电机的正反转控制2.实现步进电机的加速控制3.实现步进电机的减速控制如过载保护、欠压保护、短路保护和防飞车等功能。

(二)扩展功能任意设定一点为圆心,实现一个直径为10cm的圆形轨迹运动。

二.计划完成时间三周1.第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。

2.第二周完成软件的具体设计和硬件的制作。

3.第三周完成软件和硬件的联合调试目录1 引言 (1)2 总体设计方案 (1)2.1 设计思路 (1)2.1.1 方案1 (1)2.1.2 方案2 (1)2.2 设计方框图 (1)3 设计原理分析 (2)3.1 步进电机 (2)3.2 步进电机驱动电路以及状态显示电路设计 (2)3.3 键盘电路设计 (3)3.4 时钟振荡电路和复位电路设计 (3)3.5 正反转、加速、减速标志电路设计 (4)3.6 步进电机时序表和时序图 (4)4 结束语 (5)参考文献 (5)附录 (6)基于单片机控制的步进电机控制器班级:应教053班姓名:董保全摘要:本设计采用AT89S51单片机实现对步进电机的控制。

通过单片机的I/O来实现对步进电机的控制,用uln2003来驱动步进电机,并且使用了发光二极管LED来显示步进电机的转速,在单片机的P1口使用四个LED来作为正反转,加速减速控制的标志。

用独立连接式非编码键盘来对电机的状态进行控制。

关键词:步进电机单片机A T89S51 发光二极管引言步进电机是一种将电脉冲信号变换成相应的角位移或直线位移的机电执行元件。

控制步进电机的输入脉冲数量、频率及电机各项绕组的接通顺序,可以得到各种需要的运行特性。

尤其与数字设备配套时,体现了更大的优越性,因此广泛应用于数字控制系统中。

本文介绍已实现的单片机对步进电机的数字控制系统。

该控制系统中,控制器担负着产生脉冲以及发送、接受控制命令的任务。

本设计对步进电机的驱动电路,显示电路以及键盘控制电路做了详细的介绍。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于51系列单片机控制步进电机调速实验

基于51系列单片机控制步进电机调速实验

基于51系列单片机控制步进电机调速实验实验目的及要求:1、熟悉步进电机的工作原理2、熟悉51系列单片机的工作原理及调试方法3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量)4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。

速度设定由键盘设定,步进电机的反馈速度由LED数码管显示。

实验原理:步进电机控制原理一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。

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

步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。

因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。

步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。

由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。

随着数字控制系统的发展,步进电动机的应用将逐渐扩大。

步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机的驱动电路根据控制信号工作,控制信号可以由单片机产生。

电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。

0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)图1 是反应式步进电动机结构示意图,它的定子具有均匀分布的六个磁极,磁极上绕有绕组。

  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;}}。

相关文档
最新文档