国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于單片機(jī)和FPGA的人機(jī)交互系統(tǒng)的設(shè)計(jì)

2010-06-05 10:47:44鹿璇,曉,
電子設(shè)計(jì)工程 2010年9期
關(guān)鍵詞:液晶顯示字符鍵盤

鹿 璇, 宋 曉, 杜 沖

(武漢大學(xué) 電子信息學(xué)院,湖北 武漢 430079)

在現(xiàn)代各類儀器的開發(fā)中,人機(jī)交互功能正起著無可替代的作用。人機(jī)交互界面友好的儀器將更容易操作和使用,從而提高工作效率。液晶顯示器(LCD)具有功耗低、價(jià)格低、壽命長、接口控制方便等特點(diǎn),在科研與設(shè)計(jì)領(lǐng)域正發(fā)揮著越來越大的作用。FPGA作為單片機(jī)外設(shè)的接口芯片,可以大大簡化接口電路,通過對FPGA進(jìn)行編程,可以實(shí)現(xiàn)常用的譯碼、地址選通等功能。

本文以C8051F020單片機(jī)與FPGA互連系統(tǒng)為控制核心,以液晶顯示控制器T6963C為例,結(jié)合行掃描鍵盤,簡述了一種人機(jī)交互功能的設(shè)計(jì)。

1 系統(tǒng)設(shè)計(jì)方案

FPGA可在很大程度上擴(kuò)展單片機(jī)的資源,然而人機(jī)交互功能仍應(yīng)盡量減少對單片機(jī)及FPGA的資源消耗,以便將更多的片內(nèi)資源用于其他功能的擴(kuò)展。采用FPGA掃描鍵盤可以節(jié)省單片機(jī)的資源,同時(shí)也能靈活地實(shí)現(xiàn)鍵盤的擴(kuò)展。而考慮到液晶控制較復(fù)雜,依然采用單片機(jī)控制LCD,使LCD的各種功能得到最大程度的利用,其系統(tǒng)框圖如圖 1所示[1]。

圖1 系統(tǒng)總體框圖Fig.1 Block diagram of system

2 硬件電路及FPGA接口設(shè)計(jì)

2.1 總線接口設(shè)計(jì)

這里采用單片機(jī)C8051F020與CycloneⅡFPGA互連的系統(tǒng)。C8051F020器件是完全集成的混合信號系統(tǒng)級MCU芯片,具有64個(gè)數(shù)字I/O引腳,與8051完全兼容,而且速度得到了極大提高,70%的指令執(zhí)行時(shí)間為1或2個(gè)系統(tǒng)時(shí)鐘周期,只有4條指令的執(zhí)行時(shí)間大于4個(gè)系統(tǒng)時(shí)鐘周期。此外,C8051F020系列MCU對CIP-51內(nèi)核和外設(shè)有幾項(xiàng)關(guān)鍵性的改進(jìn),提高了整體性能,更易于在最終應(yīng)用中使用。如提供22個(gè)中斷源、7個(gè)復(fù)位源、可編程交叉開關(guān)、8位A/D轉(zhuǎn)換器、12位D/A轉(zhuǎn)換器等[2]。

CycloneⅡ系列FPGA將低功耗FPGA的密度規(guī)模擴(kuò)展至68 416個(gè)邏輯單元,并提供高達(dá)622個(gè)可用的I/O接口以及高達(dá)1.1 Mb的片內(nèi)存儲單元[3]。CycloneⅡ系列成功實(shí)現(xiàn)了高效與低功耗的結(jié)合,可用于自動化、通信、視頻播放等領(lǐng)域。為兼顧成本問題,本系統(tǒng)采用性價(jià)比較高的EP2C8型FPGA作為接口器件。

為使單片機(jī)的資源可以得到最大的開發(fā),將單片機(jī)的高端口,即P4~P7接入FPGA,并通過FPGA對外部設(shè)備進(jìn)行訪問。在FPGA中通過Verilog HDL語言編程實(shí)現(xiàn)了3-8譯碼器,從而實(shí)現(xiàn)了對單片機(jī)地址總線的擴(kuò)展。該3-8譯碼器對LCD以及鍵盤的鍵值讀取提供使能信號,如圖2所示。

圖2 總線模塊Fig.2 Bus module

2.2 T6963C及其接口設(shè)計(jì)

T6963C液晶顯示控制器多用于小規(guī)模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內(nèi)藏控制器型圖形液晶顯示模塊的形式出現(xiàn)[4]。

單片機(jī)對T6963C有2種訪問方式:直接訪問與間接訪問。直接訪問利用三總線以I/O設(shè)備訪問形式進(jìn)行控制;間接訪問則由單片機(jī)提供并行接口,以程序控制時(shí)序的方式進(jìn)行控制。為簡化程序,這里采用直接訪問方式。

