<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è) > 嵌入式系統 > 設計應用 > 一種頻率編碼鍵盤(pán)的設計與實(shí)現

一種頻率編碼鍵盤(pán)的設計與實(shí)現

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

在消費電子、自動(dòng)化儀表、工業(yè)控制等領(lǐng)域已得到廣泛的應用,它以靈活的、低廉的成本、微小的功耗在電子器件市場(chǎng)中占有十分重要的地位。今天越來(lái)越多的芯片廠(chǎng)商在不遺余力地競爭這個(gè)應用空間,如INTEL、NEC、MICROCHIP等公司都已形成了自己強大的產(chǎn)品線(xiàn),給產(chǎn)品的帶來(lái)了越來(lái)越多的選擇。

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

  幾乎在每一個(gè)應用系統中,都是必備的人機交互的主要輸入設備。傳統的按鍵識別方法是采用芯片,如8279;或采用軟件控制多條I/O線(xiàn)掃描的方法。這種方法用到的I/O引腳數常常在4條以上。然而I/O引腳資源有限,特別是在引腳數少、功耗低、系統成本敏感的場(chǎng)合,成本和功耗決定了人員不可能另外擴充I/O空間,如采用ATMEL公司的AT89C1051/AT89C2051及AT90SXX系列、MICROCHIP公司的PIC16CXX系列的單片機時(shí)就是這樣。如何利用有限的I/O資源多個(gè)按鍵的識別是經(jīng)常遇到的問(wèn)題。作者根據實(shí)際的開(kāi)發(fā)經(jīng)驗,結合單片機自身的特點(diǎn),提出一種利用單片機的定時(shí)器/計數器和測頻原理、用一個(gè)I/O引腳多個(gè)按鍵識別的方法,并給出了 MCS-51單片機的匯編源程序。由于在各種型號的單片機中,定時(shí)器/計數器幾乎是一種必備的配置資源,因此其原理很容易移植到其它型號的單片機應用系統中。

1 硬件電路的分析

  的硬件電路如圖1所示。由NE555定時(shí)器組成的多諧振蕩器產(chǎn)生一定的方波[1],單片機利用其定時(shí)器/計數器對這個(gè)方波的進(jìn)行測量。NE555定時(shí)器組成的多諧振蕩器的放電時(shí)間常數為:τ放=RS?C1,而充電時(shí)間常數為:τ充=(Ri+RS)C1,(i=1,2,???,n),n為按鍵的數目。

當不同的按鍵按下時(shí),NE555定時(shí)器組成的多諧振蕩器的充電時(shí)間常數不同,放電時(shí)間常數不變,因而輸出方波的頻率也不同,使得不同的鍵按下時(shí)對應不同的輸出頻率。只要準確地測量出NE555定時(shí)器的輸出頻率,就可以精確地識別出被按下的按鍵號,這就是頻率式鍵盤(pán)設計的理論依據。

  在實(shí)際應用中,考慮到電阻阻值和電容容量的分散性以及電路的時(shí)間穩定性和溫度穩定性,在滿(mǎn)足單片機測量頻率的分辨率和量程的基礎上,應盡量將各個(gè)鍵之間的頻率間隔拉大。這樣即使每一按鍵輸出的頻率有一定的誤差,但只要保證輸出的各個(gè)頻率互不相同,就可以通過(guò)軟件去判斷被測的頻率究竟落在了哪一個(gè)范圍,而不是判斷落在了哪一個(gè)頻點(diǎn)上。這樣使設計的軟件對電路產(chǎn)生的誤差具有一定的適應性,從而擺脫了本電路對元器件參數的高度敏感性,大大加快了電路調試和批量生產(chǎn)的速度。

