久久综合影院,超碰在线一区,肉大捧一进一出免费视频1,国产69精品久久久久久人妻漫画

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

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

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

    Granville dynamic

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

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

    推薦產(chǎn)品

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

    文章出處:www.jingli-cw.com  編輯:升威電子  發(fā)表時(shí)間:2016-10-18

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

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

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

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

    推薦型號(hào):EC11旋轉(zhuǎn)編碼開(kāi)關(guān)

     

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


          在單片機(jī)編程時(shí),左轉(zhuǎn)和右轉(zhuǎn)的判別是難點(diǎn),用示波器觀察這種開(kāi)關(guān)左轉(zhuǎn)和右轉(zhuǎn)時(shí)兩個(gè)輸出腳的信號(hào)有個(gè)相位差,見(jiàn)下圖:

     

    EC11旋轉(zhuǎn)編碼開(kāi)關(guān)信號(hào)


           由此可見(jiàn),如果輸出1為高電平時(shí),輸出2出現(xiàn)一個(gè)高電平,這時(shí)開(kāi)關(guān)就是向順時(shí)針旋轉(zhuǎn); 當(dāng)輸出1 為高電平,輸出2出現(xiàn)一個(gè)低電平,這時(shí)就一定是逆時(shí)針?lè)较蛐D(zhuǎn).

     

           所以,在單片機(jī)編程時(shí)只需要判斷當(dāng)輸出1為高電平時(shí),輸出2當(dāng)時(shí)的狀態(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;   //定義了兩個(gè)變量用來(lái)儲(chǔ)蓄上一次調(diào)用此方法是編碼開(kāi)關(guān)兩引腳的電平
       static Uchar st;         //定義了一個(gè)變量用來(lái)儲(chǔ)蓄以前是否出現(xiàn)了兩個(gè)引腳都為高電平的狀態(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)前編碼開(kāi)關(guān)的兩個(gè)引腳都為底電平執(zhí)行下面的步驟
          {
             if(Bold)      //為高說(shuō)明編碼開(kāi)關(guān)在向加大的方向轉(zhuǎn)
             {
                st = 0;      
                tmp++;      //
             }
             if(Aold)      //為高說(shuō)明編碼開(kāi)關(guān)在向減小的方向轉(zhuǎn)
             {
                st = 0;
                tmp--;      //設(shè)返回值
             }
          }
       }
       Aold = CodingsWitch_A;            //
       Bold = CodingsWitch_B;            //儲(chǔ)
       return tmp;            //
    }

     

    //編碼器計(jì)數(shù)程序
    void encoder_cnt(void)
    {
            uchar temp;
            temp = PIND; //取端口D管腳信號(hào)
            couch_clr = (temp & 0x08); //取編碼器清零信號(hào)
            if(couch_clr != false) //有編碼器清零信號(hào)
            {
                    couch_num = 0; //水平床碼清零
            }
            else
            {
                    if(encoder_cnt_en == false) //編碼器計(jì)數(shù)模塊沒(méi)有啟動(dòng)
                    {
                            pr_couch_ba = temp & 0x03; //取編碼器A、B相電平信號(hào)
                    }
                    else
                    {
                            couch_ba = temp & 0x03; //取編碼器A、B相電平信號(hào)
                            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;
            }
    }


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

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

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

    #include <at89x51.h>

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

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


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


    whimsy 的AVR程序

    //外部中斷0,用于編碼開(kāi)關(guān)解碼,解碼圖:   A接中斷腳(AVR的PD2),以此為基準(zhǔn),B用來(lái)判斷方向(連到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)生的中斷還是低點(diǎ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)采相冊(cè)

    • 升威團(tuán)隊(duì)風(fēng)采
     

    升威員工心聲:

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

    升威自動(dòng)化事業(yè)部
    升威自動(dòng)化事業(yè)部
    作為業(yè)界的專業(yè)企業(yè),廣東升威電子制品有限公司于2006年花巨資成立自動(dòng)化事業(yè)部,開(kāi)始為母公司提供全自動(dòng)精密部件組裝設(shè)備、測(cè)試設(shè)備... [查看詳情]
    • 返回頂部
    • 0769-38833333-881
    • 18219276011
    • 李小姐
    • sw@soundwell-cn.com
    • 微信二維碼
    升威首頁(yè) | 電位器 | 編碼器 | 旋轉(zhuǎn)開(kāi)關(guān) | 升威產(chǎn)品 | 走進(jìn)升威 | 榮譽(yù)資質(zhì) | 實(shí)地參觀 | 標(biāo)準(zhǔn)制定 | 聯(lián)系升威 |
    鄭重聲明:未經(jīng)授權(quán)禁止轉(zhuǎn)載、摘編,如有違反,追究法律責(zé)任