找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机的车库入口升降杆系统程序没有按预期效果运行

[复制链接]
跳转到指定楼层
楼主
ID:517142 发表于 2019-5-15 18:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一次编了这么一段关于51单片机控制直流电机正反转并对进出车辆进行计数的程序,从刚开始写到现在已经改了好多次但是这回问题是实物现在对电机控制基本没问题,但计数部分数码管没办法按预期效果正常示数,甚至除了一开始的00以外都不会显示正常的数字,想请教一下该怎么去修改。
具体单片机程序如下
  1. typedef unsigned int u16;
  2. sbit X=P1^0;
  3. sbit Y=P1^1;
  4. sbit in3=P1^2;
  5. sbit in4=P1^3;
  6. sbit xingcheng1=P1^4;
  7. sbit xingcheng2=P1^5;
  8. sbit led=P1^6;
  9. sbit gs=P0^0;
  10. sbit gg=P0^1;
  11. u8 i;
  12. u8 k;
  13. u16 sum;
  14. u8 code smgduan[]={0xde,0x88,0x5d,0x9d,0x8b,0x97,0xd7,0x8c,
  15.      0xdf,0x9f};
  16. unsigned int g,s;
  17. void delay(u16 z)
  18. {
  19. while(z--);
  20. }
  21. void main()
  22. {
  23. i=2;
  24. k=1;
  25. sum=0;
  26. while(1)
  27. {
  28.   s=sum/10;
  29.   g=sum%10;
  30.   P2=smgduan[g];
  31.   gg=0;
  32.   gs=1;
  33.   delay(77);
  34.   P2=smgduan[s];
  35.   gs=0;
  36.   gg=1;
  37.   delay(77);
  38.   if((X==0||Y==0)&&X!=Y)
  39.   {
  40.    in3=1;in4=0;
  41.    k++;
  42.    
  43.     if(xingcheng1==0&&k==2)
  44.     {
  45.      in3=0;in4=0;
  46.      k=1;
  47.     }
  48.       if(X==0&&Y==1)
  49.       {
  50.        i--;
  51.       }
  52.       if(X==1&&Y==0)
  53.       {
  54.        i++;
  55.       }
  56.    
  57.     if(X!=Y)
  58.     {
  59.      switch(i)
  60.      {
  61.       case(1):
  62.       {
  63.        if(X==1&&Y==0)
  64.        {
  65.         sum++;break;
  66.        }
  67.       }
  68.       case(3):
  69.       {
  70.        if(X==0&&Y==1)
  71.        {
  72.         sum--;break;
  73.        }
  74.       }
  75.      }
  76.     }
  77.   if(X==1&&Y==1)
  78.   {
  79.    in3=0;in4=1;
  80.    k--;
  81.    
  82.     if(xingcheng2==0&&k==0)
  83.     {
  84.      in3=0;in4=0;
  85.      k=1;
  86.     }
  87.   }
  88.   if(sum<=20)
  89.   led=0;
  90.   if(sum>=20)
  91.   led=1;
  92.   }
  93.   i=2;
  94. }
  95. }

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

使用道具 举报

沙发
ID:517142 发表于 2019-5-15 18:51 | 只看该作者
X Y 和 xingcheng1 xingcheng2实物中现在用红外避障模块代替,数码管数字0-9也是自己按照焊接的引脚进行编码的!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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