找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1021|回復(fù): 1
收起左側(cè)

51單片機(jī)的車庫入口升降桿系統(tǒng)程序沒有按預(yù)期效果運行

[復(fù)制鏈接]
ID:517142 發(fā)表于 2019-5-15 18:49 | 顯示全部樓層 |閱讀模式
第一次編了這么一段關(guān)于51單片機(jī)控制直流電機(jī)正反轉(zhuǎn)并對進(jìn)出車輛進(jìn)行計數(shù)的程序,從剛開始寫到現(xiàn)在已經(jīng)改了好多次但是這回問題是實物現(xiàn)在對電機(jī)控制基本沒問題,但計數(shù)部分?jǐn)?shù)碼管沒辦法按預(yù)期效果正常示數(shù),甚至除了一開始的00以外都不會顯示正常的數(shù)字,想請教一下該怎么去修改。
具體單片機(jī)程序如下
  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. }

復(fù)制代碼
回復(fù)

使用道具 舉報

ID:517142 發(fā)表于 2019-5-15 18:51 | 顯示全部樓層
X Y 和 xingcheng1 xingcheng2實物中現(xiàn)在用紅外避障模塊代替,數(shù)碼管數(shù)字0-9也是自己按照焊接的引腳進(jìn)行編碼的!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表