新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于51單片機的異步串行接口鍵盤設計

        基于51單片機的異步串行接口鍵盤設計

        作者: 時間:2011-10-13 來源:網絡 收藏

        在信息處理系統中,顯示分系統是整個系統的人機界面。顯示器畫面呈現出的態勢圖形和數據,是人們決策的重要依據。人工干預手段則是將人們的決策變為系統所能接收信息的必不可少的工具。因此人工干預手段的多寡及有效度直接影響著整個系統的有效度。特別是在處理信息量大,人機交互頻繁的系統中,對人工干預手段的要求更高。

        筆者結合工作實際,圍繞單片機89C51設計了通用接口鍵盤作為顯示分系統的擴展鍵盤。目的在于為顯示分系統增加一種干預手段。實踐表明:此鍵盤改善了系統的人機界面,提高了系統的處理效率。

        1 設計要求與工作原理

        1.1 設計要求

        (1)擴展鍵盤鍵位編碼符合顯示分系統的約定。  
        (2)擴展鍵盤與顯示處理機通訊通過其接口來完成,波特率為9600 b/s。
        (3)擴展鍵盤與顯示處理機通訊的接口電平為RS232C標準。
        (4)波特率相對誤差應小于2.5%。
        (5)擴展鍵盤的電源要求:直流+5 V。
        (6)擴展鍵盤的環境溫度要求:-100~+500°C。

        1.2 工作原理

        擴展鍵盤工作原理如圖1所示。擴展鍵盤通過異步串 行接口與顯示處理機相連,與標準鍵盤一起,顯示處理機便擁有2個鍵盤。2個鍵盤可同時向顯示處理機發出干預命令。因此,顯示分系統增加了一條輸入干預命令的新途徑,縮短了干預命令的輸入時間,提高了人工干預的效率。

        基于51單片機的異步串行接口鍵盤設計

        2 電路設計

        擴展鍵盤由以下幾部分組成:

        ①單片機89C51及時鐘、復位電路。
        ②TTL電平到RS232C電平轉換芯片ICL232CPE,此芯片只需直流+5 V電源。
        ③工作指示電路。
        ④鍵位陣列部分(8×13)。

        擴展鍵盤電原理圖如圖2所示。

        基于51單片機的異步串行接口鍵盤設計

        3 89C51的結構與性能特點

        89C51是MCS-51系列單片機的典型產品之一。其內部具有的硬件資源如圖3所示。

        基于51單片機的異步串行接口鍵盤設計

        ①4 kB可編程的E2PROM。
        ②面向控制的8 b CPU。
        ③128 B內部RAM數據存貯器。
        ④32 b雙向輸入/輸出線。
        ⑤1個全雙工的串行口。
        ⑥2個16 b定時器/計數器。
        ⑦5個中斷源,2個中斷優先級。
        ⑧時鐘發生器。
        ⑨可以尋址64 kB的程序存貯器和64 kB的外部數據存貯器。

        該鍵盤利用了89C51的片內E2PROM 作為程序存貯器,避免外擴存貯器占用單片機的輸入/輸出口資源;利用P3口的第二功能完成通訊功能;用一片ICL232CPE作為接口電平轉換芯片,便實現了鍵盤的全部硬件邏輯。硬件少,可靠性高。整個鍵盤采用+5 V直流電源;電路與鍵位陣列分離設計。本鍵盤還克服了以往鍵盤設計中鍵位少、不通用等缺點。

        4 軟件功能流程圖

        軟件實現鍵位掃描、消除抖動、鍵碼轉換、鍵碼發送等功能。另外軟件也實現了換檔、按鍵連發功能。軟件功能流程圖如圖4所示。

        基于51單片機的異步串行接口鍵盤設計

        5 應用中應注意的問題

        在異型機種的串行通訊中,當規定了傳輸速率后,MCS-系統中選取適當的晶體振蕩頻率至關重要。他與串行接口的工作方式、電源控制寄存器PCON的SMOD位、定時器T1一起決定著通訊的成敗。MCS- 51單 片機串行接口工作在方式0時,其波特率固定不變,其大小為:晶振頻率/12。此方式為同步方式;工作在方式2時為異步方式,其波率為基于51單片機的異步串行接口鍵盤設計晶振頻率:①SMOD=0時,波特率為:晶振頻率/64;②當SMOD=1時,波特率為:晶振頻率/32;串行接口工作方式為1,3時為異步方式且其波特率是可變的,除了與SMOD位的取值有關外,主要取決于定時器1的溢出率。波特率可由下式確定:

        基于51單片機的異步串行接口鍵盤設計

        而定時器1的溢出率又由計數速率和定時時間預置數X決定,即:

        基于51單片機的異步串行接口鍵盤設計

        此時T1工作方式2,即8位自動裝載方式。這種方式可以避免通過中斷服務程序來重新裝入初值,所得波特率也比較精確。式中X即為在TH1和TL1中裝入的初始計數值。定時器1的計數速率與定時器工作方式的選擇有關。當選定T1為定時工作方式時,其計數輸入脈沖為內部時鐘信號,即每個機器周期使寄存器值加1。而每個機器周期為12個振蕩周期,故計數速率為晶振頻率的1/12。因此

        基于51單片機的異步串行接口鍵盤設計

        由于本擴展鍵盤與顯示處理機的串行通訊為異步方式,所以設置他的串行接口的工作方式為方式1,定時器1的工作方式為方式2。再根據波特率要求(9 600 b/s)求他的預置值。若系統晶體的振蕩頻率12 MHz時,當SMOD選為1時,TH1,TL1的初值計算如下:

        基于51單片機的異步串行接口鍵盤設計

        解上式可得:X1=250(FAH)或X2=249(F9H)

        將X置入TH1,TL1時,波特率發生器產生的實際的傳輸速率為:

        基于51單片機的異步串行接口鍵盤設計

        或 波特率2=8 928.57 b/s,波特率誤差2=7%

        無論置入哪個數,PC機與單片機之間均無法完成正常的通訊。若采用11.059 2 MHz晶振,按照上面公式計算出X=250 FAH,實際的傳輸速率為9 599.83 b/s,其誤差為0.001 77%,PC機與單片機的通訊可正常進行。另外,SMOD位的選擇有時也能影響波特率的誤差。因此在波特率設置時,對SMOD位的選取也需慎重考慮。

        設計按鍵陣列時,應采用標準鍵盤的導電橡膠薄膜按鍵陣列,避免使用壽命短、常出現接觸不良現象的老式鍵。

        6 結語

        此鍵盤功能設計還可進一步細化,如實現大寫鎖定、小鍵盤鎖定等。由于鍵盤與主機通訊數據量不大,故未采用USB口與主機通訊。稍加修改,完全可以用USB口與主機通訊。若此鍵盤用于一些不采用串行通訊的系統中時,可直接用TTL電平相連,省掉ICL232CPE芯片,電路更簡單,且P3口可采用并行輸出。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 黄大仙区| 青铜峡市| 奎屯市| 原阳县| 宝坻区| 和平区| 田林县| 昭苏县| 禄劝| 山西省| 咸丰县| 天等县| 瑞丽市| 仲巴县| 禄劝| 申扎县| 兴业县| 新蔡县| 滕州市| 和龙市| 池州市| 友谊县| 游戏| 邻水| 宣城市| 墨玉县| 汝阳县| 山西省| 花垣县| 兴隆县| 彭州市| 新营市| 淮滨县| 松潘县| 额济纳旗| 民权县| 饶平县| 定结县| 华池县| 分宜县| 潜江市|