找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7629|回复: 11
收起左侧

51单片机步进电机控制系统Proteus仿真程序设计 加减速 正反转

  [复制链接]
ID:721134 发表于 2020-7-2 11:31 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

仿真

仿真

本设计研究的是基于
51单片机的步进电机控制系统。采用单片机AT89C51作为控制核心,通过五个按键控制步进电机的运行状态,即控制启停、正反转、加减速,并利用八位的数码管显示步进电机的速度等级。本设计的硬件部分主要由单片机、键盘控制模块、电机驱动模块、数码管显示模块以及电源模块五部分组成。
51hei.png
编程实现方式有两种,查询和中断。全部文件都在附件中上传了。

软件设计部分本控制算法分为查询方式和中断方式两种控制算法。相比于查询方式,中断方式按键响应延时更小。主要的思路是:主函数先初始化相关寄存器后,在while循环中不断执行键盘扫描函数,而步进电机控制函数在调用定时器中断来实现。以下是算法解析:

步进电机采用八拍控制,数码管显示0-9的数字。预先设定对应的16进制数,存入数组。
本设计研究的是基于51单片机的步进电机控制系统。采用单片机AT89C51作为控制核心,通过五个按键控制步进电机的运行状态,即控制启停、正反转、加减速,并利用八位的数码管显示步进电机的速度等级。本设计的硬件部分主要由单片机、键盘控制模块、电机驱动模块、数码管显示模块以及电源模块五部分组成。系统框图如图1所示
本设计主要实现的功能:
(1)5 个按键控制整个电路,对应功能分别是:启动    / 暂停、正转、反转、加速、减速。
(2)数码管显示电机转动速度的等级;

单片机源程序如下:

  1. uchar cw[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};     //正转

  2. uchar acw[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};    //反转

  3. uchar a[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳数码管段码

  4. 声明相关函数

  5. void Delay_ms(uint x);         //延时函数

  6. void scan_key();                              //键盘扫描

  7. void display(uchar num);      //显示函数                  

  8. 定时器中断控制函数:index是一个循环系数,每次进入中断,系数自增一,当index到达预设的速度档位,就执行电机控制部分。



  9. void MOTOR_control() interrupt 3 //定时器1中断服务程序

  10. {

  11.        TH1=(65536-10000)/256;

  12.        TL1=(65526-10000)%256;

  13.        index++;

  14.        if(index >= loop)  //循环系数

  15.        {

  16.               index=0;

  17.               if(sw==1)

  18.               {

  19.                      step++;    //步进值

  20.                      if(step>8)

  21.                      {

  22.                             step=0;

  23.                      }

  24.                      else

  25.                      {

  26.                             if(flag==1)

  27.                             {

  28.                                    P2=cw[step-1]; //正转

  29.                             }

  30.                             else

  31.                             {

  32.                                    P2=acw[step-1];  //反转

  33.                             }

  34.                      }

  35.               }

  36.               else P2=0x00;}}
复制代码
51hei.png

全部资料51hei下载地址:
项目1.rar (339.84 KB, 下载次数: 617)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:793275 发表于 2020-7-3 10:50 | 显示全部楼层
附件里的仿真文件是仿真文件吗
回复

使用道具 举报

ID:721134 发表于 2020-7-8 10:44 | 显示全部楼层
yanannl 发表于 2020-7-3 10:50
附件里的仿真文件是仿真文件吗

是的,是proteus仿真工程文件,直接打开就可以了
回复

使用道具 举报

ID:875327 发表于 2021-1-23 11:06 来自手机 | 显示全部楼层
你好,STC89C51单片机可以用吗?
回复

使用道具 举报

ID:875327 发表于 2021-1-23 11:19 来自手机 | 显示全部楼层
STC89C51单片机可以用吗?电机的转速大致范围是多少
回复

使用道具 举报

ID:875327 发表于 2021-1-23 11:41 来自手机 | 显示全部楼层
mule.。 发表于 2021-1-23 11:19
STC89C51单片机可以用吗?电机的转速大致范围是多少

楼主,希望你看到后回答下。谢谢
回复

使用道具 举报

ID:881092 发表于 2021-1-28 10:06 | 显示全部楼层
为什么我复制来不能用
回复

使用道具 举报

ID:875327 发表于 2021-3-19 16:34 来自手机 | 显示全部楼层
请问如何让基础速度加快一些
回复

使用道具 举报

ID:815563 发表于 2021-3-25 17:41 | 显示全部楼层
步进电机控制是基础动作,一定要学好这个
回复

使用道具 举报

ID:967400 发表于 2021-9-21 23:44 | 显示全部楼层
新手,可以直接学这个有压力嘛?
回复

使用道具 举报

ID:721134 发表于 2022-1-8 17:18 | 显示全部楼层
mule.。 发表于 2021-1-23 11:41
楼主,希望你看到后回答下。谢谢

51的都可以用的
回复

使用道具 举报

ID:304740 发表于 2023-3-22 07:33 | 显示全部楼层
谢谢你的宝贵资料,感谢你的分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表