51单片机控制步进电机的启动、停止、正转、反转

用51单片机控制步进电机的启动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。

步进电机的原理

图1是一种四相可变磁阻型的步进电机结构示意图。这种电机定子上有八个凸齿,每一个齿上有一个线圈。线圈绕组的连接方式,是对称齿上的两个线圈进行反相连接,如图中所示。八个齿构成四对,所以称为四相步进电机。

它的工作过程是这样的:当有一相绕组被激励时,磁通从正相齿,经过软铁芯的转子,并以最短的路径流向负相齿,而其他六个凸齿并无磁通。为使磁通路径最短,在磁场力的作用下,转子被强迫移动,使最近的一对齿与被激励的一相对准。在图1(a)中A相是被激励,转子上大箭头所指向的那个齿,与正向的A齿对准。从这个位置再对B相进行激励,如图1中的(b),转子向反时针转过15°。若是D相被激励,如图1中的(c),则转子为顺时针转过15°。下一步是C相被激励。因为C相有两种可能性:A—B—C—D或A—D—C—B。一种为反时针转动;另一种为顺时针转动。但每步都使转子转动15°。电机步长(步距角)是步进电机的主要性能指标之一,不同的应用场合,对步长大小的要求不同。改变控制绕组数(相数)或极数(转子齿数),可以改变步长的大小。它们之间的相互关系,可由下式计算:

Lθ=360 P×N

式中:Lθ为步长;P为相数;N为转子齿数。在图1中,步长为15°,表示电机转一圈需要24步。

步进电机的驱动

混和步进电机的工作原理

在实际应用中,最流行的还是混和型的步进电机。但工作原理与图1所示的可变磁阻型同步电机相同。但结构上稍有不同。例如它的转子嵌有永磁铁。激励磁通平行于X轴。一般来说,这类电机具有四相绕组,有八个独立的引线终端,如图2a所示。或者接成两个三端形式,如图2b所示。每相用双极性晶体管驱动,并且连接的极性要正确。

图3所示的电路为四相混和型步进电机晶体管驱动电路的基本方式。它的驱动电压是固定的。表1列出了全部步进开关的逻辑时序。步数

Q1

Q2

Q3

Q4

1

1

0

1

0

2

1

0

0

1

3

0

1

0

1

4

0

1

1

0

5

1

0

1

0

键盘设计

该系统中只运用到三个控制按钮,即 “正反”,“换挡”,“启停”,由于按钮较少,所以采用独立键电路,这种按键电路的按键结构相对行列式按键电路更简单,更使人易懂。

显示电路设计

如图2.31,采用LED数码管动态显示数据与个项参数,方法简单,容易控制,成本低。

设计如下图

图2.31

驱动电路设计

驱动电路可分为:三极管直接驱动(图3),采用斩波恒流驱动方式(图2.41)和芯片驱动电路等。驱动电路的性能直接关系到步进电机走步的准确与稳定。本电路采用驱动芯片ULN2803。ULN2803是一种大电流高电压型器件,外电路简单(图2.42)。

电路设计

设计要点和软硬环境

1、步进电机的设计要点和软硬件环境

步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。即步进电机是将电脉冲信号转换为机械角位移的执行元件。步进电机的控制可以用硬件,也可以用软件通过单片机实现。硬件方法是采用脉冲分配器芯片进行通用换相控制;而软件方法是用单片机产生控制脉冲来控制步进电机的运行状态,这种方法可简化电路,降低成本。

在用软件控制时,主要设计要点如下:

l 判断旋转方向;

l 按相序确定控制字;

l 按顺序输入控制字;

l 确定控制步数和每一步的延时时间。

由于单片机的驱动电流一般都比较小,不能直接驱动电机工作,所以单片机的I/O口输出必须接驱动电路,即功率驱动,才得以控制电机正常工作。控制框图如下图所示:

2、相关参数设定:

这里采用四相六线步进电机,这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成。其相序A-AB-B-BC-C-CD-D-DA。所以其正转控制脉冲为:01h,09h,08h,0ch,04h,06h,02h,03h,00h;反转控制脉冲为:01h,03h,02h,06h,04h,0ch,08h,09h,00h。

单片机的晶振为12MHZ;

3、系统电路图:

一、单片机最小系统的硬件原理接线图:

1、 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF

2、 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容20pF

3、 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理

4、 接配置:EA(PIN31)。说明原因。

二、单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务)

1、 四个8位通用I/O端口,对应引脚P0、P1、P2和P3;

2、 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1)

3、 一个串行通信接口;(SCON,SBUF)

4、 一个中断控制器;(IE,IP)

根据以上的方案比较与论证确定总体方案,确定硬件原理图。原理图如下:

系统软件设计

程序流程图

程序设计

根据要求,可以将程序分为以下几个部份:

(1) 键盘输入程序设计

本系统使用的键盘较少,因此采用独立式键盘接口设计。独立式键盘适用于按键数量较少的场合。独立键盘工作原理:通过上拉电阻接到+5V上。无按键,处于高电平状态,有键按下电平为低。在消除抖动影响上是可以采用了软件消抖方法:在第一次检测到有键按下时,执行一段延时子程序后(约5ms),再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。

