隨著科學(xué)技術(shù)日益的發(fā)展,廣播電視設(shè)備的國產(chǎn)化程度也越來越高。在一個性能優(yōu)良的廣播電視系統(tǒng)中,友好的中文人機交互界面也尤為重要。
本文設(shè)計了一種廣播電視系統(tǒng)人機交互界面系統(tǒng),以滿足“數(shù)字立體聲調(diào)頻調(diào)制器”顯控要求為前提,采用MSP430F149單片機作為系統(tǒng)的MCU ;液晶屏為滿足漢字4行11列、字母4行22列顯示要求的LCM168651顯示模塊;并滿足用戶通過鍵盤輸入的方式進行工作參數(shù)設(shè)置和工作狀態(tài)查詢的人機交互要求。
1.系統(tǒng)組成
本系統(tǒng)主要由三個模塊組成,即以MSP430F149單片機為核心的MCU;以LCM168651為主要部件的菜單顯示模塊;以及以ZLG7289B為主的鍵盤掃描管理模塊。
1.1 單片機控制模塊
本系統(tǒng)中單片機控制模塊主要完成顯示、控制信息的采集、處理以及與“數(shù)字立體聲調(diào)頻調(diào)制器”其他分系統(tǒng)之間的通信。選型要求主要考慮以下幾個方面:
·低功耗;
·具有豐富的I/O端口及定時、中斷功能;
·3v左右的工作電壓;
·至少一個串行通信接口;
·大于8KB的存儲空間;
·基本時鐘模塊在4MHz以上;
·具有加密保護功能。
根據(jù)以上的要求,我們選用TI公司推出的超低功耗Flash型16位RISC指令集單片機MSP430F149。根據(jù)其主要性能特點,完全可以滿足設(shè)計要求。
1.2 菜單顯示模塊
菜單顯示模塊主要完成系統(tǒng)信息的時時顯示功能,并能在鍵盤控制下滾動顯示不同的信息。“數(shù)字立體聲調(diào)頻調(diào)制器”在顯示模塊主要有以下要求:
·同時顯示信息滿足至少漢字3行10列;·可卷動顯示系統(tǒng)信息;
·并串行接口,電路簡單;·5v以內(nèi)工作電壓;·顯示清晰無光斑,抗干擾能力強
我們設(shè)計選用北京青云公司的圖形點陣液晶模塊LCM168651,該模塊屬于被動顯示,受外界光線干擾小,不產(chǎn)生電磁干擾,顯示內(nèi)容清晰,分辨率高。
1.3 鍵盤控制模塊
鍵盤控制模塊是人機交互界面的重要組成模塊,滿足用戶通過鍵盤輸入的方式進行工作參數(shù)的設(shè)置和工作狀態(tài)的查詢?!皵?shù)字立體聲調(diào)頻調(diào)制器”對該模塊的主要要求是:
·控制鍵盤的數(shù)量最少6個;·易于與微控制系統(tǒng)連接;·可靠性高。
我們設(shè)計選用廣州周立功單片機發(fā)展有限公司自行設(shè)計的數(shù)碼管顯示驅(qū)動及鍵盤掃描管理芯片ZLG7289B,可直接驅(qū)動8位共陰式數(shù)碼管,還可以掃描管理多達64只按鍵。該芯片與微控制系統(tǒng)的工作電壓都可以控制在3v左右,避免了與微控制系統(tǒng)之間電平不匹配問題。
2 系統(tǒng)硬件設(shè)計
2.1 系統(tǒng)原理框圖
為了便于對系統(tǒng)工作原理的理解,這里首先給出系統(tǒng)的原理框圖,如圖1所示。
圖1 系統(tǒng)原理框圖
系統(tǒng)中MSP430F149單片機為微控制器,由其分配系統(tǒng)資源與液晶顯示模塊使用并行總線進行通信、與鍵盤控制模塊使用SPI串行總線進行通信。微控制器的程序?qū)懭爰罢{(diào)試采用在線編程模式進行,系統(tǒng)使用5v電源供電,系統(tǒng)時鐘為4MHz。
系統(tǒng)的工作原理可以概述為兩個方面:一方面微控制器通過擴展接口時時接收來自“數(shù)字立體聲調(diào)頻調(diào)制器”系統(tǒng)的狀態(tài)信息,這些狀態(tài)信息微控制器在微控制器內(nèi)部以不同的變量形式予以體現(xiàn),微控制器再將這些變量通過并行總線提供給液晶顯示模塊修改相應(yīng)的顯示參數(shù),以完成系統(tǒng)信息的顯示及更新工作;另一方面,微控制器以查詢的方式檢測鍵盤控制模塊是否有控制請求,當有控制請求時,微控制器根據(jù)鍵值的不同對液晶顯示模塊發(fā)出不同的指令,以更換顯示內(nèi)容或修改系統(tǒng)參數(shù),更換顯示內(nèi)容即工作狀態(tài)的查詢,當修改系統(tǒng)參數(shù)時,微控制器還負責將修改過的系統(tǒng)參數(shù)傳遞給“數(shù)字立體聲調(diào)頻調(diào)制器”系統(tǒng)。
2.2 液晶顯示原理
LCM168651是一種圖形點陣液晶,該模塊將液晶芯片與控制芯片集成在一起,與外界的聯(lián)系是以一系列接口的形式出現(xiàn)的。下面著重介紹一下該模塊的具體使用方法。
液晶屏幕被劃分為168*65個點陣,每個漢字需要占據(jù)16*16個點陣,字符或數(shù)字占據(jù)8*16個點陣,可見滿屏顯示時最多可以顯示漢字4行11列或字符、數(shù)字4行22列。
漢字或字符、數(shù)字的字庫可以從國標字庫中查閱,也可以利用專門的軟件分別生成所需要的漢字或字符,本設(shè)計使用的方法就是后者。所使用的軟件是ZIMO21.EXE,該軟件可以根據(jù)使用者的需要一次獲取一個或多個漢字或字符的字庫,基本操作如下:
漢字 圖像上下顛倒 C51取膜 前后16個字節(jié)交換
字母或者數(shù)字 圖像上下顛倒 C51取膜 前后8個字節(jié)交換。
例如:顯示漢字——廣播電視(宋體12號字,ZIMO21.EXE的默認設(shè)置),使用者可以直接在ZIMO21.EXE軟件中鍵入“廣播電視”,設(shè)置“圖像上下顛倒”,選擇“C51取膜”,則漢字“廣播電視”的字庫便生成了。如下所示:
/*—— 文字: 廣 ——*/
/*—— 宋體12; 此字體下對應(yīng)的點陣為:寬x高=16x16 ——*/
0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFC,0x04,0x04,0x04,0x04,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x00
/*—— 文字: 播 ——*/
/*—— 宋體12; 此字體下對應(yīng)的點陣為:寬x高=16x16 ——*/
0x42,0x81,0x7F,0x00,0x01,0x01,0xFF,0x49,0x49,0x7F,0x49,0x49,0xFF,0x01,0x00,0x00,
0x08,0x08,0xFF,0x88,0x48,0x12,0x96,0x5A,0x32,0xFE,0x31,0x59,0x95,0x91,0x90,0x00
/*—— 文字: 電 ——*/
/*—— 宋體12; 此字體下對應(yīng)的點陣為:寬x高=16x16 ——*/
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
/*—— 文字: 視 ——*/
/*—— 宋體12; 此字體下對應(yīng)的點陣為:寬x高=16x16 ——*/
0x02,0x01,0x00,0xFF,0x00,0x87,0x42,0x21,0x18,0x06,0x01,0x3E,0x40,0x43,0x70,0x00,
0x08,0x08,0x89,0x4E,0xAA,0x18,0x00,0xFE,0x02,0x02,0xFA,0x02,0x02,0xFE,0x00,0x00,
將各個漢字的字庫“前后16個字節(jié)交換”之后按一定順序存儲到特定的數(shù)組chinese[]中,每個漢字字庫第一個字節(jié)在數(shù)組中的位置就是該漢字的序號。此時字庫就建立完畢。下面的工作就是將漢字顯示到液晶屏幕的指定位置上,步驟:1)初始化液晶模塊;2)設(shè)置漢字在屏幕的位置坐標(X、Y);3)將漢字字庫信息通過并口逐個傳遞給液晶模塊進行顯示。
上述過程1)是以向液晶模塊寫入一系列命令字的形式完成的;2)、3)步驟一般則是以自命名函數(shù)的形式完成的,比如本方案中使用disp_Chinese[X,Y,Number]來完成,其中X,Y代表屏幕坐標,Number代表漢字在數(shù)組中的位置。設(shè)計過程中可以根據(jù)需要設(shè)置漢字的字體、大小等參數(shù),以達到美觀的藝術(shù)效果。
2.3 鍵盤控制原理
本設(shè)計中在鍵盤控制模塊主要使用了ZLG7289B ,該芯片可直接驅(qū)動8 位共陰式數(shù)碼管(或64 只獨立LED),同時還可以掃描管理多達64 只按鍵。
ZLG7289B外圍電路簡單,與微控制器系統(tǒng)之間只需要三根線CS、CLK、DIO,即所謂的SPI串行總線的模式即可進行通信,擴展使用非常方便,在掃描鍵盤時,已經(jīng)采取了消抖動措施,因此在程序中不必另外編寫消抖動,非常適合于本方案設(shè)計的需要。
其基本原理如下:某個按鍵按下時,ZLG7289B 的INT 引腳會出現(xiàn)低電平,向微控制器發(fā)出中斷請求。微控制器既可以采用中斷方式處理,也可以采用查詢/INT 引腳電平狀態(tài)的方法處理。在/INT 引腳出現(xiàn)低電平時及時地讀取鍵值。讀取鍵值后,/INT引腳并不會自動恢復(fù)為高電平,一定要等到按鍵抬起為止。如果沒有及時讀取按鍵值,則按鍵抬起后INT 引腳也將恢復(fù)到高電平,而在INT 引腳處于高電平期間,試圖去讀取鍵值將可能得不到有意義的數(shù)據(jù)。按鍵K0~K5分別對應(yīng)鍵值0~5,微控制器即可根據(jù)鍵值的不同作出不同的處理。
3 系統(tǒng)軟件設(shè)計
前面已經(jīng)提到,系統(tǒng)的工作過程實際上是微控制器不斷地根據(jù)外界信息調(diào)整液晶顯示內(nèi)容并傳遞信息的過程。下面給出系統(tǒng)的軟件流程圖2,并結(jié)合軟件流程詳細說明系統(tǒng)的功能和工作過程。
[align=center]
圖2 系統(tǒng)的軟件流程[/align]
說明:
系統(tǒng)初始化工作中最重要的工作是完成液晶基本工作模式的設(shè)置,主要包括顯示偏壓設(shè)置、對比度設(shè)置、工作時鐘源選擇、背景光設(shè)置等等;
由于微控制器系統(tǒng)的工作時鐘有兩種,即高頻時鐘和低頻時鐘,不同的時鐘模式對應(yīng)不同的設(shè)置方式,因此在使用之前必須進行時鐘的初始化;
顯示模塊主要顯示內(nèi)容有“開機畫面”、“主參數(shù)畫面”、“設(shè)置菜單”、6組“設(shè)置值”、6組“預(yù)設(shè)值”、“故障指示畫面”以一些子畫面;
系統(tǒng)開機后自動顯示“開機畫面”,開機畫面的顯示內(nèi)容可以根據(jù)需要調(diào)整;
“開機畫面”顯示一定時間之后(時間可設(shè)置,本設(shè)計中為30S)自動轉(zhuǎn)入“主參數(shù)畫面”進行顯示;主參數(shù)畫面顯示“數(shù)字立體聲調(diào)頻調(diào)制器”系統(tǒng)最重要的參數(shù),如載頻值、頻偏值、入射功率、反射功率、設(shè)頻開關(guān)狀態(tài)、左右聲道瞬時進度等;
在6組“設(shè)置值”和6組“預(yù)設(shè)值”菜單中,“上”、“下”鍵用于選擇,當進入某一個菜單后,“左”、“右”鍵用于選擇,“上”、“下”鍵用于參數(shù)值的改變;
在“主參數(shù)畫面”,如果有“確認”則系統(tǒng)轉(zhuǎn)入“設(shè)置菜單”,在此后的各級菜單中,如果長時間(時間可調(diào),本設(shè)計中為10秒)沒有操作,則系統(tǒng)自動轉(zhuǎn)入上一級菜單,直至返回“主參數(shù)畫面”畫面;
“設(shè)置菜單”,在此后的各級菜單中,如果有“取消”鍵,系統(tǒng)也自動轉(zhuǎn)入上一級菜單,直至返回“主參數(shù)畫面”畫面。
系統(tǒng)軟件流程中,除具有基本功能的控制外,還有一定的保護設(shè)置,比如看門狗設(shè)置等,在一定程度上避免了程序意外進入死循環(huán)的情況。
4 小結(jié)
通過實驗,證明了本文設(shè)計的中文人機交互界面系統(tǒng)較好地滿足了“數(shù)字立體聲調(diào)頻調(diào)制器”的顯示與控制要求。
由于本模塊在設(shè)計過程中重視了擴展性的思考和升級的需要,在主要元件的選擇及程序設(shè)計上都留有擴展及升級的余地,因此,在后續(xù)進行優(yōu)化設(shè)計、擴展功能方面將能夠很好適用,并且在其它廣播電視系統(tǒng)的中文人機交互界面設(shè)計中也有良好的借鑒作用。
本文作者創(chuàng)新點:
1、 較詳細地提出了廣播電視系統(tǒng)中文人機交互界面設(shè)計方案;
2、 并將此方法運用于專業(yè)廣播電視系統(tǒng)中,效果良好。
參考文獻:
1、《設(shè)計基于MSP430單片機的微功耗中文人機界面》,第四軍醫(yī)大學(xué)生物醫(yī)學(xué)工程系,焦純 董秀珍 楊國勝 霍旭陽,2006
2、《基于ARM的信號發(fā)生器人機交互系統(tǒng)設(shè)計》, 倪禎浩 盧博友 田澤, 微計算機信息 2007年第5-2期,P134-136
3、《MSP430x1xx Family User‘s Guide》, 2000