找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机串口通信控制电机代码

[复制链接]
跳转到指定楼层
楼主
ID:332059 发表于 2018-5-17 13:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include<reg52.h>
  2. sbit bb=P1^4;
  3. sbit cc=P1^5;
  4. sbit dd=P1^6;
  5. sbit ee=P1^7;
  6. unsigned int c;
  7. int a,b,d,e,num;
  8. void delay(int z);
  9. void panduan1();
  10. void duanpan1();
  11. void main()
  12. {
  13.    TMOD=0x20;//设置定时器1为工作方式2
  14.         TH1=0xfd;
  15.         TL1=0xfd;
  16.         TR1=1;
  17.         REN=1;
  18.         SM0=0;
  19.         SM1=1;
  20.         EA=1;                                                                                         
  21.         ES=1;
  22.         num=0;
  23.         d=0;
  24.       while(1)
  25.           {
  26.               if(RI==1)    //等待接收数据
  27.         {
  28.                   for(e=2;e>0;e--)
  29.                   {        
  30.                 num++;
  31.                 if(num==1)
  32.                 {         
  33.                  RI=0;            //需要软件清标志位
  34.          c=SBUF;       //读取数据
  35.                  }
  36.                  delay(200);
  37.                  if(num==2)
  38.                  {
  39.                    RI=0;
  40.                    d=SBUF;
  41.                   }
  42.                  }
  43.                           if(c==0xaa)
  44.         {
  45.            for(a=d;a>0;a--)
  46.            {            

  47.                    duanpan1();
  48.                
  49.           }
  50.            
  51.                   }
  52.         if(c==0xbb)
  53.         {
  54.             for(b=d;b>0;b--)
  55.                 {
  56.                   panduan1();
  57.           }
  58.         }
  59.          if(num==2)
  60.            {
  61.                 num=0;
  62.            }

  63.            }
  64.          

  65.   }
  66. }


  67. void delay(int z)
  68. {
  69.     int a,b;
  70.         for(a=100;a>0;a--);
  71.            for(b=z;b>0;b--);
  72. }

  73. void panduan1()
  74. {
  75.     bb=1;
  76.         cc=0;
  77.         dd=0;
  78.         ee=0;
  79.                 delay(100);
  80.         bb=1;
  81.         cc=1;
  82.         dd=0;
  83.         ee=0;
  84.                 delay(100);
  85.         bb=0;
  86.         cc=1;
  87.         dd=0;
  88.         ee=0;
  89.                         delay(100);
  90.         bb=0;
  91.         cc=1;
  92.         dd=1;
  93.         ee=0;
  94.                          delay(100);
  95.         bb=0;
  96.         cc=0;
  97.         dd=1;
  98.         ee=0;
  99.                 delay(100);
  100.         bb=0;
  101.         cc=0;
  102.         dd=1;
  103.         ee=1;
  104.                 delay(100);
  105.         bb=0;
  106.         cc=0;
  107.         dd=0;
  108.         ee=1;
  109.                          delay(100);
  110.         bb=1;
  111.         cc=0;
  112.         dd=0;
  113.         ee=1;

  114. }

  115. void duanpan1()
  116. {
  117.                            
  118.         bb=1;
  119.         cc=0;
  120.         dd=0;
  121.         ee=1;

  122.                                    delay(100);
  123.         bb=0;
  124.         cc=0;
  125.         dd=0;
  126.         ee=1;

  127.                                      delay(100);
  128.         bb=0;
  129.         cc=0;
  130.         dd=1;
  131.         ee=1;

  132.                                     delay(100);
  133.         bb=0;
  134.         cc=0;
  135.         dd=1;
  136.         ee=0;
  137.                                   delay(100);
  138.         bb=0;
  139.         cc=1;
  140.         dd=1;
  141.         ee=0;
  142.                                   delay(100);
  143.                 bb=1;
  144.         cc=1;
  145.         dd=0;
  146.         ee=0;
  147.                         delay(100);

  148.                         bb=1;
  149.         cc=0;
  150.         dd=0;
  151.         ee=0;
  152.                 delay(100);
  153. }
  154.   /*
  155. void ser() interrupt 4
  156. {
  157.   RI=0;
  158.   c=SBUF ;
  159.   }
  160.      if(c==0xaa)
  161.         {
  162.            delay(200);
  163.       panduan1();
  164.         }
  165.         if(c==0xbb)
  166.         {
  167.          delay(200);
  168.      duanpan1();
  169.         }         

  170.         */




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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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