《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > ARM7的鍵盤與VFD顯示器接口技術
ARM7的鍵盤與VFD顯示器接口技術
摘要: 筆者綜合考慮了成本、實現(xiàn)的難易程度、功能以及穩(wěn)定性等方面的要求,提出了一種實現(xiàn)起來較容易且具有較高對比度和精度的VFD顯示的方法。
Abstract:
Key words :

  引 言

  儀表行業(yè)以及工業(yè)生產(chǎn)過程對實時性、處理速度、智能化等方面有了更高的要求,而ARM微處理器具有功耗低、指令吞吐量高、實時中斷響應、處理器宏單元性價比高等特點,因此,將ARM微處理器引入產(chǎn)品和工業(yè)生產(chǎn)的開發(fā)設計中已經(jīng)成為一種必然趨勢。

  在工業(yè)控制和產(chǎn)品設計中,一般都要求具有供操作的鍵盤和可視化界面。傳統(tǒng)顯示模塊的設計一般都是采用I/O口外擴驅(qū)動電路連接而成,顯示器一般都采用LED或LCD,要么成本低但實現(xiàn)起來比較復雜,要么實現(xiàn)起來簡單成本卻很高。筆者綜合考慮了成本、實現(xiàn)的難易程度、功能以及穩(wěn)定性等方面的要求,提出了一種實現(xiàn)起來較容易且具有較高對比度和精度的VFD顯示的方法。

  1 硬件電路的實現(xiàn)

  考慮到未來市場對功耗、處理速度、實時性、多功能、多任務處理等方面會有更高的要求,本設計采用基于周立功公司MiniARM的M2020—FNU20嵌入式核心板(微處理器為LPC2220)及其M22A開發(fā)板。M22A開發(fā)板的板上資源主要有:

  ◆μC/OS—II實時操作系統(tǒng);

  ◆TCP/IP協(xié)議、FAT32文件管理系統(tǒng);

  ◆UART、I2C、SPI通信接口;

  ◆JTAG接口支持在線調(diào)試;

  ◆工業(yè)級10M以太網(wǎng)控制接口CSB900A—IQ;

  ◆2 MB NOR Flash程序存儲器等。

  另外,現(xiàn)代工業(yè)控制和產(chǎn)品生產(chǎn)大都需要可供操作的鍵盤以及可視化界面。本設計采用HTl6511芯片驅(qū)動鍵盤和顯示??紤]到工業(yè)生產(chǎn)中各種不利環(huán)境的影響,本設計采用具有較高對比度,且具有很好的可靠性與環(huán)境適應性的VFD(真空熒光顯示器)進行顯示。HTl6511是一個典型的VFD驅(qū)動芯片,由5個led輸出口、1個控制電路、1個顯示存儲器(內(nèi)部)和1個按鍵掃描電路組成。微處理器通過三線串行接口對HTl6511進行串行數(shù)據(jù)輸入、輸出。圖1是系統(tǒng)硬件電路框圖,主要包括LPC2220與驅(qū)動芯片HTl6511的連接。HTl6511與VFD顯示器的連接,使用HTl6511外擴的12×4的按鍵掃描電路以及指示燈和開關電路。

