亚洲欧美成人一区二区_91成人免费在线视频_亚洲s码欧洲m码国产AV_国产精品福利视频萌白酱_91激情视频在线_狠狠操影视

加入收藏 | 發(fā)展歷程 | 在線留言 | 在線招聘     您好,歡迎來到廣東升威電子制品有限公司官網(wǎng)!
中文 英文
全國咨詢熱線:182-1927-6011

34年模組、傳感器、編碼器、電位器、開關(guān)定制廠家

電位器國家標(biāo)準(zhǔn)制定單位 | 編碼器行業(yè)標(biāo)準(zhǔn)制定單位
升威動態(tài)

Granville dynamic

廣東升威電子制品有限公司

電 話:0769-38833333
傳 真:0769-87930111
    0769-87930222
E-mail:sw@soundwell-cn.com
地 址:廣東省東莞市塘廈鎮(zhèn)鳳凰崗升威工業(yè)園

推薦產(chǎn)品

旋轉(zhuǎn)編碼開關(guān)的應(yīng)用原理

文章出處:www.hdjd188.cn  編輯:升威電子  發(fā)表時間:2016-10-18

       旋轉(zhuǎn)編碼開關(guān)的應(yīng)用非常廣泛,今天給大家介紹下如下這款3腳和5腳的EC11旋轉(zhuǎn)編碼開關(guān)。

5腳的旋轉(zhuǎn)編碼開關(guān),如下圖

EC11旋轉(zhuǎn)編碼開關(guān)

具有左轉(zhuǎn),右轉(zhuǎn),按下三個功能。4、5腳是中間按下去的開關(guān)接線   1 2 3腳 一般是中間2腳接地,1、3腳上拉電阻后,當(dāng)左轉(zhuǎn)、右轉(zhuǎn)旋紐時,在1、3腳就有脈沖信號輸出了。

推薦型號:EC11旋轉(zhuǎn)編碼開關(guān)

 

EC11旋轉(zhuǎn)編碼開關(guān)


      在單片機編程時,左轉(zhuǎn)和右轉(zhuǎn)的判別是難點,用示波器觀察這種開關(guān)左轉(zhuǎn)和右轉(zhuǎn)時兩個輸出腳的信號有個相位差,見下圖:

 

EC11旋轉(zhuǎn)編碼開關(guān)信號


       由此可見,如果輸出1為高電平時,輸出2出現(xiàn)一個高電平,這時開關(guān)就是向順時針旋轉(zhuǎn); 當(dāng)輸出1 為高電平,輸出2出現(xiàn)一個低電平,這時就一定是逆時針方向旋轉(zhuǎn).

 

       所以,在單片機編程時只需要判斷當(dāng)輸出1為高電平時,輸出2當(dāng)時的狀態(tài)就可以判斷出是左旋轉(zhuǎn)或是右旋轉(zhuǎn)了。


#include "reg51.h"
#define uint unsigned int

sbit CodingsWitch_A=P1_1;
sbit CodingsWitch_B=P1_2;

uint CodingsWitchPolling()//
{
   static Uchar Aold,Bold;   //定義了兩個變量用來儲蓄上一次調(diào)用此方法是編碼開關(guān)兩引腳的電平
   static Uchar st;         //定義了一個變量用來儲蓄以前是否出現(xiàn)了兩個引腳都為高電平的狀態(tài)
   uint tmp = 0;
   if(CodingsWitch_A&&CodingsWitch_B)
   st = 1;      //
   if(st)               //如果st為1執(zhí)行下面的步驟
   {
      if(CodingsWitch_A==0&&CodingsWitch_B==0)      //如果當(dāng)前編碼開關(guān)的兩個引腳都為底電平執(zhí)行下面的步驟
      {
         if(Bold)      //為高說明編碼開關(guān)在向加大的方向轉(zhuǎn)
         {
            st = 0;      
            tmp++;      //
         }
         if(Aold)      //為高說明編碼開關(guān)在向減小的方向轉(zhuǎn)
         {
            st = 0;
            tmp--;      //設(shè)返回值
         }
      }
   }
   Aold = CodingsWitch_A;            //
   Bold = CodingsWitch_B;            //儲
   return tmp;            //
}

 

//編碼器計數(shù)程序
void encoder_cnt(void)
{
        uchar temp;
        temp = PIND; //取端口D管腳信號
        couch_clr = (temp & 0x08); //取編碼器清零信號
        if(couch_clr != false) //有編碼器清零信號
        {
                couch_num = 0; //水平床碼清零
        }
        else
        {
                if(encoder_cnt_en == false) //編碼器計數(shù)模塊沒有啟動
                {
                        pr_couch_ba = temp & 0x03; //取編碼器A、B相電平信號
                }
                else
                {
                        couch_ba = temp & 0x03; //取編碼器A、B相電平信號
                        if(pr_couch_ba == 0x00)
                        {
                                if(couch_ba == 0x01)
                                {
                                        couch_num++; //水平床碼加1
                                }
                                else if(couch_ba == 0x10)
                                {
                                        couch_num--; //水平床碼減1
                                }
                        }
                        else if(pr_couch_ba == 0x01)
                        {
                                if(couch_ba == 0x11)
                                {
                                        couch_num++; //水平床碼加1
                                }
                                else if(couch_ba == 0x00)
                                {
                                        couch_num--; //水平床碼減1
                                }
                        }
                        else if(pr_couch_ba == 0x10)
                        {
                                if(couch_ba == 0x00)
                                {
                                        couch_num++; //水平床碼加1
                                }
                                else if(couch_ba == 0x11)
                                {
                                        couch_num--; //水平床碼減1
                                }
                        }
                        else if(pr_couch_ba == 0x11)
                        {
                                if(couch_ba == 0x10)
                                {
                                        couch_num++; //水平床碼加1
                                }
                                else if(couch_ba == 0x01)
                                {
                                        couch_num--; //水平床碼減1
                                }
                        }
                }
                pr_couch_ba = couch_ba;
        }
}


