久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4076|回復: 6
打印 上一主題 下一主題
收起左側

為什么單片機老是死機?旋轉編碼器時轉的慢沒有事

[復制鏈接]
跳轉到指定樓層
樓主
ID:51533 發表于 2018-4-16 18:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
現象是這樣的旋轉編碼器時轉的慢沒有事!轉的快單片機就死機了!大家幫我看看是什么問題!

單片機源程序如下:
  1. #include <STC12C5A60S2.H>
  2. typedef unsigned int uint;
  3. typedef unsigned char uchar;
  4. sbit wela = P1^1;
  5. sbit dula = P1^2;
  6. sbit LED=P1^0;
  7. sbit AA=P3^7; //編碼加
  8. sbit BB=P3^6; //編碼減
  9. uint flage,status,current_bmb,counter = 0,
  10. p,dataa;
  11. float PA;
  12. static uint m,tm;
  13. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  14.                             0x07,0x7f,0x6f};
  15. void delay(unsigned char i)
  16. {
  17. unsigned char j,k;
  18. for(j=i;j>0;j--)
  19.    for(k=110;k>0;k--);
  20. }                                                                                       
  21. void datakae()
  22. {   
  23. status=BB;        //一直賦值!
  24. while(0==AA)//當AA條件允許進入主循環!并且BB上次的值保持為臨近狀態!
  25.   {   
  26.    current_bmb=BB;
  27.    flage=1;
  28.              }
  29. if(1==flage)
  30.   {
  31.         flage=0;
  32. if((0==current_bmb)&&(1==status))   
  33.             {
  34.           tm++;
  35.           if(tm>=1000)
  36.          {
  37.            tm=1000;         
  38.                }
  39.                 }
  40. if((0==status)&&(1==current_bmb))
  41.     {  
  42.          tm--;
  43.          if(tm<=10)
  44.          {
  45.            tm=10;         
  46.                }                           
  47.                     }
  48.              }                                                                                                                                                                                 
  49.                   }
  50. void display()
  51. {
  52.    P0=table[dataa%10];//個
  53.    dula=1;
  54.    dula=0;

  55.    P2=0xfe;
  56.    wela=1;
  57.    wela=0;
  58.    delay(2);

  59.    P0=table[dataa%100/10];        //十      
  60.    dula=1;
  61.    dula=0;

  62.    P2=0xfd;
  63.    wela=1;
  64.    wela=0;
  65.    delay(2);

  66. P0=table[dataa%1000/100];
  67.    dula=1;
  68.    dula=0;

  69.    P2=0xfb;         //        百
  70.    wela=1;
  71.    wela=0;
  72.    delay(2);
  73.                              
  74. P0=table[dataa%10000/1000];
  75.    dula=1;
  76.    dula=0;

  77.    P2=0xf7;//千
  78.    wela=1;
  79.    wela=0;
  80.    delay(2);
  81.                   }
  82. void huansuan()
  83. {
  84. m=10000/tm;
  85. dataa=tm;
  86.             }
  87. //定時器T1初始化
  88. void initial()
  89. {
  90.   LED=0;
  91.   P1M1 = 0x00;
  92.   P1M0 = 0xFF;
  93.   counter=0;
  94.   EA = 1;
  95.   TR0 = 1;
  96.   TMOD = 0x01;
  97.   TH0 = (65535-1000)/256;         //1ms
  98.   TL0 = (65535-1000)%256;
  99.   ET0 = 1;
  100. }                              
  101. //主程序
  102. void main()
  103. {
  104.    tm=250;
  105.   initial();
  106. while(1)
  107. {
  108. huansuan();
  109. datakae();
  110.   display();
  111.   LED=0;
  112.         }
  113.          }
  114. void timer0_int()interrupt 1 using 0
  115. {
  116. TH0 = (65535-1000)/256;//1ms產生一次中斷
  117. TL0 = (65535-1000)%256;
  118. counter++;
  119. if(counter==m)
  120. {
  121.   LED=1;
  122.   for(p=0;p<150;p++);
  123.   counter=0;
  124.           }        else LED=0;
  125.                                                                            
  126.                    }
復制代碼


評分

參與人數 1黑幣 +5 收起 理由
QQwert + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:309495 發表于 2018-4-16 19:13 | 只看該作者
好長。〈a又不能調試,為什么不去玩stm32
回復

使用道具 舉報

板凳
ID:51533 發表于 2018-4-16 19:21 | 只看該作者
說重點!啥問題!我急死了!
回復

使用道具 舉報

地板
ID:309572 發表于 2018-4-16 20:31 | 只看該作者
是不是越界問題
回復

使用道具 舉報

5#
ID:227864 發表于 2018-9-22 15:59 | 只看該作者
這個循環有問題,我也試過這樣的程序,單片機好像反應不過來,
回復

使用道具 舉報

6#
ID:213173 發表于 2018-9-22 17:14 | 只看該作者
速度慢時可以正常工作,速度塊時出錯,這樣看來你的程序有缺陷并且與速度有關。從你的程序看運行效率非常低。主要表現在:1數碼管動態顯示使用了軟件延時,2.中斷函數中竟然也用了軟件延時。這些都會影響CPU及時查詢AA狀態。
回復

使用道具 舉報

7#
ID:222079 發表于 2018-9-25 17:04 | 只看該作者
同意6樓的說法
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产美女一区二区 | 高清成人免费视频 | 欧美淫| 高清久久久 | 亚洲精品一区在线观看 | 国产高清一区二区三区 | 亚洲精品一区二区在线 | 日韩av一区二区在线观看 | 久久精品国产一区二区电影 | www.蜜桃av| 久久国产精品视频 | 天天插天天射天天干 | 精品国产成人 | 亚洲一区视频在线 | 国产成人精品一区二三区在线观看 | 成年人的视频免费观看 | 视频在线一区二区 | 亚洲成人av | 国产精品夜间视频香蕉 | 日一日操一操 | 国产9 9在线 | 中文 | 日本亚洲欧美 | 狠狠久 | 久久久国产一区二区三区四区小说 | 国产96色在线 | 欧美日韩一区二区三区四区五区 | 国产成人精品亚洲日本在线观看 | 青青草亚洲 | 免费观看国产视频在线 | 日韩第一夜 | 精品久久亚洲 | 精品国产欧美一区二区 | 91在线一区二区三区 | 九九在线视频 | 日韩精品无码一区二区三区 | 亚州成人 | 免费观看黄色片视频 | 成人在线精品视频 | 偷拍亚洲色图 | 免费视频99| 最新国产精品 |