91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 單 片 機

用光電編碼器實現單鍵飛梭功能

發布時間:2008/5/27 0:00:00 訪問次數:1192

        

    

    

    “單鍵飛梭”作為一種用戶輸入方法,其輸入方式靈活可靠,特別適合應用在嵌入式儀器設備和手持式設備上。本文利用cpld鑒相控制模擬開關, 模擬手動按鍵得到統一的ps/2碼,從而簡化軟件設計,提高了用戶輸入效率。

    1 光電trim knob的工作原理

    光電trim knob又稱為光電編碼器(optical encoder),其中以bourns公司和greyhill公司的產品用得最廣泛。本文就以bourns公司的enc產品為例,介紹其工作原理。

    如圖1所示,trimknob有兩個發光二極管及兩個光敏三極管,中間是可自由轉動的遮光板。當旋轉trimknob時,兩個光敏三極管會被遮光板有次序地遮擋而產生圖2所示的波形。

    

    

    

    如果是順時針從位置#1旋轉到位置#2,通道a會比通道b相位超前半個周期;反之如果是逆時針從位置#3旋轉到位置#1, 通道b會比通道a相位超前半個周期。通過檢測通道a和通道b的相位就能判斷是順時針還是逆時針轉動。通過記錄檢測通道a和通道b波形變化的次數就能得到轉動位置變化數目。

    2 holtek ht82k628a簡介

    ht82k628a是臺灣holtek公司為ibm pc/at及兼容機設計生產的專用鍵盤掃描控制芯片,支持101/102/104/109個鍵, ps/2接口。引腳定義如圖3所示。行線r0~r15為鍵盤矩陣的掃描輸出,列線c0~c7為鍵盤矩陣的掃描輸入。

    

    

    

    表1列舉了幾個行列線對應的鍵值,關于此芯片的更詳細的應用,請見參考文獻[1]。

    3 設計原理

    通過一個鑒相電路,輸入為通道a、b,輸出為cw、 ccw。cw、ccw控制模擬開關sw1、sw2。sw1的數據端分別連接在c6和r7上,從表1可以看出c6、r7對應f8鍵。順時針轉動一個位置,cw 輸出一個脈沖,模擬開關sw1接通。從鍵盤掃描控制芯片ht82k628a角度看,效果和按下“f8”一樣,如圖4。

    4 實 現

    4.1 鑒相器的實現

    由于本系統其它邏輯部分電路用到xilinx公司的cpld xcr3032xl,所以我們把鑒相器電路也做在此cpld中。其中定義cw、ccw為輸出引腳,ch_a、ch_b為輸入引腳。狀態機變化邏輯如下:

    state_diagram qstate

    state st0: cw = 0;

    ccw = 0;

    if (!ch_a&ch_b) then st1

    else if (ch_a&!ch_b) then st4

    else st0;

    state st1: cw=1;

    ccw=0;

    if (ch_a&ch_b) then st2

    else st1;

    state st2: cw=1;

    ccw=0;

    if (ch_a&!ch_b) then st3

    else st2;

    state st3: cw=1;

    ccw=0;

    if (!ch_a&!ch_b) then st0

    else st3;

    state st4: cw=0;

    ccw=1;

    if (ch_a&ch_b) then st5

    else st4;

    state st5: cw=0;

    ccw=1;

    if (!ch_a&ch_b) then st6

    else st5;

    state st6: cw=0;

    ccw=1;

    if (!ch_a&!ch_b) then st0

    else st6;

    4.2 模擬開關的實現

    一般手動按下一個鍵的開關時間是20ms,所以設計中在cw、ccw輸出端加了一個單穩電路作為時延,單穩電路的輸出作為模擬開關mc74hc4066的控制。電路設計如圖5所示。

    

    

    

    當鑒相器產生一個cw脈沖,u1就會觸發產生一個20ms寬的脈

        

    

    

    “單鍵飛梭”作為一種用戶輸入方法,其輸入方式靈活可靠,特別適合應用在嵌入式儀器設備和手持式設備上。本文利用cpld鑒相控制模擬開關, 模擬手動按鍵得到統一的ps/2碼,從而簡化軟件設計,提高了用戶輸入效率。

    1 光電trim knob的工作原理

    光電trim knob又稱為光電編碼器(optical encoder),其中以bourns公司和greyhill公司的產品用得最廣泛。本文就以bourns公司的enc產品為例,介紹其工作原理。

    如圖1所示,trimknob有兩個發光二極管及兩個光敏三極管,中間是可自由轉動的遮光板。當旋轉trimknob時,兩個光敏三極管會被遮光板有次序地遮擋而產生圖2所示的波形。

    

    

    

    如果是順時針從位置#1旋轉到位置#2,通道a會比通道b相位超前半個周期;反之如果是逆時針從位置#3旋轉到位置#1, 通道b會比通道a相位超前半個周期。通過檢測通道a和通道b的相位就能判斷是順時針還是逆時針轉動。通過記錄檢測通道a和通道b波形變化的次數就能得到轉動位置變化數目。

    2 holtek ht82k628a簡介

    ht82k628a是臺灣holtek公司為ibm pc/at及兼容機設計生產的專用鍵盤掃描控制芯片,支持101/102/104/109個鍵, ps/2接口。引腳定義如圖3所示。行線r0~r15為鍵盤矩陣的掃描輸出,列線c0~c7為鍵盤矩陣的掃描輸入。

    

    

    

    表1列舉了幾個行列線對應的鍵值,關于此芯片的更詳細的應用,請見參考文獻[1]。

    3 設計原理

    通過一個鑒相電路,輸入為通道a、b,輸出為cw、 ccw。cw、ccw控制模擬開關sw1、sw2。sw1的數據端分別連接在c6和r7上,從表1可以看出c6、r7對應f8鍵。順時針轉動一個位置,cw 輸出一個脈沖,模擬開關sw1接通。從鍵盤掃描控制芯片ht82k628a角度看,效果和按下“f8”一樣,如圖4。

    4 實 現

    4.1 鑒相器的實現

    由于本系統其它邏輯部分電路用到xilinx公司的cpld xcr3032xl,所以我們把鑒相器電路也做在此cpld中。其中定義cw、ccw為輸出引腳,ch_a、ch_b為輸入引腳。狀態機變化邏輯如下:

    state_diagram qstate

    state st0: cw = 0;

    ccw = 0;

    if (!ch_a&ch_b) then st1

    else if (ch_a&!ch_b) then st4

    else st0;

    state st1: cw=1;

    ccw=0;

    if (ch_a&ch_b) then st2

    else st1;

    state st2: cw=1;

    ccw=0;

    if (ch_a&!ch_b) then st3

    else st2;

    state st3: cw=1;

    ccw=0;

    if (!ch_a&!ch_b) then st0

    else st3;

    state st4: cw=0;

    ccw=1;

    if (ch_a&ch_b) then st5

    else st4;

    state st5: cw=0;

    ccw=1;

    if (!ch_a&ch_b) then st6

    else st5;

    state st6: cw=0;

    ccw=1;

    if (!ch_a&!ch_b) then st0

    else st6;

    4.2 模擬開關的實現

    一般手動按下一個鍵的開關時間是20ms,所以設計中在cw、ccw輸出端加了一個單穩電路作為時延,單穩電路的輸出作為模擬開關mc74hc4066的控制。電路設計如圖5所示。

    

    

    

    當鑒相器產生一個cw脈沖,u1就會觸發產生一個20ms寬的脈

相關IC型號

熱門點擊

 

推薦技術資料

硬盤式MP3播放器終級改
    一次偶然的機會我結識了NE0 2511,那是一個遠方的... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
田东县| 宜兴市| 伊春市| 祁连县| 建瓯市| 武汉市| 宁晋县| 府谷县| 阜阳市| 西乡县| 闽侯县| 德格县| 出国| 镇江市| 共和县| 泰顺县| 盐边县| 沁水县| 长葛市| 筠连县| 吉林市| 额尔古纳市| 永州市| 贵定县| 岳阳县| 靖西县| 砀山县| 巴林左旗| 扬州市| SHOW| 成安县| 曲阳县| 扎囊县| 安化县| 五台县| 来宾市| 库车县| 兴化市| 扶绥县| 晋州市| 天全县|