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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4004|回復: 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 | 只看該作者
好長啊!代碼又不能調試,為什么不去玩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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线不卡视频 | 国产在线a | 国产精品久久久久婷婷二区次 | 精品国产一区二区在线 | 日韩欧美中文在线 | 精品国产乱码久久久久久丨区2区 | 一区二区三区四区在线视频 | 色视频欧美 | 少妇淫片aaaaa毛片叫床爽 | 日本午夜在线视频 | 日韩三级| 久久99国产精一区二区三区 | 一级毛片免费看 | 国产乱码精品一区二区三区五月婷 | 欧美男男videos | av网站免费在线观看 | 国产激情免费视频 | 欧美久久免费观看 | 亚洲精品久久久久久久久久久久久 | 亚洲精品久久久久久久久久吃药 | 亚洲视频网 | 成人免费在线观看视频 | 久久天堂| 99久久久无码国产精品 | 久久精品国产亚洲夜色av网站 | 成人在线视频网站 | 中文字幕亚洲区一区二 | 欧美一区二区三区在线播放 | 日韩91| 欧美日韩免费一区二区三区 | 久草在线影 | 欧美一区二区三区视频在线播放 | 亚洲视频 欧美视频 | 精品国产18久久久久久二百 | 一区中文字幕 | 日韩精品 电影一区 亚洲 | 日韩成人在线视频 | 成人在线不卡 | 成人亚洲精品久久久久软件 | 久草日韩 | 日日噜噜噜夜夜爽爽狠狠视频, |