□ 梁 剛 胡 燕
對于現代儀器設備而言,便捷可靠的人機交互方式是必不可少的,其中最常見的就是由鍵盤和數碼管組合提供的交互方式。在研制某型訓練器材的過程中,為了實現對其中一個人機交互界面的模擬,必須要同時完成對多達13個七段數碼管、6個LED燈以及16個按鍵的組合控制。要解決這個問題,在常見的由分立元件實現的電路中,要涉及譯碼、循環掃描、鍵盤消抖等諸多環節,型號繁多的外圍器件混合使用,一方面增加了主控芯片I/O口線的占用,同時也容易使系統整體可靠性下降。面對這些問題,最好的解決辦法就是采用顯示、鍵盤功能兼備的芯片,而由Maxim公司出品的MAX6954就是這樣一種芯片。
MAX6954是一種采用四線串行接口的LED驅動器,可以控制七段數碼管、14段數碼管、16段數碼管以及多達16×8位的LED點陣顯示器(或相同數量的分立LED燈),并可通過串行端口進行級聯,此外,該芯片針對數碼管及LED的顯示特點,提供了設置方便的亮度設置及閃爍控制等功能。在鍵盤控制方面,該芯片包括了5個I/O擴展端口(GPIO)以及可對這些端口進行設置以便對32個按鍵進行自動掃描和消抖操作的控制邏輯電路。
(一)芯片的基本硬件特性。MAX6954的工作電源電壓涵蓋了2.7V到5.5V。因此,可以直接用于典型的3.3V電源電壓控制系統和5V電源電壓控制系統,具有良好的電源適用性。該芯片的外部引腳按照功能可劃分為五大類:分別是電源引腳、SPI四線通信引腳、段/位驅動引腳、GPIO引腳、以及其他輔助引腳。
作為一種鍵盤顯示擴展芯片,MAX6954與系統主控芯片之間的通信是通過兼容SPI的四線串行接口實現的,包括三個輸入口:時鐘引腳CLK,片選引腳和數據輸入腳DIN,以及一個數據輸出腳DOUT。
(二)兼容SPI的四線端口的使用。在應用該鍵盤顯示擴展芯片時,用戶最需要注意的就是這個SPI口的特性,在掌握了其工作時序和數據格式之后,再對芯片內部寄存器的功用加以熟悉,也就基本掌握了這種芯片的使用方法。
這四個引腳有以下一些地方需要注意:第一,在數據及時鐘輸入或輸出該器件的時候,ˉCˉS必須保持低電平,也就是主控芯片必須為ˉCˉS引腳提供最高不超過0.6V的電平。第二,當器件在CLK時鐘上升沿對DIN采樣的時候,DIN信號必須保持穩定。第三,雖然SPI協議規定當MAX6954不可讀寫時(也就是ˉCˉS為高電平時),DOUT引腳應該處于高阻態,但是MAX6954的DOUT引腳卻不會如此,因此,如果將多個MAX6954的DOUT引腳并聯使用,會出現意想不到的情況。
(一)硬件部分方案。在某型訓練器材當中,有關人機交互的部分要求實現對13個七段數碼管、6個LED燈以及16個按鍵的控制,我們采用了兩片MAX6954分別控制顯示部分和按鍵部分的方案,這樣,雖然增加了一個芯片,但是芯片屬于同一種型號,并未增加系統的復雜性,而且,將顯示輸出與鍵盤輸入分開,更有利于主控程序流程的清晰、明了。本方案中,有關MAX6954顯示部分的電路如圖1、圖2所示:

