版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、旋轉(zhuǎn)編石§開關(guān)(RotaryEncoderswitch)-使用說明及程序具有左轉(zhuǎn),右轉(zhuǎn),按下三個功能。4、5腳是中間按下去的開關(guān)接線123腳一般是中間2腳接地,1、3腳上拉電阻后,當(dāng)左轉(zhuǎn)、右轉(zhuǎn)旋紐時,在1、3腳就有脈沖信號輸出了。著這是標準資料:SwitchtravelReflowapplicablepartswithpush-onswitch(travel0.5mm)在單片機編程時,左轉(zhuǎn)和右轉(zhuǎn)的判別是難點,用示波器觀察這種開關(guān)左轉(zhuǎn)和右轉(zhuǎn)時兩個輸出腳的信號有個相位差,見下圖:轉(zhuǎn)30下.產(chǎn)生15脈沖AsignalOFFONii11BsignalOFFONflItt定位穩(wěn)定點CWdire
2、ctionA由此可見,如果輸出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)了。還有另外一種3腳的,除了不帶按鈕開關(guān)外,和上面是一樣的使用#include"reg51.h"#defineuintunsignedintsbitCodingsWitch_A=P1_1;sbitCodingsWitch_B=P1_2;uintCodingsWitchPolling()/staticUcharAold,Bo
3、ld;/定義了兩個變量用來儲蓄上一次調(diào)用此方法是編碼開關(guān)兩引腳的電平staticUcharst;/定義了一個變量用來儲蓄以前是否出現(xiàn)了兩個引腳都為高電平的狀態(tài)uinttmp=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-;/
4、設(shè)返回值)Aold=CodingsWitch_A;/Bold=CodingsWitch_B;/儲returntmp;/)編碼器計數(shù)程序voidencoder_cnt(void)(uchartemp;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=t
5、emp&0x03;/取編碼器A、B相電平信號if(pr_couch_ba=0x00)(if(couch_ba=0x01)(couch_num+;/水平床碼加1)elseif(couch_ba=0x10)(couch_num-;水平床碼減1)elseif(pr_couch_ba=0x01)(if(couch_ba=0x11)(couch_num+;/水平床碼加1)elseif(couch_ba=0x00)(couch_num-;/水平床碼減1)elseif(pr_couch_ba=0x10)(if(couch_ba=0x00)(couch_num+;/水平床碼加1)elseif(couc
6、h_ba=0x11)(couch_num-;/水平床碼減1)elseif(pr_couch_ba=0x11)(if(couch_ba=0x10)(couch_num+;/水平床碼加1)elseif(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的瓷片電容,工作很正常。如
7、果不接電容,請自行編寫信號消抖程序。#include<at89x51.h>sbitled="0xB1"/有一只LED接在了RXD引腳上,用來指示正反轉(zhuǎn)main()(EA=1;/總中斷允許EX0=1;/外部中斷0允許IT0=1;/外部中斷0為邊沿觸發(fā)方式while(1);)/*編碼器中斷函數(shù)入口:無出口:無*/voidencoder(void)interrupt0/外部中斷0if(INT1)led=1;elseled=0;whimsy的AVR程序外部中斷0,用于編碼開關(guān)解碼,解碼圖:A接中斷腳(AVR的PD2),以此為基準,B用來判斷方向(連到AVR的PA1),C
8、接地/A-|/|1/C-|/B-|/|1|1/C-|/CW=>>>ROTATION外部中斷設(shè)置(ISC01=0,ISC00=1):INT0引腳上任意的邏輯電平變化都將引發(fā)中斷#pragmainterrupt_handlerint0_isr:2voidint0_isr(void)/externalinteruptonINT0GICR=0;/禁止外部中斷if(PIND&0x04)=0)/先判斷是高電平產(chǎn)生的中斷還是低點平的中斷if(PINA&0x02)=0)/再判斷B線上的電平keycounter-;keydirection="0"elsekeycounter+;keydirectio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 十六橋課件教學(xué)課件
- 04品牌授權(quán)塔吊品牌授權(quán)使用合同
- 2024年度汽車租賃與售后服務(wù)合同
- 2024年度道路照明工程燈具維修勞務(wù)分包合同
- 2024年屋面瓦鋪設(shè)工程項目合同
- 2024家庭裝飾裝修的合同模板
- 2024年度衛(wèi)星導(dǎo)航系統(tǒng)應(yīng)用合作協(xié)議
- 2024年度軟件開發(fā)與測試合同
- 2024年度知識產(chǎn)權(quán)許可合同.do
- 2024年度物流配送服務(wù)承包商的選取協(xié)議
- DLT 5285-2018 輸變電工程架空導(dǎo)線(800mm以下)及地線液壓壓接工藝規(guī)程
- JT-T-776.4-2010公路工程玄武巖纖維及其制品第4部分:玄武巖纖維復(fù)合筋
- 政策工具視角下中小學(xué)思政課教師政策文本分析
- 《西游記》完整版本
- 診所消防應(yīng)急專項預(yù)案
- 公需課答案-法治建設(shè)與國家治理現(xiàn)代化
- 施工升降機安裝拆除安全交底 LJA-C4-1-1
- 小學(xué)語文 四年級上冊 《第二單元》作業(yè)設(shè)計
- 中考語文高效復(fù)習(xí)知識講座
- 美容市場策劃方案
- 研發(fā)部年度工作計劃
評論
0/150
提交評論