新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 串行接口鍵盤(pán)控制器SK5278在單片機(jī)系統(tǒng)中的應(yīng)用

        串行接口鍵盤(pán)控制器SK5278在單片機(jī)系統(tǒng)中的應(yīng)用

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

        是一種可管理16個(gè)按鍵的,該器件內(nèi)部具有去抖動(dòng)處理電路,可直接輸出按鍵的鍵值編碼,并采用串行方式與單片機(jī)或微處理器進(jìn)行接口,使用該器件可簡(jiǎn)化單片機(jī)系統(tǒng)軟硬件的鍵盤(pán)接口。文中給出了該器件的特點(diǎn)、管腳說(shuō)明和使用方法,并以AT89C2051單片機(jī)為例給出了相應(yīng)的接口電路及相應(yīng)程序。

        1 特點(diǎn)及引腳功能

        是福州貝能科技有限公司推出的采用PIC內(nèi)核的。該芯片采用4線(xiàn),可與任何種類(lèi)的單片機(jī)接口;它具有按鍵有效指示輸出,可用中斷方式管理鍵盤(pán);其行線(xiàn)X0~X3與列線(xiàn)Y0~Y3可構(gòu)成4×4鍵盤(pán)矩陣;的16鍵內(nèi)含去抖動(dòng)處理電路,因而可直接輸出鍵值;此外,該器件的工作電源電壓范圍寬達(dá)4~6V;SK5278采用18腳雙列直插DIP封裝形式。其管腳排列如圖1所示,管腳說(shuō)明如表1所列。

        表1 SK5278管腳說(shuō)明

        管腳號(hào)管腳名稱(chēng)管腳類(lèi)型

        功 能

        1DIOO數(shù)據(jù)輸出端,讀取鍵盤(pán)數(shù)據(jù)時(shí),此腳在CLK上升沿輸出數(shù)據(jù)
        2KEYO按鍵有效輸出端,平時(shí)為低電平,當(dāng)檢測(cè)到有效按鍵時(shí),此引腳變?yōu)楦唠娖健Wx取鍵盤(pán)后,此引腳重新變?yōu)榈碗娖?/TD>
        3,14VDD 正電源
        4RST 復(fù)位端
        5VSS 電源地
        6~9X0~X3I矩陣鍵盤(pán)行線(xiàn)輸入端
        10~13Y0~Y3O矩陣鍵盤(pán)列線(xiàn)輸出端
        15OSCOO振蕩輸出腳,輸出頻率為RC振蕩頻率四分之一
        16RC 外接振蕩器連接端,R=3.3kΩ,C=20pF時(shí),振蕩頻率為4MHz
        17CSI片選端,該腳為低時(shí),可芯片讀取鍵盤(pán)數(shù)據(jù)
        18CLKI時(shí)鐘輸入端,讀取鍵盤(pán)數(shù)據(jù)時(shí),此腳電平的上升沿表示數(shù)據(jù)有效

        2 工作原理

        SK5278可用行線(xiàn)X0~X3和列線(xiàn)Y0~Y3構(gòu)成4×4矩陣鍵盤(pán)。同時(shí)在芯片內(nèi)部可自動(dòng)完成掃描、譯碼、去抖動(dòng)處理等任務(wù)。當(dāng)SK5278檢測(cè)到有效的按鍵時(shí),按鍵有效指示“KEY”引腳將從低電平變?yōu)楦唠娖剑⒁恢北3值桨存I代碼被讀取為止。在“KEY”為高電平期間,如果SK5278接收到“讀鍵盤(pán)數(shù)據(jù)”命令,(即“CS”管腳變低),則輸出當(dāng)前按鍵的鍵盤(pán)代碼,SK5278鍵盤(pán)代碼的范圍為00H-0FH。如果在接收到“讀鍵盤(pán)數(shù)據(jù)”時(shí)沒(méi)有按鍵按下,SK5278將輸出FFH。在一次讀鍵盤(pán)過(guò)程完成后,按鍵有效指示“KEY”將變?yōu)榈碗娖健@冒存I有效指示“KEY”與單片機(jī)的外部中斷端相連,可完成具有中斷的鍵盤(pán)監(jiān)控功能,從而提高CPU的工作效率,減少按鍵響應(yīng)時(shí)間。

        SK5278工作時(shí)需要外接RC振蕩電路以供系統(tǒng)工作,RC元件的典型值為R=3.3kΩ,C=20pF,此時(shí)的振蕩頻率約為4MHz,由于此振蕩頻率較高,故在印制電路板布線(xiàn)時(shí),所有元件尤其是振蕩電路的元件應(yīng)盡量靠近芯片,并盡量使電路連線(xiàn)最短。

        SK5278的RESET復(fù)位端在一般應(yīng)用情況下,可以直接與正電源連接,在需要較高可靠性的情況下,可以連接外部RC復(fù)位電路,在上電或接收到RESET端的復(fù)位信號(hào)后,SK5278大約需要經(jīng)過(guò)25ms的復(fù)位時(shí)間才會(huì)進(jìn)入到正常工作狀態(tài)。程序中應(yīng)盡可能地減少CPU對(duì)SK5278的訪(fǎng)問(wèn)次數(shù),以提高程序的效率。

        值得注意的是,如果有2個(gè)鍵同時(shí)被按下,則SK5278只能給出其中一個(gè)按鍵的代碼,因此SK5278不適合應(yīng)用于需要2個(gè)或2個(gè)以上按鍵同時(shí)被按下的應(yīng)用場(chǎng)合。如確實(shí)需要雙鍵組合使用或組合增加鍵盤(pán)數(shù)量,可在單片機(jī)的某I/O腳接入一鍵與SK5278共同組雙鍵鍵盤(pán)監(jiān)控電路。

        3 及時(shí)序

        SK5278采用串行方式與單片機(jī)或微處理器接口,串行數(shù)據(jù)從“DIO”引腳輸出,并由“CLK”端發(fā)出同步時(shí)鐘脈沖。當(dāng)SK5278檢測(cè)到有鍵按下時(shí),按鍵有效指示“KEY”變高,單片機(jī)檢測(cè)到“KEY”信號(hào)變高后,便將片選端“CS”拉低,從而使得SK5278將取得的鍵盤(pán)數(shù)據(jù)在“CLK”引腳的上升沿從“DIO”腳依次送出。在單片機(jī)發(fā)出8個(gè)時(shí)鐘脈沖后,即可從“DIO”端讀取8位鍵值編碼,該編碼值的D7為最高位,D0為最低位,然后單片機(jī)再使片選“CS”變高,并使“KEY”端重新輸出低電平,至此,讀鍵值過(guò)程結(jié)束。SK5278的時(shí)序如圖2所示。圖中,T1表示從“CS”下降沿至第一個(gè)CLK上升沿的延時(shí),典型值為15μs;T2為CLK脈沖寬度,典型值為10μs;T3為CLK脈沖時(shí)間間隔,典型值為10μs。

        4 應(yīng)用電路

        利用SK5278串行接口占用單片機(jī)口線(xiàn)少及無(wú)鍵按下時(shí)無(wú)須CPU干預(yù)的特點(diǎn),可以很容易地構(gòu)成單片機(jī)的鍵盤(pán)接口電路,圖3所示是AT89C2051單片機(jī)與SK5278構(gòu)成的鍵盤(pán)及接口電路。圖中,AT89C2051的P1.2、P1.3、P1.4口線(xiàn)分別與SK5278的“CS”、“CLK”、“DIO”端相連。為了提高按鍵的響應(yīng)速度并減少單片機(jī)的干預(yù)。本方案將SK5278的按鍵有效指示端“KEY”與AT89C2051的外中斷端INT0相連,由于INT0為低電平中斷,故而加入了一級(jí)非門(mén)以使“KEY”反相后與其相連。與圖3電路對(duì)應(yīng)的鍵盤(pán)處理程序如下:

        ;位定義

        COUNT DATA 70H

        RXBUF DATA 20H

        ;I/O定義

        DIO BIT P1.4

        CS BIT P1.2

        CLK BIT P1.3

        ;主程序

        MAIN:MOV SP,#50H

        MOV P1,#0FFH ;將P1口置為輸入

        SETB IT0 ;INT0為邊沿觸發(fā)

        SETB PX0 ;INT0為高優(yōu)先級(jí)中斷

        SETB EX0 ;開(kāi)INT0中斷

        SETB EA ;CPU開(kāi)中斷

        LCALL DL25ms ;延時(shí)25ms等待SK5278復(fù)位

        ;INT0鍵盤(pán)中斷程序

        INT0:LCALL RECEIVE ;讀鍵值

        MOV A,RXBUF ;鍵值送A

        CJNE A,#00H,KEY-1 ;K0鍵未按下轉(zhuǎn)下鍵

        LJMP KEY0 ;K0鍵按下,轉(zhuǎn)入相應(yīng)鍵值處理子程序

        KEY1:CJNE A,#01H,KEY-2;

        LJMP KEY1 ;K1鍵按下,轉(zhuǎn)入相應(yīng)鍵值處理子程序

        KEY2:…

        ……

        KEY15:CJNE A,#0FH,KEYFH ;K15鍵未按下,中斷返回

        LJMP KEY15 ;KEY15鍵按下,轉(zhuǎn)入相應(yīng)鍵值處理程序

        KEYFH:RET; 無(wú)鍵按下時(shí)中斷返回讀鍵盤(pán)值程序

        RECEIVE:CLR CS ;讀鍵盤(pán)數(shù)據(jù)有效

        SETB DIO ;將DIO置為高電平輸入狀態(tài)

        ACALL DL 15μs ;T1延時(shí)

        MOV COUNT,#08H ;共八位數(shù)據(jù)

        LOOP:SETB CLK

        ACALL DL 15μs ;T2延時(shí)

        MOV A,RXBUF

        RL A ;數(shù)據(jù)左移一位

        MOV RXBUF,A

        MOV C,DIO ;讀取一位數(shù)據(jù)

        MOV RXBUF.0,C

        CLR CLK

        ACALL DL 15μs ;T3延時(shí)

        DJNZ COUNT,LOOP

        SETB DIO ;將DIO重置為高電平輸入

        ACALL DL 15μs

        SETB CS ;讀鍵盤(pán)數(shù)據(jù)無(wú)效

        RET

        5 結(jié)束語(yǔ)

        應(yīng)用SK5278鍵盤(pán)控制器可使單片機(jī)系統(tǒng)的人機(jī)交互鍵盤(pán)接口電路及監(jiān)控程序變得簡(jiǎn)單容易,同時(shí)減少了對(duì)單片機(jī)軟硬件資源的占用,因而該器件是構(gòu)成少數(shù)單片機(jī)鍵盤(pán)接口電路的一種較好的選擇方案。



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 营山县| 斗六市| 淮阳县| 大连市| 新巴尔虎右旗| 金湖县| 辛集市| 浙江省| 达州市| 信丰县| 封开县| 墨脱县| 依安县| 上虞市| 平原县| 惠州市| 射洪县| 彭山县| 宜昌市| 永定县| 徐汇区| 巴彦淖尔市| 辉南县| 北川| 乌兰县| 贵阳市| 兴城市| 加查县| 栾川县| 土默特右旗| 甘泉县| 台前县| 靖边县| 抚州市| 武功县| 常州市| 洛宁县| 松潘县| 娱乐| 广西| 静乐县|