欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機旋轉編碼器程序 [打印本頁]

作者: 3280430380    時間: 2019-9-20 13:52
標題: 單片機旋轉編碼器程序
  1. #include <reg52.h>  
  2. sbit     bA_Key01_IoStatus    = P1^0;
  3. sbit     bB_Key02_IoStatus    = P1^1;



  4. /*************************************************************
  5. 1us延時子函數

  6. **************************************************************/
  7. void Delay1us(uint32 dly)
  8. {
  9.         uint32 i;

  10.         for(; dly>0; dly--)
  11.                 for(i=20; --i;)        ;
  12. }
  13. /*
  14. 掃描編碼器子函數  
  15. 在編碼器引腳A為低電平期間:  
  16. 編碼器引腳B從0到1為正轉,編碼器引腳B從1到0為反轉。
  17. */
  18. void PWM_key(void)
  19. {
  20.         uint8    Curr_encoder_b;  //定義一個變量來儲存當前B信號     
  21.     uint8    Last_encoder_b;  //定義一個變量來儲存上次B腳信號  
  22.    
  23.      if( bA_Key01_IoStatus && bB_Key02_IoStatus)           //編碼器無轉動退出   
  24.      {           
  25.         return;   
  26.      }  
  27.         //-----------------------------------
  28.          if(!bB_Key02_IoStatus)
  29.      {
  30.         Last_encoder_b = bA_Key01_IoStatus;       //記錄B信號  
  31.         Delay1us(1000);                                                  //延時約 1ms     
  32.         Curr_encoder_b = bA_Key01_IoStatus;     //記錄等待期間的B信號(指當前B信號)
  33.         
  34.         if( (Last_encoder_b == 0)&&(Curr_encoder_b== 1) ) //B從0到1為正轉      
  35.         {                 
  36.             
  37.         }      
  38.         else if( (Last_encoder_b == 1)&&(Curr_encoder_b == 0) ) //B從1到0為反轉      
  39.         {                                
  40.             
  41.         }                                 
  42.      }        
  43. }

復制代碼







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1