機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
PLD器件在紅外遙控解碼中的應(yīng)用
PLD器件在紅外遙控解碼中的應(yīng)用
 更新時(shí)間:2008-8-18 13:14:02  點(diǎn)擊數(shù):36
【字體: 字體顏色
產(chǎn)生一個(gè)寬度為80ms的負(fù)脈沖,1Q和相與后作為鎖存信號(hào)送至74HC595的RCLK端,即一組遙控編碼脈沖到來80ms后,產(chǎn)生一個(gè)鎖存信號(hào)。此時(shí)74HC595已經(jīng)移過了一組遙控碼,芯片中保留的是最后8位遙控碼,鎖存信號(hào)將這最后8位遙控碼鎖存。

     3.2 基于EPROM的遙控解碼原理

      經(jīng)過串并轉(zhuǎn)換,我們得到了8位并行遙控碼。為了讓CPU讀取這個(gè)并行遙控碼,通常的方法是在轉(zhuǎn)換完成后產(chǎn)生一個(gè)中斷,通知CPU來讀取遙控信息。但這樣做要占用CPU一個(gè)外部中斷資源并需編寫額外的中斷服務(wù)程序,顯得比較煩瑣。尤其是當(dāng)儀器系統(tǒng)的軟件不是由自己開發(fā)而又要加裝遙控時(shí)更是無能為力。因此,我們想尋求一種不占用儀器CPU的軟、硬件資源而實(shí)現(xiàn)遙控的方法,使鍵盤輸入和遙控輸入統(tǒng)一起來,占用同一個(gè)端口、同一個(gè)中斷、同一個(gè)中斷服務(wù)程序。簡(jiǎn)言之,要做到對(duì)CPU是透明的,似乎只有一個(gè)鍵盤輸入單元在工作,只須訪問它來進(jìn)行鍵盤掃描、鍵碼讀出操作。但實(shí)際上卻有遙控器與鍵盤兩套鍵輸入硬件在同時(shí)而獨(dú)立地工作。

      考察一下智能儀器的鍵盤掃描輸入原理。在這種方式下,CPU通過輸出指令使鍵盤矩陣的行掃描線依次為“0”(低電平),同時(shí)監(jiān)測(cè)鍵盤矩陣的列掃描線。若無鍵按下,則列掃描線輸出全“1”(高電平);若有鍵按下,則此鍵所在列線輸出為“0”,再結(jié)合行掃描線此時(shí)的狀態(tài),就可具體定位按鍵。

      我們?cè)O(shè)想,可否將遙控接收頭輸出的含有按鍵信息的8位遙控碼通過某種轉(zhuǎn)換,并入鍵盤矩陣電路,當(dāng)遙控器有鍵按下時(shí),就會(huì)在機(jī)上鍵盤對(duì)應(yīng)鍵處產(chǎn)生一個(gè)“模擬”按鍵動(dòng)作,產(chǎn)生一個(gè)鍵碼可供CPU讀取。所謂“模擬”是指并沒有機(jī)械按鍵動(dòng)作,但對(duì)于鍵盤矩陣電路而言卻產(chǎn)生一個(gè)低電平,效果和機(jī)械按鍵動(dòng)作完全一樣。這樣就將遙控鍵盤和本機(jī)鍵盤統(tǒng)一起來,二者的鍵數(shù)和鍵功能定義都一樣,一個(gè)相同的鍵在遙控器上按下和在本機(jī)鍵盤上按下對(duì)CPU而言沒有任何區(qū)別,只不過對(duì)鍵盤矩陣來說前者是軟接觸,后者是硬接觸。

      根據(jù)遙控器上按鍵與本機(jī)鍵盤按鍵的一一對(duì)應(yīng)方案,我們可以導(dǎo)出實(shí)現(xiàn)“模擬”按鍵的邏輯真值表(其中C0~C4為列掃描線),見表2。

      這是一個(gè)12變量輸入S變量輸出的組合邏輯函數(shù),最小項(xiàng)總數(shù)為16×20=320個(gè)。若用普通邏輯門電路來實(shí)現(xiàn)這樣的功能將是十分麻煩的,用PLD(可編程邏輯器件)來做就要簡(jiǎn)單得多。EPROM就是一種與陣列固定、或陣列可編程的邏輯器件。如果把EPROM的輸入地址A0,A1,……AN視為輸入邏輯變量,同時(shí)把輸出數(shù)據(jù)D0,D1,……DM視為一組多輸出邏輯變量,那么輸出與輸入之間也就是一組多輸出的組合邏輯函數(shù)。而且,EPROM地址譯碼器的輸出包含了全部輸入變量的最小項(xiàng),每一位數(shù)據(jù)輸出又都是這些最小項(xiàng)之和,因而任何形式的組合邏輯函數(shù)均能通過向EPROM中寫入相應(yīng)的數(shù)據(jù)來實(shí)現(xiàn)。不難推想,具有N位輸入地址和M位數(shù)據(jù)輸出的EPROM可以獲得一組(最多為M個(gè))任何形式的N變量組合邏輯函數(shù)。

     根據(jù)這個(gè)原理,選用4K×8 EPROM 2732,可以實(shí)現(xiàn)任意12變量輸入、8變量輸出的組合邏輯函數(shù)。在本機(jī)遙控系統(tǒng)中,利用了EPROM的D0~D4五根數(shù)據(jù)線和全部12根地址線,通過向2732中固化上表所示的邏輯真值表,從而實(shí)現(xiàn)了關(guān)鍵的遙控解碼,使遙控器上按鍵與本機(jī)鍵盤按鍵一一對(duì)應(yīng)起來。需要指出的是,EPROM的地址譯碼是全譯碼,而在本方案中占據(jù)地址線A0~A7的8位遙控碼只有20種有效碼值(20個(gè)鍵),即一頁(2S6字節(jié))中只有20個(gè)有效數(shù)據(jù),則應(yīng)將剩余空間填入0FFH。

     由解碼電路圖3可見,EPROM  2732的地址線A0-A7接至8位輸出鎖存移位寄存器74HCS9S的輸出(即8位遙控碼),A8~A11接至鍵盤矩陣的行掃描線R0~R3;2732的8根數(shù)據(jù)線使用了其中的S根D0~D4,接至鍵盤矩陣的列掃描線C0~C4,2732的(片選端)接地,(讀信號(hào))接至施密特與非門4093的3腳輸出,此輸出為雙單穩(wěn)74HC123的1Q、與非的結(jié)果。

     當(dāng)遙控器上沒有按鍵按下時(shí),EPROM 2732的端為“1”,使得2732的數(shù)據(jù)線D0~D4為高阻態(tài)與鍵盤矩陣線脫離,而本機(jī)鍵盤的掃描與讀出照常進(jìn)行不受影響,若遙控器上有鍵按下時(shí),經(jīng)紅外發(fā)射、接收對(duì)應(yīng)的8位遙控碼出現(xiàn)在74HC595的輸出端,并作為EPROM 2732的A0~A7輸入,此時(shí)的行掃描碼(CPU發(fā)出)作為A8~A11輸入,2732的端為低電平,讀出A0~A11指定單元的數(shù)據(jù),將其中D0~D4放在鍵盤矩陣列線上。D0~D4中只有一位為“0”,指示著哪一列有鍵按下,這樣就由遙控接收、解碼電路模擬了一次“按鍵”動(dòng)作。接下來CPU對(duì)這個(gè)“按鍵”動(dòng)作的響應(yīng)、處理就和本機(jī)鍵盤完全一樣了。

     2.3 基于GAL的遙控解碼原理

      我們還可以考慮用GAL器件來實(shí)現(xiàn)解碼功能。GAL(通用陣列邏輯)也是一種PLD器件,它的與陣列可編程而或陣列固定。根據(jù)遙控解碼的真值表,我們要實(shí)現(xiàn)一個(gè)12變量輸入、S變量輸出的組合邏輯函數(shù),其全部最小項(xiàng)有16×20=320個(gè)。而GAL20V8的輸出最多可有8個(gè),每個(gè)輸出由8個(gè)乘積項(xiàng)相或而得,總共可包含8×8=64個(gè)乘積項(xiàng),似乎不夠用于實(shí)現(xiàn)解碼邏輯。但是注意到320個(gè)最小項(xiàng)并不是互不相關(guān)的,通過化簡(jiǎn)可將它們化成S個(gè)最簡(jiǎn)與或式,分別對(duì)應(yīng)著S個(gè)輸出變量,每個(gè)輸出變量由4個(gè)乘積項(xiàng)相或而得,這樣就可以用GAL20V8來實(shí)現(xiàn)解碼邏輯了。據(jù)此可設(shè)計(jì)出GAL邏輯方程如下:

     /** lnputs **/

     Pin[1..8]=[A7..A0];定義并行遙控碼的輸入引腳

      Pin[9..11,14]=[R0..R3];定義鍵盤行掃描線的輸入引腳

     Pin[13]=[out_enable];定義輸出使能引腳

     /**  Outputs **/

      Pin[I5..19]=[C0..C4];定義鍵盤列線的輸出引腳

     /** Declarations and Intermidiate Variables **/

     Field remote=[A7..A0];

     $define m0'b'11000111;將20個(gè)鍵的鍵值用

     $define m1'b'00010111 ;″m0″、″m1″…″m19″來表示

     ……

     $define m19'b'00011111

     /**  Logic Equations  **/