2 匯編程序的設計

  在作者設計的系統中,采用AT89C2051單片機,外接晶振頻率為12MHz。單片機僅具有15個(gè)I/O線(xiàn),由于系統采用電池供電,需要進(jìn)行低功耗設計。而采用本電路后,簡(jiǎn)化了系統的硬件,滿(mǎn)足了低功耗的要求,另外的14 個(gè)I/O線(xiàn)能滿(mǎn)足一般的便攜式應用。本系統用到8個(gè)按鍵,鍵盤(pán)電路的中C1=C2=0.01μF,RS=150Ω,其余的阻容值和設計的中心頻率如表1所示。其中,中心頻率是指在電路參數誤差為零時(shí)對應的頻率。由于實(shí)際電路中誤差總是存在的,所以頻率就落在此中心頻率附近。

在軟件設計上要以下三個(gè)功能:(1)判斷有無(wú)鍵按下;(2)有鍵按下時(shí),進(jìn)行按鍵消抖;(3)正確識別被按下的按鍵編號。首先設置單片機定時(shí)器/計數器的工作方式,讓定時(shí)器/計數器T0設為外部計數方式,允許T0中斷;并給TL0、TH0賦初值FFH,一旦有鍵按下時(shí),T0便產(chǎn)生中斷,由此可以判斷是否有鍵按下;然后延時(shí)8ms實(shí)現按鍵抖動(dòng)的消除;接著(zhù)將T1設為內部定時(shí)方式,定時(shí)時(shí)間為50ms,T0在這50ms的時(shí)間里對NE555輸出頻率信號進(jìn)行計數,通過(guò)對計數值的大小范圍的判斷就可以識別按鍵的編號。有關(guān)延時(shí)和測頻的程序很常見(jiàn),讀者可以參考有關(guān)資料。按鍵識別這部分的匯編程序如下文?眼2?演。程序入口參數FRQH、FRQL分別是50ms定時(shí)時(shí)間內對外部頻率計數的高位和低位,判斷結果放在KEYCODE中。

  KEYCODE EQU 30H ;存放鍵值(1-8 )有效;

;0FFH無(wú)鍵按下,0EEH出錯

  FRQH EQU 32H ;頻率測量值高位

  FRQL EQU 31H ;頻率測量值低位

  ORG 0000H

  MOV DPTR,#TABLE

  MOV R0,#0

  MOV KEYCODE,#0

NEXT:MOV A,R0

  MOVC A,@A+DPTR

  INC R0

  CJNE A,FRQH,J1

  MOV A,R0

  INC R0

  MOVC A,@A+DPTR

  CJNE A,FRQL,J2

  MOV KEYCODE,#0EEH  ??;頻率在邊界上出錯

  LJMP WAIT

J1:JNC WAIT

  INC R0

  NNT:INC KEYCODE

  LJMP NEXT

J2:JNC WAIT

JMP NNT

WAIT:MOV A,KEYCODE

??; ...

??; ... 添加用戶(hù)應用程序

??; 判斷頻率區間上下限的數據表:

TABLE: DB 00H,0FAH,01H,5EH,01H,0C2H

DB 02H,26H,02H,8AH,02H,0EEH

DB 03H,52H,03H,0B6H,04H,1AH

DB 04H,7EH,0FFH,0FFH

3 特點(diǎn)及注意事項

  采用具有抗干擾力強、接口簡(jiǎn)單的優(yōu)點(diǎn),并且易于實(shí)現光電隔離。在鍵盤(pán)與主機分離的場(chǎng)合,還可以大大簡(jiǎn)化二者互連的電纜。另外,若將此信號去調制紅外發(fā)射組件,也可以實(shí)現遙控鍵盤(pán)而無(wú)需額外的編碼邏輯。但是它對多鍵的同時(shí)按下和單鍵的連擊檢測能力較差,在與實(shí)際應用結合的時(shí)候,應盡量避免這兩種情況的出現并恰當地進(jìn)行處理。同時(shí)NE555的上限工作頻率是500kHz,采用傳統的MCS-51單片機測量外部頻率時(shí),最高可測的頻率為晶振頻率的24分頻,設計中應考慮可用的頻率范圍。采用其它型號的單片機時(shí),也應注意這一點(diǎn)。



評論


相關(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>