国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>旋轉(zhuǎn)編碼器程序簡介

      直播推薦

      更多>

      企業(yè)動態(tài)

      更多>

      推薦展會

      更多>

      旋轉(zhuǎn)編碼器程序簡介

      2013年05月08日 11:08:50人氣:4332來源:上海德晶光電科技有限公司DECHING

      zui近用到旋轉(zhuǎn)編碼器,在網(wǎng)上找了一大堆資料,發(fā)現(xiàn)這篇好文章。供大家參考!
      [ME850擴(kuò)展應(yīng)用]旋轉(zhuǎn)編碼器計數(shù)程序(飛梭旋鈕功能)-數(shù)碼管顯示
      /*******************************************************************
      * *
      * ME850單片機(jī)開發(fā)實(shí)驗儀演示程序 - 旋轉(zhuǎn)編碼器計數(shù)程序 *
      * *
      * 3位數(shù)碼管顯示 *
      * *
      * MCU: AT89S52 晶振:11.0592MHz *
      * *
      * 版本:V1.1 (2009/04/29) *
      * 作者:gguoqing (: gguoqing@) *
      * : (碩飛科技) *
      * (偉納單片機(jī)世界) *
      * :sofitech@ *
      * *
      *【版權(quán)】Copyright(C) 深圳碩飛科技有限公司 All Rights Reserved *
      *【聲明】此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息! *
      * *
      ********************************************************************
      * *
      * 功能簡述: (飛梭旋鈕功能) *
      * 當(dāng)旋鈕順時針旋轉(zhuǎn)時,計數(shù)值增加。達(dá)到zui大值255后,不再響應(yīng)。 *
      * 當(dāng)逆鈕順時針旋轉(zhuǎn)時,計數(shù)值減小。達(dá)到zui小值0后,不再響應(yīng)。 *
      * 當(dāng)按下旋鈕時,將計數(shù)值清零(歸位)。 *
      * *
      *******************************************************************/
      #Include <reg52.h>
      sbit PINA = P1^0;
      sbit PINB = P1^1;
      sbit PIND = P1^2;
      unsigned char display[3];
      unsigned char code LEDData[ ] =
      {
      0xC0,0xF9,0xA4,0xB0,0x99,0x92,
      0x82,0xF8,0x80,0x90,0xff
      };
      char code reserve[3]_at_ 0x3b; //保留0x3b開始的3個字節(jié)
      unsigned char counter = 0; //編碼器脈沖計數(shù)
      unsigned char n,shift;
      /**********************************************************
      ms延時子函數(shù)
      **********************************************************/
      void delayms(unsigned int ms)
      {
      unsigned char k;
      while (ms--)
      {
      for (k = 0; k < 114; k++)
      ;
      }
      }
      /**********************************************************
      掃描編碼器子函數(shù)
      在編碼器引腳A為低電平期間:
      編碼器引腳B從0到1為正轉(zhuǎn),編碼器引腳B從1到0為反轉(zhuǎn)。
      **********************************************************/
      void scan_encoder(void)
      {
      static bit Curr_encoder_b; //定義一個變量來儲存當(dāng)前B信號
      static bit Last_encoder_b; //定義一個變量來儲存上次B腳信號
      static bit updata= 0;
      if( PINA && PINB) //編碼器無轉(zhuǎn)動退出
      {
      updata = 0;
      return;
      }
      Last_encoder_b = PINB; //記錄B信號
      while(!PINA) //等待A由低變高
      {
      Curr_encoder_b = PINB; //記錄等待期間的B信號(指當(dāng)前B信號)
      updata = 1;
      }
      if(updata)
      {
      updata = 0 ;
      if( (Last_encoder_b == 0)&&(Curr_encoder_b== 1) ) //B從0到1為正轉(zhuǎn)
      {
      if(counter == 255)
      return;
      counter++; //正轉(zhuǎn)計數(shù)加
      }
      else if( (Last_encoder_b == 1)&&(Curr_encoder_b == 0) ) //B從1到0為反轉(zhuǎn)
      {
      if(counter == 0)
      return;
      counter--; //反轉(zhuǎn)計數(shù)減
      }
      }
      }
      /**********************************************************
      主函數(shù)
      **********************************************************/
      void main(void)
      {
      P0 = 0xff;
      P1 = 0xff;
      P2 = 0xff;
      T2CON = 0x00; //設(shè)置T2CON寄存器
      TH2 = 0xfc; //1ms定時
      TL2 = 0x66;
      ET2 = 1; //啟用Timer2中斷
      EA = 1; //總中斷允許
      TR2 = 1; //啟動定時器2
      counter = 0; //計數(shù)單元清零
      while(1)
      {
      scan_encoder();
      if(! PIND) //當(dāng)按下旋鈕時
      {
      counter = 0; //計數(shù)單元清零(歸位)
      delayms(10);
      }
      }
      }
      /*********************************************************
      Timer2中斷函數(shù)
      **********************************************************/
      void timer2() interrupt 5
      {
      TR2 = 0;
      TF2 = 0; //手工清中斷標(biāo)志
      TH2 = 0xfc; //1ms定時常數(shù)
      TL2 = 0x66;
      if(n >= 3) //3位數(shù)碼管顯示
      {
      n = 0;
      shift = 0xfe; //送位碼初值
      P2 = 0xff; //關(guān)閉顯示
      }
      else
      {
      display[0] = counter%10; //個位數(shù)據(jù)
      display[1] = (counter%100)/10; //十位數(shù)據(jù)
      display[2] = counter/100; //百位數(shù)據(jù)

      if(display[2] == 0)
      {
      display[2] = 0x0a; //百位為0,不顯示
      if(display[1] == 0)
      display[1] =0x0a; //十位為0,不顯示
      }
      P0 = LEDData[display[n++]]; //送段碼
      P2 = shift; //送位碼
      shift = (shift<<1)|0x01; //調(diào)整位碼
      }
      TR2 = 1;
      }
      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責(zé)聲明

      • 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
      • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
      • 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
      • 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

      <
      更多 >

      工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉儲物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請發(fā)送郵件至:(郵件標(biāo)題請備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺
      智能制造網(wǎng)APP

      功能豐富 實(shí)時交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號:gkzhan

      打開抖音 搜索頁掃一掃

      視頻號

      智能制造網(wǎng)

      公眾號:智能制造網(wǎng)

      打開微信掃碼關(guān)注視頻號

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開快手 掃一掃關(guān)注
      意見反饋
      關(guān)閉
      企業(yè)未開通此功能
      詳詢客服 : 0571-87858618