!C0=!R0&remote:m0 ;第0條列線的輸出方程

    #!R1&remote:m5

    #!R2&remote:m10

    #!R3&remote:m15

   !C1=!R0&remote:m1 ;第1條列線的輸出方程

    #!R1&remote:m6

    #!R2&remote:m11

    #!R3&remote:m16

!C2=0 !R0&remote:m2 ;第2條列線的輸出方程

    #!R1&remote:m7

    #!R2&remote:m12

    #!R3&remote:m17

!C3=!R0&remote:m3;第3條列線的輸出方程

    #!R1&remote:m8

    #!R2&remote:m13

    #!R3&remote:m18

!C4=!R0&remote:m4;第4條列線的輸出方程

    #!R1&remote:m9

    #!1R2&remote:m14

    #!R3&remote:m19

[C0..C4].oe=!out_enable;所有列線輸出均帶使能

      采用EPROM和GAL器件進(jìn)行紅外遙控解碼的方案都已在實(shí)際電路中得到驗(yàn)證,工作穩(wěn)定可靠。而GAL較之EPROM更具有體積小、功耗低、可加密等優(yōu)點(diǎn)。本文提出的解碼方案基于純硬件原理,不占用CPU軟、硬件資源,直接并在鍵盤掃描矩陣上,對(duì)CPU是透明的。本方案適用于鍵盤掃描輸入的智能儀器系統(tǒng)的紅外遙控,對(duì)其它紅外遙控系統(tǒng)的設(shè)計(jì)應(yīng)用亦具有借鑒意義。

     參考文獻(xiàn)

     1 閻 石.?dāng)?shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,1989

     2 蔡 軼.通用搖控解碼電路.電子技術(shù),1995(1)

    (收稿日期:1999-08-11)

 

  • 上一篇: 采用內(nèi)存接液晶顯示模塊
  • 下一篇: 一種實(shí)用的LED光柱顯示器驅(qū)動(dòng)方法
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1