基于51單片機和FPGA的人機交互系統(tǒng)的設(shè)計
為使單片機的資源可以得到最大的開發(fā),將單片機的高端口,即P4~P7接入FPGA,并通過FPGA對外部設(shè)備進行訪問。在FPGA中通過Vel-ilog HDL語言編程實現(xiàn)了3-8譯碼器,從而實現(xiàn)了對單片機地址總線的擴展。該3-8譯碼器對LCD以及鍵盤的鍵值讀取提供使能信號,如圖2所示。
2.2 T6963C及其接口設(shè)計
T6963C液晶顯示控制器多用于小規(guī)模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內(nèi)藏控制器型圖形液晶顯示模塊的形式出現(xiàn)。
單片機對T6963C有2種訪問方式:直接訪問與間接訪問。直接訪問利用三總線以I/O設(shè)備訪問形式進行控制;間接訪問則由單片機提供并行接口,以程序控制時序的方式進行控制。為簡化程序,這里采用直接訪問方式。
該LCM的FS1引腳用于控制顯示字符的字體。FS1為高時,LCD顯示6x8字符;FS1為低時,LCD顯示8x8字符。經(jīng)實踐,在顯示英文與數(shù)字 時,6x8字符更為美觀;在顯示中文字符時,8x8字符更為方便。一般系統(tǒng)采用將FS1接地或接高的方式來固定字體,而本系統(tǒng)采用P2.1對FS進行控 制,通過改變地址實現(xiàn)改變字體的功能,使得界面的顯示更靈活。
2. 3 鍵盤電路設(shè)計
鍵盤是常用的單片機輸入設(shè)備,分為編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用硬件譯碼器實現(xiàn),并產(chǎn)生鍵編號或鍵值的稱為編碼鍵盤;靠軟件識別的稱為 非編碼鍵盤。在單片機組成的測控系統(tǒng)及智能化儀器中使用最多的是非編碼鍵盤,本系統(tǒng)設(shè)計在FPGA中編程實現(xiàn)3x6鍵盤的行掃描。
由于按鍵的機械特性,在閉合和斷開的瞬間會伴隨著一連串的抖動,鍵抖動會引起一次按鍵被誤讀多次,所以必須進行去抖處理,常用的方法為延時去抖動。 FPGA產(chǎn)生鍵值之后向單片機發(fā)送中斷,并等待單片機讀取鍵值。由于人腦反應(yīng)時間相對較長,鍵盤中斷可以處于相對較低的優(yōu)先級,因此本文將鍵盤中斷接于外 部中斷7。
3 軟件設(shè)計
軟件設(shè)計遵循結(jié)構(gòu)化和層次化的設(shè)計原則。底層函數(shù)直接與硬件溝通,而上層函數(shù)直接通過調(diào)用底層函數(shù)來實現(xiàn)相應(yīng)功能,從而使上層函數(shù)與硬件環(huán)境徹底分開。當硬件環(huán)境發(fā)生變化時,僅修改底層函數(shù)便能實現(xiàn)程序的移植。
3.1 液晶驅(qū)動模塊的編程設(shè)計
本模塊的底層函數(shù)需要實現(xiàn)寫控制字、寫參數(shù)、查忙等功能。由于采用直接訪問,寫控制字與寫參數(shù)的函數(shù)只需向控制口或數(shù)據(jù)口的地址送數(shù)即可。由于LCD是慢 速器件,因此在每次寫控制字及寫參數(shù)之前都需要進行查忙。T6963C的狀態(tài)字共有7位有效的狀態(tài)位,如表1所示。其中STA1~STA3最為常用,一般 情況下可以不需要對STA5~STA7進行杏忙的程序。
評論