基于單片機89C51的異步串行接口鍵盤(pán)設計
關(guān)鍵詞:89C51單片機;異步串行接口;鍵盤(pán)設計;E2PROM
在信息處理系統中,顯示分系統是整個(gè)系統的人機界面。顯示器畫(huà)面呈現出的態(tài)勢圖形和數據,是人們決策的重要依據。人工干預手段則是將人們的決策變?yōu)橄到y所能接收信息的必不可少的工具。因此人工干預手段的多寡及有效度直接影響著(zhù)整個(gè)系統的有效度。特別是在處理信息量大,人機交互頻繁的系統中,對人工干預手段的要求更高。
筆者結合工作實(shí)際,圍繞單片機89C51設計了通用異步串行接口鍵盤(pán)作為顯示分系統的擴展鍵盤(pán)。目的在于為顯示分系統增加一種干預手段。實(shí)踐表明:此鍵盤(pán)改善了系統的人機界面,提高了系統的處理效率。
1 設計要求與工作原理
1.1 設計要求
(1)擴展鍵盤(pán)鍵位編碼符合顯示分系統的約定?! ?BR> (2)擴展鍵盤(pán)與顯示處理機通訊通過(guò)其異步串行接口來(lái)完成,波特率為9600 b/s。
(3)擴展鍵盤(pán)與顯示處理機通訊的接口電平為RS232C標準。
(4)波特率相對誤差應小于2.5%。
(5)擴展鍵盤(pán)的電源要求:直流+5 V。
(6)擴展鍵盤(pán)的環(huán)境溫度要求:-100~+500C。
1.2 工作原理
擴展鍵盤(pán)工作原理如圖1所示。擴展鍵盤(pán)通過(guò)異步串 行接口與顯示處理機相連,與標準鍵盤(pán)一起,顯示處理機便擁有2個(gè)鍵盤(pán)。2個(gè)鍵盤(pán)可同時(shí)向顯示處理機發(fā)出干預命令。因此,顯示分系統增加了一條輸入干預命令的新途徑,縮短了干預命令的輸入時(shí)間,提高了人工干預的效率。
2 電路設計
擴展鍵盤(pán)由以下幾部分組成:
①單片機89C51及時(shí)鐘、復位電路。
?、赥TL電平到RS232C電平轉換芯片ICL232CPE,此芯片只需直流+5 V電源。
③工作指示電路。
④鍵位陣列部分(813)。
擴展鍵盤(pán)電原理圖如圖2所示。
3 89C51的結構與性能特點(diǎn)
89C51是MCS-51系列單片機的典型產(chǎn)品之一。其內部具有的硬件資源如圖3所示。
①4 kB可編程的E2PROM。
②面向控制的8 b CPU。
③128 B內部RAM數據存貯器。
④32 b雙向輸入/輸出線(xiàn)。
⑤1個(gè)全雙工的串行口。
⑥2個(gè)16 b定時(shí)器/計數器。
⑦5個(gè)中斷源,2個(gè)中斷優(yōu)先級。⑧時(shí)鐘發(fā)生器。
?、峥梢詫ぶ?4 kB的程序存貯器和64 kB的外部數據存貯器。
該鍵盤(pán)利用了89C51的片內E2PROM作為程序存貯器,避免外擴存貯器占用單片機的輸入/輸出口資源;利用P3口的第二功能完成異步串行通訊功能;用一片ICL232CPE作為接口電平轉換芯片,便實(shí)現了鍵盤(pán)的全部硬件邏輯。硬件少,可靠性高。整個(gè)鍵盤(pán)采用+5 V直流電源;電路與鍵位陣列分離設計。本鍵盤(pán)還克服了以往鍵盤(pán)設計中鍵位少、不通用等缺點(diǎn)。
4 軟件功能流程圖
軟件實(shí)現鍵位掃描、消除抖動(dòng)、鍵碼轉換、鍵碼發(fā)送等功能。另外軟件也實(shí)現了換檔、按鍵連發(fā)功能。軟件功能流程圖如圖4所示。
5 應用中應注意的問(wèn)題
在異型機種的串行通訊中,當規定了傳輸速率后,MCS-51單片機系統中選取適當的晶體振蕩頻率至關(guān)重要。他與串行接口的工作方式、電源控制寄存器PCON的SMOD位、定時(shí)器T1一起決定著(zhù)通訊的成敗。MCS-51單 片機串行接口工作在方式0時(shí),其波特率固定不變,其大小為:晶振頻率/12。此方式為同步方式;工作在方式2時(shí)為異步方式,其波率為晶振頻率:①SMOD=0時(shí),波特率為:晶振頻率/64;②當SMOD=1時(shí),波特率為:晶振頻率/32;串行接口工作方式為1,3時(shí)為異步方式且其波特率是可變的,除了與SMOD位的取值有關(guān)外,主要取決于定時(shí)器1的溢出率。波特率可由下式確定:
而定時(shí)器1的溢出率又由計數速率和定時(shí)時(shí)間預置數X決定,即:
此時(shí)T1工作方式2,即8位自動(dòng)裝載方式。這種方式可以避免通過(guò)中斷服務(wù)程序來(lái)重新裝入初值,所得波特率也比較精確。式中X即為在TH1和TL1中裝入的初始計數值。定時(shí)器1的計數速率與定時(shí)器工作方式的選擇有關(guān)。當選定T1為定時(shí)工作方式時(shí),其計數輸入脈沖為內部時(shí)鐘信號,即每個(gè)機器周期使寄存器值加1。而每個(gè)機器周期為12個(gè)振蕩周期,故計數速率為晶振頻率的1/12。因此
由于本擴展鍵盤(pán)與顯示處理機的串行通訊為異步方式,所以設置他的串行接口的工作方式為方式1,定時(shí)器1的工作方式為方式2。再根據波特率要求(9 600 b/s)求他的預置值。若系統晶體的振蕩頻率12 MHz時(shí),當SMOD選為1時(shí),TH1,TL1的初值計算如下:
解上式可得:X1=250(FAH)或X2=249(F9H)
將X置入TH1,TL1時(shí),波特率發(fā)生器產(chǎn)生的實(shí)際的傳輸速率為:
或 波特率2=8 928.57 b/s,波特率誤差2=7%
無(wú)論置入哪個(gè)數,PC機與單片機之間均無(wú)法完成正常的通訊。
若采用11.059 2 MHz晶振,按照上面公式計算出X=250 FAH,實(shí)際的傳輸速率為9 599.83 b/s,其誤差為0.001 77%,PC機與單片機的通訊可正常進(jìn)行。
另外,SMOD位的選擇有時(shí)也能影響波特率的誤差。
因此在波特率設置時(shí),對SMOD位的選取也需慎重考慮。
設計按鍵陣列時(shí),應采用標準鍵盤(pán)的導電橡膠薄膜按鍵陣列,避免使用壽命短、常出現接觸不良現象的老式鍵。
6 結語(yǔ)
此鍵盤(pán)功能設計還可進(jìn)一步細化,如實(shí)現大寫(xiě)鎖定、小鍵盤(pán)鎖定等。由于鍵盤(pán)與主機通訊數據量不大,故未采用USB口與主機通訊。稍加修改,完全可以用USB口與主機通訊。若此鍵盤(pán)用于一些不采用串行通訊的系統中時(shí),可直接用TTL電平相連,省掉ICL232CPE芯片,電路更簡(jiǎn)單,且P3口可采用并行輸出。
參考文獻
[1]何立民.MCS-51系列單片機應用系統設計[M].北京:北京航空航天大學(xué)出版社,1990.
[2]張友德.單片微型機原理、應用與實(shí)驗[M].上海:復旦大學(xué)出版社,2000.
[3]何立民.單片機應用技術(shù)選編(1)[M].北京:北京航空航天大學(xué)出版社,1992
評論