圖2 顯示部分圖2
在該電路中,所有的七段數碼管均采用共陰型。與其他常見的驅動器不同,MAX6954的驅動引腳數量較少,它是通過利用一種將部分端口交替作為陽極和陰極驅動器的多路開關技術來實現這一點的。
在上面的電路圖中,引腳O0到O7作為共陰數碼管的位驅動,用于確定是否顯示某一位,O0到O18則用于確定數碼管的某個段是否點亮。在上面的電路中,每兩位數碼管共用一個位驅動,這兩位數碼管的每一個段則由MAX6954的不同驅動腳驅動,因此,不會出現共用一個位驅動的兩位數碼管顯示完全一樣的情況。對于單獨的六個LED管,也采用了與七段數碼管相同的辦法,將其中的每一個LED看作是數碼管中的一個段,這樣,就同時實現了對數碼管和單獨的LED的有效驅動。圖3、圖4是本方案中的鍵盤驅動部分硬件(鍵盤為普通行列鍵盤)連接圖。

圖3 鍵盤部分圖1

圖4 鍵盤部分圖2
從對MAX6954的功能描述中可以知道,該芯片通過P0到P3引腳以及O0到O7引腳的組合來實現對按鍵的掃描,其中P0到P3負責列掃描,O0到O7負責行掃描。由于本方案中用到的按鍵共有16個,因此,只需要P0和P1兩個列掃描引腳即可實現,另外,為了防止多個按鍵被同時按下時,引起行掃描引腳短路(O0到O7引腳都是輸出引腳,短路容易引起引腳損壞),因此,需要在按鍵上串聯二極管。另外,GPIO引腳中的P4引腳作為中斷輸出引腳,當有按鍵被按下時,該引腳會向主控制器發出中斷信號,以便主控制器及時讀取相應的鍵值。另外,在硬件設計方面還有以下幾點需要注意:一是MAX6954要想正常工作必須有時鐘源,在本方案中,采用了內部時鐘;二是為了避免信號反射,在SPI通信口的四根口線引腳上必須加上電容,在本方案中,電容值確定為33pF,實驗證明,通信穩定可靠。
(二)軟件部分方案。軟件部分包括初始化、數碼管數據顯示、閃爍顯示、鍵盤處理程序等,下面對該模擬訓練器材方案中的初始化部分和鍵盤處理部分加以介紹。
1.芯片初始化。在本系統的軟件部分,首先根據系統的實際需求,對MAX6954的相應寄存器進行了設置。設置流程如下所示:
Spi_6954(0x06,0x80);//設置32鍵掃描模式,P4設置為中斷輸出,P0至P3為輸出。
Spi_6954(0x08,0xff);//設置P0口連接的所有按鍵按下后均可引起MAX6954的中斷輸出
Spi_6954(0x09,0xff);//設置P1口連接的所有按鍵按下后均可引起MAX6954的中斷輸出
Spi_6954(0x0a,0x00);//設置P2口連接的所有按鍵按下后不能引起中斷輸出
Spi_6954(0x0b,0x00);//設置P3口連接的所有按鍵按下后不能引起中斷輸出
Spi_6954(0x04,0x01);//正常工作模式
Spi_6954(0x02,0x1f);//設置最大亮度
Spi_6954(0x01,0x00);//單一點亮模式
Spi_6954(0x03,0x07);//設置為8對七段數碼管顯示模式。
具體初始化設置過程可根據實際情況加以增減。
2.鍵盤處理程序。在本系統中,當有按鍵按下時,MAX6954會通過P4引腳向主芯片發出中斷信號,當主芯片響應中斷后,會在中斷程序里設置相應的標志變量并退出。在主程序中,檢測到標志變量發生改變后,會向MAX6954發出讀回鍵值的命令。以處理P0連接的按鍵為例,讀回鍵值的流程圖如5所示。

圖5 讀回鍵值流程圖
該技術方案應用于某型偵察模擬訓練器材的人機界面部分,實現了良好的顯示和鍵盤控制。實踐證明,利用MAX6954設計的顯示和鍵盤控制電路結構簡單、功能可靠,有非常廣闊的應用前景。
[1]溫德爾;謝運祥、王曉剛譯.LED驅動電路設計[M].北京:人民郵電出版社,2009
[2]馮先成.單片機應用系統設計[M].北京:北京航空航天大學出版社,2009