廣播電視系統(tǒng)人機(jī)交互界面的設(shè)計(jì)與實(shí)現(xiàn)
隨著科學(xué)技術(shù)日益的發(fā)展,廣播電視設(shè)備的國(guó)產(chǎn)化程度也越來(lái)越高。在一個(gè)性能優(yōu)良的廣播電視系統(tǒng)中,友好的中文人機(jī)交互界面也尤為重要。本文設(shè)計(jì)了一種廣播電視系統(tǒng)人機(jī)交互界面系統(tǒng),以滿足“數(shù)字立體聲調(diào)頻調(diào)制器”顯控要求為前提,采用MSP430F149單片機(jī)作為系統(tǒng)的MCU ;液晶屏為滿足漢字4行11列、字母4行22列顯示要求的LCM168651顯示模塊;并滿足用戶通過(guò)鍵盤輸入的方式進(jìn)行工作參數(shù)設(shè)置和工作狀態(tài)查詢的人機(jī)交互要求。
本文引用地址:http://m.butianyuan.cn/article/169542.htm1.系統(tǒng)組成
本系統(tǒng)主要由三個(gè)模塊組成,即以MSP430F149單片機(jī)為核心的MCU;以LCM168651為主要部件的菜單顯示模塊;以及以ZLG7289B為主的鍵盤掃描管理模塊。
1.1 單片機(jī)控制模塊
本系統(tǒng)中單片機(jī)控制模塊主要完成顯示、控制信息的采集、處理以及與“數(shù)字立體聲調(diào)頻調(diào)制器”其他分系統(tǒng)之間的通信。選型要求主要考慮以下幾個(gè)方面:
?低功耗; ?具有豐富的I/O端口及定時(shí)、中斷功能;
?3v左右的工作電壓; ?至少一個(gè)串行通信接口;
?大于8KB的存儲(chǔ)空間;?基本時(shí)鐘模塊在4MHz以上; ?具有加密保護(hù)功能。
根據(jù)以上的要求,我們選用TI公司推出的超低功耗Flash型16位RISC指令集單片機(jī)MSP430F149。根據(jù)其主要性能特點(diǎn),完全可以滿足設(shè)計(jì)要求。
1.2 菜單顯示模塊
菜單顯示模塊主要完成系統(tǒng)信息的時(shí)時(shí)顯示功能,并能在鍵盤控制下滾動(dòng)顯示不同的信息?!皵?shù)字立體聲調(diào)頻調(diào)制器”在顯示模塊主要有以下要求:
?同時(shí)顯示信息滿足至少漢字3行10列;?可卷動(dòng)顯示系統(tǒng)信息;
?并串行接口,電路簡(jiǎn)單;?5v以內(nèi)工作電壓;?顯示清晰無(wú)光斑,抗干擾能力強(qiáng)
我們設(shè)計(jì)選用北京青云公司的圖形點(diǎn)陣液晶模塊LCM168651,該模塊屬于被動(dòng)顯示,受外界光線干擾小,不產(chǎn)生電磁干擾,顯示內(nèi)容清晰,分辨率高。
1.3 鍵盤控制模塊
鍵盤控制模塊是人機(jī)交互界面的重要組成模塊,滿足用戶通過(guò)鍵盤輸入的方式進(jìn)行工作參數(shù)的設(shè)置和工作狀態(tài)的查詢。“數(shù)字立體聲調(diào)頻調(diào)制器”對(duì)該模塊的主要要求是:
?控制鍵盤的數(shù)量最少6個(gè);?易于與微控制系統(tǒng)連接;?可靠性高。
我們?cè)O(shè)計(jì)選用廣州周立功單片機(jī)發(fā)展有限公司自行設(shè)計(jì)的數(shù)碼管顯示驅(qū)動(dòng)及鍵盤掃描管理芯片ZLG7289B,可直接驅(qū)動(dòng)8位共陰式數(shù)碼管,還可以掃描管理多達(dá)64只按鍵。該芯片與微控制系統(tǒng)的工作電壓都可以控制在3v左右,避免了與微控制系統(tǒng)之間電平不匹配問(wèn)題。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)原理框圖
為了便于對(duì)系統(tǒng)工作原理的理解,這里首先給出系統(tǒng)的原理框圖,如圖1所示。
圖1 系統(tǒng)原理框圖
系統(tǒng)中MSP430F149單片機(jī)為微控制器,由其分配系統(tǒng)資源與液晶顯示模塊使用并行總線進(jìn)行通信、與鍵盤控制模塊使用SPI串行總線進(jìn)行通信。微控制器的程序?qū)懭爰罢{(diào)試采用在線編程模式進(jìn)行,系統(tǒng)使用5v電源供電,系統(tǒng)時(shí)鐘為4MHz。
系統(tǒng)的工作原理可以概述為兩個(gè)方面:一方面微控制器通過(guò)擴(kuò)展接口時(shí)時(shí)接收來(lái)自“數(shù)字立體聲調(diào)頻調(diào)制器”系統(tǒng)的狀態(tài)信息,這些狀態(tài)信息微控制器在微控制器內(nèi)部以不同的變量形式予以體現(xiàn),微控制器再將這些變量通過(guò)并行總線提供給液晶顯示模塊修改相應(yīng)的顯示參數(shù),以完成系統(tǒng)信息的顯示及更新工作;另一方面,微控制器以查詢的方式檢測(cè)鍵盤控制模塊是否有控制請(qǐng)求,當(dāng)有控制請(qǐng)求時(shí),微控制器根據(jù)鍵值的不同對(duì)液晶顯示模塊發(fā)出不同的指令,以更換顯示內(nèi)容或修改系統(tǒng)參數(shù),更換顯示內(nèi)容即工作狀態(tài)的查詢,當(dāng)修改系統(tǒng)參數(shù)時(shí),微控制器還負(fù)責(zé)將修改過(guò)的系統(tǒng)參數(shù)傳遞給“數(shù)字立體聲調(diào)頻調(diào)制器”系統(tǒng)。
2.2 液晶顯示原理
LCM168651是一種圖形點(diǎn)陣液晶,該模塊將液晶芯片與控制芯片集成在一起,與外界的聯(lián)系是以一系列接口的形式出現(xiàn)的。下面著重介紹一下該模塊的具體使用方法。
液晶屏幕被劃分為168*65個(gè)點(diǎn)陣,每個(gè)漢字需要占據(jù)16*16個(gè)點(diǎn)陣,字符或數(shù)字占據(jù)8*16個(gè)點(diǎn)陣,可見(jiàn)滿屏顯示時(shí)最多可以顯示漢字4行11列或字符、數(shù)字4行22列。
漢字或字符、數(shù)字的字庫(kù)可以從國(guó)標(biāo)字庫(kù)中查閱,也可以利用專門的軟件分別生成所需要的漢字或字符,本設(shè)計(jì)使用的方法就是后者。所使用的軟件是ZIMO21.EXE,該軟件可以根據(jù)使用者的需要一次獲取一個(gè)或多個(gè)漢字或字符的字庫(kù),基本操作如下:
l 漢字 圖像上下顛倒 C51取膜 前后16個(gè)字節(jié)交換
l 字母或者數(shù)字 圖像上下顛倒 C51取膜 前后8個(gè)字節(jié)交換。
例如:顯示漢字――廣播電視(宋體12號(hào)字,ZIMO21.EXE的默認(rèn)設(shè)置),使用者可以直接在ZIMO21.EXE軟件中鍵入“廣播電視”,設(shè)置“圖像上下顛倒”,選擇“C51取膜”,則漢字“廣播電視”的字庫(kù)便生成了。如下所示:
/*-- 文字: 廣 --*/
/*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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,
將各個(gè)漢字的字庫(kù)“前后16個(gè)字節(jié)交換”之后按一定順序存儲(chǔ)到特定的數(shù)組chinese[]中,每個(gè)漢字字庫(kù)第一個(gè)字節(jié)在數(shù)組中的位置就是該漢字的序號(hào)。此時(shí)字庫(kù)就建立完畢。下面的工作就是將漢字顯示到液晶屏幕的指定位置上,步驟:1)初始化液晶模塊;2)設(shè)置漢字在屏幕的位置坐標(biāo)(X、Y);3)將漢字字庫(kù)信息通過(guò)并口逐個(gè)傳遞給液晶模塊進(jìn)行顯示。
上述過(guò)程1)是以向液晶模塊寫入一系列命令字的形式完成的;2)、3)步驟一般則是以自命名函數(shù)的形式完成的,比如本方案中使用disp_Chinese[X,Y,Number]來(lái)完成,其中X,Y代表屏幕坐標(biāo),Number代表漢字在數(shù)組中的位置。設(shè)計(jì)過(guò)程中可以根據(jù)需要設(shè)置漢字的字體、大小等參數(shù),以達(dá)到美觀的藝術(shù)效果。
2.3 鍵盤控制原理
本設(shè)計(jì)中在鍵盤控制模塊主要使用了ZLG7289B ,該芯片可直接驅(qū)動(dòng)8 位共陰式數(shù)碼管(或64 只獨(dú)立LED),同時(shí)還可以掃描管理多達(dá)64 只按鍵。
ZLG7289B外圍電路簡(jiǎn)單,與微控制器系統(tǒng)之間只需要三根線CS、CLK、DIO,即所謂的SPI串行總線的模式即可進(jìn)行通信,擴(kuò)展使用非常方便,在掃描鍵盤時(shí),已經(jīng)采取了消抖動(dòng)措施,因此在程序中不必另外編寫消抖動(dòng),非常適合于本方案設(shè)計(jì)的需要。
其基本原理如下:某個(gè)按鍵按下時(shí),ZLG7289B 的INT 引腳會(huì)出現(xiàn)低電平,向微控制器發(fā)出中斷請(qǐng)求。微控制器既可以采用中斷方式處理,也可以采用查詢/INT 引腳電平狀態(tài)的方法處理。在/INT 引腳出現(xiàn)低電平時(shí)及時(shí)地讀取鍵值。讀取鍵值后,/INT引腳并不會(huì)自動(dòng)恢復(fù)為高電平,一定要等到按鍵抬起為止。如果沒(méi)有及時(shí)讀取按鍵值,則按鍵抬起后INT 引腳也將恢復(fù)到高電平,而在INT 引腳處于高電平期間,試圖去讀取鍵值將可能得不到有意義的數(shù)據(jù)。按鍵K0~K5分別對(duì)應(yīng)鍵值0~5,微控制器即可根據(jù)鍵值的不同作出不同的處理。
評(píng)論