該LCM的FS1引腳用于控制顯示字符的字體。FS1為高時(shí),LCD顯示6×8字符;FS1為低時(shí),LCD顯示8×8字符。經(jīng)實(shí)踐,在顯示英文與數(shù)字時(shí),6×8字符更為美觀;在顯示中文字符時(shí),8×8字符更為方便。一般系統(tǒng)采用將FS1接地或接高的方式來固定字體,而本系統(tǒng)采用P2.1對FS進(jìn)行控制,通過改變地址實(shí)現(xiàn)改變字體的功能,使得界面的顯示更靈活。

2.3 鍵盤電路設(shè)計(jì)

鍵盤是常用的單片機(jī)輸入設(shè)備,分為編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用硬件譯碼器實(shí)現(xiàn),并產(chǎn)生鍵編號或鍵值的稱為編碼鍵盤;靠軟件識別的稱為非編碼鍵盤。在單片機(jī)組成的測控系統(tǒng)及智能化儀器中使用最多的是非編碼鍵盤,本系統(tǒng)設(shè)計(jì)在FPGA中編程實(shí)現(xiàn)3×6鍵盤的行掃描。

由于按鍵的機(jī)械特性,在閉合和斷開的瞬間會伴隨著一連串的抖動,鍵抖動會引起一次按鍵被誤讀多次,所以必須進(jìn)行去抖處理,常用的方法為延時(shí)去抖動。FPGA產(chǎn)生鍵值之后向單片機(jī)發(fā)送中斷,并等待單片機(jī)讀取鍵值。由于人腦反應(yīng)時(shí)間相對較長,鍵盤中斷可以處于相對較低的優(yōu)先級,因此本文將鍵盤中斷接于外部中斷7。

3 軟件設(shè)計(jì)

軟件設(shè)計(jì)遵循結(jié)構(gòu)化和層次化的設(shè)計(jì)原則[5]。底層函數(shù)直接與硬件溝通,而上層函數(shù)直接通過調(diào)用底層函數(shù)來實(shí)現(xiàn)相應(yīng)功能,從而使上層函數(shù)與硬件環(huán)境徹底分開。當(dāng)硬件環(huán)境發(fā)生變化時(shí),僅修改底層函數(shù)便能實(shí)現(xiàn)程序的移植。

3.1 液晶驅(qū)動模塊的編程設(shè)計(jì)

本模塊的底層函數(shù)需要實(shí)現(xiàn)寫控制字、寫參數(shù)、查忙等功能。由于采用直接訪問,寫控制字與寫參數(shù)的函數(shù)只需向控制口或數(shù)據(jù)口的地址送數(shù)即可。由于LCD是慢速器件,因此在每次寫控制字及寫參數(shù)之前都需要進(jìn)行查忙。T6963C的狀態(tài)字共有7位有效的狀態(tài)位,如表1所示[4]。其中STA1~STA3最為常用,一般情況下可以不需要對STA5~STA7進(jìn)行查忙的程序。

表1 T6963C的狀態(tài)字Tab.1 Status word of T6963C

3.1.1 液晶驅(qū)動模塊的初始化

T6963C的最大特點(diǎn)是具有獨(dú)特的硬件初始值設(shè)置功能,顯示驅(qū)動所需的參數(shù)如占空比系數(shù)。驅(qū)動傳輸?shù)淖止?jié)數(shù)/行及字符的字體選擇等均由引腳電平設(shè)置,這樣T6963C的初始化在上電時(shí)就已經(jīng)基本設(shè)置完成,軟件操作的重心就可以全部用于顯示畫面的設(shè)計(jì)上[6]。因此,初始化時(shí)僅需根據(jù)實(shí)際情況設(shè)置文本區(qū)域和圖形區(qū)域的首地址和寬度,以及CGRAM偏置地址、合成方式、光標(biāo)形狀等即可正常使用。

液晶驅(qū)動模塊的初始化函數(shù)如下:

3.1.2 英文及漢字的文本顯示

由于英文及數(shù)字等常用字符的字模已經(jīng)固化在CGROM中,因此進(jìn)行英文的顯示時(shí),只需指定顯示的地址,再輸入該字符對應(yīng)的標(biāo)號即可。漢字的顯示與英文的顯示類似。然而出于其復(fù)雜性,一個(gè)漢字需要使用4組點(diǎn)陣才能完整顯示。在初始化后將漢字的4部分字模順序輸入CGRAM中,在使用時(shí)僅需計(jì)算好每一部分的顯示地址即可對漢字進(jìn)行完美顯示。

對于一串英文字符的輸入,可以利用字符串的特性進(jìn)行操作。通過檢測‘

科尔| 六盘水市| 永善县| 广平县| 囊谦县| 南溪县| 枞阳县| 津南区| 平远县| 五寨县| 遂平县| 牟定县| 临江市| 澄江县| 本溪市| 平阴县| 松潘县| 同德县| 贡觉县| 淳化县| 新兴县| 乐陵市| 鄂托克前旗| 阜宁县| 鄂尔多斯市| 盐山县| 霍城县| 凯里市| 依安县| 佛学| 平潭县| 日喀则市| 怀集县| 肥乡县| 鄄城县| 托里县| 乳山市| 化州市| 兴义市| 仁布县| 龙里县|