(2) 步进电机运行步数控制程序

此方案采用单相和双相交差通电处理方式。此方法具有运行速度稳定,运行步数准确无误等优点。

单片机控制步进电机程序c语言正反转停止,51单片机控制步进电机的启动、停止、正转、反转...相关推荐

  1. 第01课 了解单片机的原理控制一个LED灯的亮和灭-----51单片机C语言试验教程

    第一课,了解单片机及单片机的控制原理和DX516 的用法,控制一个LED 灯的亮和灭 本章学习内容: 单片机基本原理,如何使用DX516 仿真器,如何编程点亮和灭掉一个LED 灯,如何进入KEILC5 ...

  2. c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)

    51c程序 51单片机定时器中断程序(C语言) 用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶 ...

  3. 单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)

    EA     是 中断总开关, 不管是定时器,串口还是外部中断,都需要打开 EA 才能触发中断; ET0   是 定时器0 的专用中断开关, 也就是说: 打开了EA.而不打开ET0,定时器0是无法触发 ...

  4. 基于51单片机的公交车安全智能检测系统、基于51单片机的金属探测仪控制设计、基于单片机的智能电子密码锁系统设计、基于51单片机酒精浓度检测仪设计【资料转发分享】

    630基于51单片机的公交车安全智能检测系统-设计资料 本资料是基于单片机的公交车安全监测系统 具有如下功能: 1.监测环境的温度,超标报警.可以设置上下限 2.监测是否有火灾以及有毒气体,超标报警, ...

  5. C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)

    系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...

  6. 台达触摸屏modbusRTU与51单片机通讯台达屏与郭天祥51单片机通讯程序

    台达触摸屏modbusRTU与51单片机通讯台达屏与郭天祥51单片机通讯程序亲测过好用,P1口led显示8个位的状态上传给触摸屏,d2至d7为16数据寄存器能写能读,数码管显示当前写入的数码id=60 ...

  7. 详解步进电机原理及其正反转驱动程序(51单片机)

    一.步进电机基本原理 1.开环 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件. 2.工作状态 非超载时,电机转速.转过的角度取决于脉冲信号的频率和脉冲数. 3.线性关系 给电机施加一个脉冲 ...

  8. 单片机跑马灯程序c语言,MCS-51单片机控制跑马灯的三种方法

    描述 在MCS一51单片机的控制系统中,它的四个并行8位输入输出端口P0一P3是我们经常使用的.在并行端口的编程学习中,"跑马灯"是单片机并行端口输出控制的典型实例.所谓跑马灯,是 ...

  9. avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...

    AVR单片机控制8段LED数码管同时显示 这是一个简单的供单片机入门学习者练习用的8段LED数码管控制汇编程序,控制一个两位的数码管同时显示字符(动态刷新).用AVR- Studio-4 开发,在AV ...

  10. 单片机六位抢答器c语言程序,八路电子抢答器(基于51单片机的8路抢答器设计C语言程序)...

    哥,你还有AT89C51单片机8路抢答器的资料吗 哥,你还有AT89C51单片机8路抢答器的资料吗 AT89C51单片机8路抢答器的资料 源程序如下 #include #define uchar un ...

最新文章

  1. JS获取当前/指定URL参数
  2. Laravel 日期时间处理包 Carbon 的应用
  3. lunix下的redis数据库操作——list列表
  4. 业内指路共享软件:更多机会在移动和海外市场(三)
  5. 锋利的JQuery —— 事件和动画
  6. 2020-01-14 英文资料How to Set Up Intel® Ethernet Flow Director
  7. Android sdk build-tools sdk tools 历史版本下载
  8. 电感感应电压公式推导
  9. warn - Attempted to load @next/swc-linux-x64-
  10. 【计组】偏移地址、段地址和寻址方式
  11. 使用magick 遇到 convert: Non-conforming drawing primitive definition `text'错误的解决办法...
  12. 100 道 Linux 常见面试题,建议收藏!
  13. 录屏——制作gif图片——压缩图片大小
  14. create-react-app创建的项目配置多入口MPA模式。报Cannot read property ‘filter’ of undefined
  15. 微信小程序的开发使用第三方组件库
  16. OSPF 特殊区域介绍、Stub、Totally Stub、NSSA、Totally NSSA
  17. 计算机网络节点分为三类,计算机网络技术1—2——3章
  18. int转换成char
  19. [leetcode javascript]周赛155:5197. 最小绝对差(没有做完
  20. 2022新版云进销存系统ERP销售库存仓库员工管理系统源码

热门文章

  1. .aspx(或.asp)文件与.html(.htm)文件的区别与联系
  2. Ubuntu下gcc安装及使用
  3. java 安卓 教学视频教程下载,老罗Android开发视频教程[共9大知识点] 下载
  4. 老罗android开发视频教程全集百度网盘下载
  5. xp java环境_XP系统怎么安装JAVA编程环境
  6. 遇到暴风影音 activeX 漏洞
  7. 商品销售数据分析报告
  8. linux冒险岛服务端,冒险岛V118单机版一键端,开放全职业 带GM工具和命令
  9. Jeecg弱口令后台上传getShell渗透测试
  10. Java连接数据库(增删改查)