找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4274|回复: 0
收起左侧

通过按键实现步进电机正反转代码及PROTEUS仿真电路图

[复制链接]
ID:381963 发表于 2018-9-26 22:19 | 显示全部楼层 |阅读模式
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include <absacc.h>

  4. typedef unsigned char uchar;
  5. typedef unsigned int uint;
  6. sbit p00=P0^0;
  7. sbit p01=P0^1;
  8. sbit p02=P0^2;
  9. bit tz;
  10. void delay(uchar n)
  11. {
  12.         uchar i,j;
  13.         for(i=0;i<n;i++)
  14.         {
  15.                 for(j=0;j<127;j++){}
  16.         }
  17. }
  18. uchar i,key,a=0;
  19. uchar code         table[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09/*0x04,0x0c,0x08,0x18,0x10,0x30,0x20,0x24*/};
  20. uchar code         table1[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
  21. void main()
  22. {
  23.         while(1)
  24.         {
  25.                         if(a==1)                 
  26.                         {
  27.                                 p00=0;
  28.                                 p01=1;
  29.                                 p02=1;
  30.        
  31.                                 for(i=0;i<8;i++)
  32.                                 {
  33.                                         P1=table[i];
  34.                                         delay(50);
  35.                                 }
  36.                                
  37.                         }
  38.                         if(a==2)
  39.                         {
  40.                                 p00=1;
  41.                                 p01=0;
  42.                                 p02=1;
  43.                                 for(i=0;i<8;i++)
  44.                                 {
  45.                                        
  46.                                         P1=table1[i];
  47.                                         delay(50);
  48.                                 }
  49.                         }       
  50.                
  51.                 key=0xf8|P3;
  52.                 if(key!=0xff)
  53.                 {
  54.                         delay(1);
  55.                         if(key!=0xff)
  56.                         {
  57.                                 while((0xf8|P3)!=0xff);
  58.                                 if(key==~0x01)
  59.                                 {
  60.                                           a=1;       
  61.                                 }
  62.                                 if(key==~0x02)
  63.                                 {
  64.                                           a=2;
  65.                                 }
  66.                                 if(key==~0x04)
  67.                                 {
  68.                                         a=0;
  69.                                         p00=1;
  70.                                         p01=1;
  71.                                         p02=0;
  72.                                 }
  73.                                
  74.                         }
  75.                 }
  76.                
  77.         }

  78. }
复制代码


PROTESU仿真电路图

PROTESU仿真电路图

按键控制电机正反转.zip

27.87 KB, 下载次数: 53, 下载积分: 黑币 -5

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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