找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10562|回复: 14
打印 上一主题 下一主题
收起左侧

用proteus8.0仿真51单片机控制步进电机实验报告与源码

  [复制链接]
跳转到指定楼层
楼主
用proteus8.0仿真51单片机控制步进电机,实现简单的正反转、加减速控制。
ps. 该贴仅为获取黑币而法,如有雷同,多多保函
实验内容
  • 掌握KeilC51软件与Protues软件联合仿真调试的方法;
  • 掌握步进电机的工作原理及控制方法;
  • 掌握步进电机控制的不同编程方法。
电路图

实验心得

    这次实验让我学到了通过改变延时函数的参数可以实现步进电机的增减速,改变驱动电机的数模可以实现电机的正反转,中途遇到的困难不少,但在老师的指导下总算是完成任务。这两次实验使我能更熟练地运用微机来控制其他器件,获益良多。

单片机源程序如下:
  1. #include<reg52.h>
  2. sbit KEY0=P0^0;
  3. sbit KEY1=P0^1;
  4. sbit KEY2=P0^2;
  5. sbit KEY3=P0^3;
  6. sbit KEY4=P0^4;
  7. unsigned char a[]={0x01,0x02,0x04,0x08};
  8. unsigned char b[]={0x08,0x04,0x02,0x01};
  9. unsigned char c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};

  10. unsigned char i,s=0,f=0;
  11. unsigned char k=200;
  12. unsigned char l=4;
  13. void delay(unsigned int t)
  14. {
  15.         unsigned char j,b;
  16. b=t;
  17.         while(b--)
  18.         {
  19.                 for (j=0;j<125;j++);
  20.         }
  21. }
  22. void key()
  23. {P0=0x1f;
  24.         if(P0!=0x1f)
  25.         {delay(30);
  26.                 if(P0!=0x1f)
  27.                 {delay(30);
  28.         if(KEY0==0)
  29.         {s=1;}
  30.         if(KEY1==0)
  31.         {f=1;}
  32.         if(KEY4==0)
  33.         {s=0;
  34.                 f=0;}
  35.         if(KEY2==0)
  36.                 {if(l>1)
  37.                  l--;}
  38.         if(KEY3==0)
  39.           {if(l<7)
  40.      l++;}
  41.          }}
  42.          }
  43. void speed()
  44.          {switch(l)
  45.                         {case 7:k=50;P1=c[l];break;
  46.                                 case 6:k=100;P1=c[l];break;
  47.                                 case 5:k=150;P1=c[l];break;
  48.                                 case 4:k=200;P1=c[l];break;
  49.                                 case 3:k=250;P1=c[l];break;
  50.                                 case 2:k=300;P1=c[l];break;
  51.                                 case 1:k=350;P1=c[l];break;}
  52.                         }
  53. void main()
  54. {
  55.         while(1)
  56.         {key();
  57.         while(s>0)
  58.         {speed();
  59.                         for(i=0;i<4;i++)
  60.                                 {
  61.                                         P2=b[i];
  62.                                         delay(k);
  63.                                         key();
  64.                                 }
  65.                                 delay(100);
  66.                                 key();
  67.                 }
  68.         
  69.         while(f>0)
  70.         {speed();
  71.                         for(i=0;i<4;i++)
  72.                                 {
  73.                                         P2=a[i];
  74.                                         delay(k);
  75.                                         key();
  76.                                 }
  77.                                 delay(100);
  78.                                 key();
  79.                 }
  80.         }
  81.         }
复制代码


所有资料51hei提供下载:
1.rar (142.85 KB, 下载次数: 350)


评分

参与人数 1黑币 +5 收起 理由
莫子栋 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:432064 发表于 2018-11-25 15:46 | 只看该作者
电机应该怎么加
回复

使用道具 举报

板凳
ID:556257 发表于 2019-6-6 11:53 | 只看该作者
很好啊,谢谢分享 嘿嘿
回复

使用道具 举报

地板
ID:438917 发表于 2019-6-22 21:17 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
ID:628603 发表于 2019-10-23 03:36 | 只看该作者
很给力啊
回复

使用道具 举报

6#
ID:633417 发表于 2019-11-16 22:54 | 只看该作者
我想要汇编语言
回复

使用道具 举报

7#
ID:659068 发表于 2019-12-8 20:26 | 只看该作者
感谢分享
回复

使用道具 举报

8#
ID:648615 发表于 2019-12-9 12:48 | 只看该作者
谢谢大神
回复

使用道具 举报

9#
ID:659463 发表于 2019-12-9 16:02 来自手机 | 只看该作者
谢谢分享,刚学这个,来学习学习,
回复

使用道具 举报

10#
ID:691008 发表于 2020-2-8 15:39 | 只看该作者
我想请教一下
unsigned char a[]={0x01,0x02,0x04,0x08};
unsigned char b[]={0x08,0x04,0x02,0x01};
unsigned char c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
这是什么意思呢
回复

使用道具 举报

11#
ID:704730 发表于 2020-3-30 12:37 | 只看该作者
1071730982 发表于 2020-2-8 15:39
我想请教一下
unsigned char a[]={0x01,0x02,0x04,0x08};
unsigned char b[]={0x08,0x04,0x02,0x01};

我也刚学感觉是正反转的 相
回复

使用道具 举报

12#
ID:741018 发表于 2020-5-19 16:26 | 只看该作者
请问一下这几个按钮作用是什么
回复

使用道具 举报

13#
ID:756005 发表于 2020-5-20 07:47 | 只看该作者
谢谢分享,文档不会写,到这偷学了
回复

使用道具 举报

14#
ID:187802 发表于 2020-5-20 10:31 | 只看该作者

谢谢分享
回复

使用道具 举报

15#
ID:767438 发表于 2020-6-21 15:21 | 只看该作者
很给力,谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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