找回密码
 立即注册

QQ登录

只需一步,快速开始

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

四线双极性电机的单片机程序按键没有反应

[复制链接]
跳转到指定楼层
楼主
ID:397079 发表于 2018-9-12 19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有没有大神帮我看一下问题出在哪里
插上后 按键没反应
课设要做的
希望哪位朋友给点帮助  不胜感激

下面是原程序:
  1. #include<reg52.h>
  2. #define uint  unsigned int
  3. #define uchar unsigned char


  4. sbit K1=P3^0;        //定义五个按键
  5. sbit K2=P3^1;        //
  6. sbit K3=P3^2;        //
  7. sbit K4=P3^3;        //
  8. sbit K5=P3^4;        //
  9. sbit motoA=P1^0;//四线双极性电机in_A
  10. sbit motoB=P1^1;//in_B
  11. sbit motoC=P1^2;//in_c
  12. sbit motoD=P1^3;//in_d

  13. uchar state=0;        //状态变量

  14. uint Time=60;         //转速



  15. void delay(uint ms)                           //Ñóê±£¬óÃóúμ÷Ëù
  16. {
  17.         uint t;
  18.         while(ms--)
  19.                 for(t=0;t<120;t++);
  20. }

  21. void motor_zz()                  //正转
  22. {
  23.         
  24.         while(1){
  25.                
  26.                               motoA = 1;
  27.                                 motoB = 1;
  28.                                 motoC = 0;
  29.                                 motoD = 1;
  30.                                 delay(Time);

  31.                                 motoA = 0;
  32.                                 motoB = 1;
  33.                                 motoC = 1;
  34.                                 motoD = 1;
  35.                                 delay(Time);

  36.                                 motoA = 1;
  37.                                 motoB = 1;
  38.                                 motoC = 1;
  39.                                 motoD = 0;
  40.                                 delay(Time);

  41.                                 motoA = 1;
  42.                                 motoB = 0;
  43.                                 motoC = 1;
  44.                                 motoD = 1;
  45.                                 delay(Time);
  46.         if(P3==0xfe)
  47.                                 {
  48.                            break;                                
  49.                                 }
  50.         
  51. }
  52. }

  53. void motor_fz()                  //反转
  54. {
  55.         
  56.         while(1)
  57.         {
  58.                                 motoA = 1;
  59.                                 motoB = 0;
  60.                                 motoC = 1;
  61.                                 motoD = 1;
  62.                                 delay(Time);

  63.                                 motoA = 1;
  64.                                 motoB = 1;
  65.                                 motoC = 1;
  66.                                 motoD = 0;
  67.                                 delay(Time);

  68.                                 motoA = 0;
  69.                                 motoB = 1;
  70.                                 motoC = 1;
  71.                                 motoD = 1;
  72.                                 delay(Time);

  73.                                 motoA = 1;
  74.                                 motoB = 1;
  75.                                 motoC = 0;
  76.                                 motoD = 1;
  77.                                 delay(Time);
  78.         if(P3==0xfe)
  79.                                 {
  80.                            break;                                
  81.                                 }
  82.         
  83. }
  84. }

  85. void main()
  86. {
  87. P1=0x00;
  88.         while(1)
  89.         {
  90.                 while(state==0)                        //×′ì¬0£¬í£Ö1
  91.                 {
  92.                         if(K2==0)   //°′ÏÂK2£¬μç»úÕy×a
  93.                         {
  94.                                 state=1;
  95.                
  96.                                 break;
  97.                         }
  98.                         if(K3==0)           //°′ÏÂK3£¬μç»ú·′×a
  99.                         {
  100.                                 state=2;
  101.                                 
  102.                                 break;
  103.                         }
  104.                         P0=0x00;
  105.                         
  106.                 }

  107.                

  108.                 while(state==1)                        //×′ì¬1£¬Õy×a
  109.                 {
  110.                         if(K1==0)           //°′ÏÂK1£¬μç»ú·′×a
  111.                         {
  112.                                 state=0;
  113.                                 
  114.                                 break;
  115.                         }
  116.                         if(K2==0)                //°′ÏÂK2£¬μç»úÕy×a
  117.                         {
  118.                                 state=1;
  119.                                 
  120.                                 break;
  121.                         }
  122.                         if(K3==0)                //°′ÏÂK3£¬μç»ú·′×a
  123.                         {
  124.                                 state=2;
  125.                                 
  126.                                 break;
  127.                         }
  128.                         if(K4==0)                //°′ÏÂK4£¬μç»ú¼óËù
  129.                         {
  130.                                 Time=Time-5;
  131.                                 if(Time<20)
  132.                                 Time=20;
  133.                                 while(K4==0);
  134.                         }
  135.                         if(K5==0)                //°′ÏÂK5£¬μç»ú¼õËù
  136.                         {
  137.                                 Time=Time+5;
  138.                                 if(Time>100)
  139.                                 Time=100;
  140.                                 while(K5==0);
  141.                         }
  142.                         motor_zz();                 //×′ì¬1£¬Õy×a
  143.                 }

  144.                 while(state==2)                   //×′ì¬2£¬·′×a
  145.                 {
  146.                         if(K1==0)                 //°′ÏÂK1£¬μç»ú·′×a
  147.                         {
  148.                                 state=0;
  149.                                 
  150.                                 break;
  151.                         }
  152.                         if(K2==0)                 //°′ÏÂK2£¬μç»úÕy×a
  153.                         {
  154.                                 state=1;
  155.                                 
  156.                                 break;
  157.                         }
  158.                         if(K3==0)                  //°′ÏÂK3£¬μç»ú·′×a
  159.                         {
  160.                                 state=2;
  161.                                 
  162.                                 break;
  163.                         }
  164.                         if(K4==0)                   //°′ÏÂK4£¬μç»ú¼óËù
  165.                         {
  166.                                 Time=Time-5;
  167.                                 if(Time<20)
  168.                                 Time=20;
  169.                                 while(K4==0);
  170.                         }
  171.                         if(K5==0)                   //°′ÏÂK5£¬μç»ú¼õËù
  172.                         {
  173.                                 Time=Time+5;
  174.                                 if(Time>100)
  175.                                 Time=100;
  176.                                 while(K5==0);
  177.                         }
  178.                         motor_fz();                //×′ì¬2£¬·′×a
  179.                 }

  180.         }
  181. }
复制代码







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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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