系統(tǒng)硬件電路框圖

  2 軟件設計

  軟件采用模塊化設計方法,使用基于優(yōu)先級的系統(tǒng)調(diào)度法來實現(xiàn)各個模塊。每個模塊設置為一個任務,如taskO為讀鍵值模塊,taskl為顯示模塊等。給每個模塊設置一個固定的優(yōu)先級,當任務執(zhí)行完后自動掛起,掛起的時間長短可以自己設定。任務掛起后進入等待狀態(tài),掛起時間一到,任務自動進入就緒狀態(tài)。

  開發(fā)板內(nèi)嵌了μC/0S—II實時操作系統(tǒng)。本設計采用可剝奪型內(nèi)核。若系統(tǒng)正在執(zhí)行一個優(yōu)先級較低的任務,且有一個或多個優(yōu)先級較高的任務就緒時,優(yōu)先級較低的任務將被打斷,去執(zhí)行優(yōu)先級最高的任務。執(zhí)行完成后,系統(tǒng)不會馬上返回中斷的地方,而是執(zhí)行當前就緒任務中具有最高優(yōu)先級的任務;當沒有更高優(yōu)先級任務就緒時,系統(tǒng)才返回原來中斷的地方。若程序中某些模塊(如讀鍵值、推顯等)不希望被打斷,就需要在進入該模塊的開始處關閉中斷,執(zhí)行完后再打開中斷。以下是各個功能模塊的實現(xiàn)。

  2.1 HTl6511的讀/寫程序

  圖2為HTl6511的數(shù)據(jù)讀/寫時序。其中,tcw為時鐘脈沖寬度,最小值為400 ns;tsu為數(shù)據(jù)上傳時間,最小值為100 ns;th是數(shù)據(jù)保持時間,最小值為lOO ns;tcs為時鐘調(diào)整時間,最小值為1μs;tph1和tplh都是數(shù)據(jù)傳遞延遲時間,tph1最大值為300 ns,tplh最大值為100 ns。

HTl6511的數(shù)據(jù)讀

  從圖2中可以看出,讀/寫數(shù)據(jù)時必須置CS為低;寫數(shù)據(jù)(D1)過程中,在時鐘(CLK)的下降沿往數(shù)據(jù)線上送數(shù),送完數(shù)后需要將CLK置高,且要保持一個tcw的時間;在讀數(shù)據(jù)時,需要先將CLK置高一段時間,然后再拉低一段時間,才開始從數(shù)據(jù)線上讀取數(shù)據(jù)。

  以下程序為向HTl6511寫一個字符:

程序

程序

  2.2 主要驅(qū)動程序

  驅(qū)動程序主要包括顯示驅(qū)動和按鍵驅(qū)動。

  圖3為HTl65l1的顯示驅(qū)動一般命令時序。圖中,命令1設置顯示模式;命令2設置讀/寫數(shù)據(jù)模式;命令3設置讀/寫數(shù)據(jù)的起始地址;數(shù)據(jù)1到n為需要讀/寫的數(shù)據(jù);命令4設置VFD的顯示亮度。

HTl65l1的顯示驅(qū)動一般命令時序

  顯示驅(qū)動程序主要包括向HTl6511寫命令和寫控制顯示的數(shù)據(jù);而按鍵驅(qū)動程序則主要是從HTl6511讀取鍵值,再拼接為有效鍵值。由圖3中時序可知,應先設置顯示模式,然后設置讀/寫數(shù)據(jù)模式和讀/寫數(shù)據(jù)的起始地址,再發(fā)送數(shù)據(jù),最后設置顯示亮度。每發(fā)送一個命令或數(shù)據(jù)之后都需要一段延時。

  顯示驅(qū)動程序為:

程序

程序

程序

  結(jié) 語

  在實際應用中,只需要將HTCS、HTCLK、HTD0、HTDI定義為微處理器的一般雙向I/O口。根據(jù)使用的VFD真值表確定顯示數(shù)據(jù)或字母的字形碼。用一個數(shù)組disp口來存儲這些字形碼,并使用上述的update_disp()函數(shù)將數(shù)組發(fā)送到HTl6511驅(qū)動芯片,即可完成顯示。對于按鍵掃描,使用read_key()函數(shù)已經(jīng)讀到按鍵值,并放在data寄存器中。

 

  本設計采用ARM微處理器實現(xiàn)了多功能鍵盤顯示,具有實現(xiàn)容易、性價比高、顯示精度高、顯示對比度高、反應速度快等優(yōu)點。因此,該設計適用于很多要求較高的工業(yè)應用場合。HTl6511的驅(qū)動模塊適用于各種類型的微處理器。本設計采用ARM7微處理器來實現(xiàn),主要是考慮到現(xiàn)代產(chǎn)品和工業(yè)過程設計中對功耗、處理速度以及功能的高要求。本設計具有一定的通用性,適應工業(yè)生產(chǎn)發(fā)展的總趨勢。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。