編碼器及其計數(shù)模塊原理
該文件只允許會員下載! 登錄 | 注冊

飄揚的旋轉(zhuǎn)編碼器的檢測程序(MCS51)
//旋轉(zhuǎn)編碼器檢測程序,A/B信號分別接在了INT0和INT1上
//程序作者:BG4UVR
//2005年1月15用KEIL編譯、硬件測試通過

//注意:編碼器的信號,程序未做消抖處理。測試中,A/B信號上各
//接了一只104的瓷片電容,工作很正常。如果不接電容,請自行編
//寫信號消抖程序。

#include <at89x51.h>

sbit led="0xB1";//有一只LED接在了RXD引腳上,用來指示正反轉(zhuǎn);

main()
{
EA=1; //總中斷允許
EX0=1; //外部中斷0允許
IT0=1; //外部中斷0為邊沿觸發(fā)方式
while(1);;
}


/*********************
編碼器中斷函數(shù)
入口:無
出口:無
*********************/
void encoder(void) interrupt 0 { //外部中斷0
if (INT1){
led=1;
}else{
led=0;
}
}


whimsy 的AVR程序

//外部中斷0,用于編碼開關(guān)解碼,解碼圖:   A接中斷腳(AVR的PD2),以此為基準(zhǔn),B用來判斷方向(連到AVR的PA1), C接地
//A -|
//   |   -----|__________|----------|____________
//C -|
//
//B -|
//   |   ----------|__________|----------|____________
//C -| 
//             CW  ===>>> ROTATION
//外部中斷設(shè)置(ISC01=0,ISC00=1): INT0 引腳上任意的邏輯電平變化都將引發(fā)中斷
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
//external interupt on INT0
    GICR=0;    //禁止外部中斷
    if ((PIND & 0x04)==0)           //先判斷是高電平產(chǎn)生的中斷還是低點平的中斷
                if ((PINA & 0x02)==0)         //再判斷B線上的電平
                    {
                    keycounter--;      
                     keydirection="0";
                    } 
                else
                    {
                     keycounter++;
                     keydirection="1";
                    }         
                
        else
             if ((PINA & 0x02)==0)
            {
             keycounter++; 
             keydirection="1";
            } 
          else
           {
            keycounter--;
            keydirection=0;
           }
        GICR=0x40;
}

 

升威電子風(fēng)采相冊

  • 升威團隊風(fēng)采
 

升威員工心聲:

在別人看來,升威是一個企業(yè),在我們看來,升威是一個家,升威電子的每個員工都有一份積極向上的心,對生活和工作充滿著激情,感謝升威給自己這個發(fā)展平臺,未來希望大家同心協(xié)力,共同進步。 >>點此進入相冊

升威自動化事業(yè)部
升威自動化事業(yè)部
作為業(yè)界的專業(yè)企業(yè),廣東升威電子制品有限公司于2006年花巨資成立自動化事業(yè)部,開始為母公司提供全自動精密部件組裝設(shè)備、測試設(shè)備... [查看詳情]
  • 返回頂部
  • 0769-38833333-881
  • 18219276011
  • 李小姐
  • sw@soundwell-cn.com
  • 微信二維碼
升威首頁 | 電位器 | 編碼器 | 旋轉(zhuǎn)開關(guān) | 升威產(chǎn)品 | 走進升威 | 榮譽資質(zhì) | 實地參觀 | 標(biāo)準(zhǔn)制定 | 聯(lián)系升威 |
鄭重聲明:未經(jīng)授權(quán)禁止轉(zhuǎn)載、摘編,如有違反,追究法律責(zé)任 
主站蜘蛛池模板: 免费无码高潮流白浆视频 | 特黄把女人弄爽a片 | 日本99精品 | 青青热久免费精品视频在线播放 | 国产精品视频二区三区 | 一级av黄色毛片 | 日韩一区二区免费在线观看 | 色综合.com | 无码毛片一区二区本码视频 | 国产在线无码视频一区二区三区 | 国产成人精品久久亚洲高清不卡p | 重生男人| 国产精品毛片av一区 | 中文字幕免费在线看线人动作大片 | 小伙强行挺进护士体内 | 欧美喷潮久久久XXXXX | 色欲欲WWW成人网站 好男人社区WWW在线观看 | 蜜桃成人在线 | 亚洲五月综合缴情在线观看 | 久久国产在线视频 | 麻豆.com| 亚洲欧洲国产一区二区三区 | 欧美日韩人妻精品一区二区在线 | 麻豆精品久久久久久中文字幕无码 | 久久99精品国产自在现线小黄鸭 | www.999热| 天下免费大全正版资料 | 无码人妻aⅴ一区二区三区鲁大师 | av免费在线不卡 | 成人av激情 | 国语自产拍在线观看对白 | 丰满岳乱妇在线观看中字无码 | 久久久久亚洲波多野结衣 | 成人国产免费 | 免费毛片免费看 | 亚洲国产精品原创巨作AV | 超鹏97国语 | 久久天堂综合亚洲伊人hd妓女 | gay取精潮喷10次 | www成人精品 | 国产亚洲精品aaaa片在线 |