<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 用光電編碼器實(shí)現單鍵飛梭功能

用光電編碼器實(shí)現單鍵飛梭功能

作者: 時(shí)間:2012-05-24 來(lái)源:網(wǎng)絡(luò ) 收藏

”作為一種用戶(hù)輸入方法,其輸入方式靈活可靠,特別適合應用在嵌入式儀器設備和手持式設備上。本文利用CPLD鑒相控制模擬開(kāi)關(guān),模擬手動(dòng)按鍵得到統一的PS/2碼,從而簡(jiǎn)化軟件設計,提高了用戶(hù)輸入效率。

本文引用地址:http://dyxdggzs.com/article/167973.htm

1Trimknob的工作原理

Trimknob又稱(chēng)為(opticalencoder),其中以Bourns公司和Greyhill公司的產(chǎn)品用得最廣泛。本文就以Bourns公司的ENC產(chǎn)品為例,介紹其工作原理。

如圖1所示,Trimknob有兩個(gè)發(fā)光二極管及兩個(gè)光敏三極管,中間是可自由轉動(dòng)的遮光板。當旋轉Trimknob時(shí),兩個(gè)光敏三極管會(huì )被遮光板有次序地遮擋而產(chǎn)生圖2所示的波形。

如果是順時(shí)針從位置#1旋轉到位置#2,通道A會(huì )比通道B相位超前半個(gè)周期;反之如果是逆時(shí)針從位置#3旋轉到位置#1,通道B會(huì )比通道A相位超前半個(gè)周期。通過(guò)檢測通道A和通道B的相位就能判斷是順時(shí)針還是逆時(shí)針轉動(dòng)。通過(guò)記錄檢測通道A和通道B波形變化的次數就能得到轉動(dòng)位置變化數目。

2HoltekHT82K628A簡(jiǎn)介

HT82K628A是臺灣Holtek公司為IBMPC/AT及兼容機設計生產(chǎn)的專(zhuān)用鍵盤(pán)掃描控制芯片,支持101/102/104/109個(gè)鍵,PS/2接口。引腳定義如圖3所示。行線(xiàn)R0~R15為鍵盤(pán)矩陣的掃描輸出,列線(xiàn)C0~C7為鍵盤(pán)矩陣的掃描輸入。

表1列舉了幾個(gè)行列線(xiàn)對應的鍵值,關(guān)于此芯片的更詳細的應用,請見(jiàn)參考文獻[1]。

3設計原理

通過(guò)一個(gè)鑒相電路,輸入為通道A、B,輸出為CW、CCW。CW、CCW控制模擬開(kāi)關(guān)SW1、SW2。SW1的數據端分別連接在C6和R7上,從表1可以看出C6、R7對應F8鍵。順時(shí)針轉動(dòng)一個(gè)位置,CW輸出一個(gè)脈沖,模擬開(kāi)關(guān)SW1接通。從鍵盤(pán)掃描控制芯片HT82K628A角度看,效果和按下“F8”一樣,如圖4。

4

4。1鑒相器的

由于本系統其它邏輯部分電路用到Xilinx公司的CPLDXCR3032XL,所以我們把鑒相器電路也做在此CPLD中。其中定義CW、CCW為輸出引腳,Ch_A、Ch_B為輸入引腳。狀態(tài)機變化邏輯如下:

State_diagramQstate

StateSt0:CW=0;

CCW=0;

if(!Ch_ACh_B)thenSt1

elseif(Ch_A!Ch_B)thenSt4

elseSt0;

StateSt1:CW=1;

CCW=0;

if(Ch_ACh_B)thenSt2

elseSt1;

StateSt2:CW=1;

CCW=0;

if(Ch_A!Ch_B)thenSt3

elseSt2;

StateSt3:CW=1;

CCW=0;

if(!Ch_A!Ch_B)thenSt0

elseSt3;

StateSt4:CW=0;

CCW=1;

if(Ch_ACh_B)thenSt5

elseSt4;

StateSt5:CW=0;

CCW=1;

if(!Ch_ACh_B)thenSt6

elseSt5;

StateSt6:CW=0;

CCW=1;

if(!Ch_A!Ch_B)thenSt0

elseSt6;

4。2模擬開(kāi)關(guān)的

一般手動(dòng)按下一個(gè)鍵的開(kāi)關(guān)時(shí)間是20ms,所以設計中在CW、CCW輸出端加了一個(gè)單穩電路作為時(shí)延,單穩電路的輸出作為模擬開(kāi)關(guān)MC74HC4066的控制。電路設計如圖5所示。

當鑒相器產(chǎn)生一個(gè)CW脈沖,U1就會(huì )觸發(fā)產(chǎn)生一個(gè)20ms寬的脈沖,將U2的引腳1和2接通。從表1可以查出行列線(xiàn)C6、R7對應著(zhù)鍵F8,于是從HT82K628A的PS/2輸出口可以得到F8的PS/2碼。

5結論

該電路已經(jīng)運用到實(shí)際應用中,收到很好的效果。讀者可以根據這種思路,采用輸入解碼控制模擬開(kāi)關(guān),合并到鍵盤(pán)矩陣掃描,得到統一的PS/2碼,從而簡(jiǎn)化軟件設計,設計出更多更方便的用戶(hù)輸入方法



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>