白 靈,劉敬浩,梁 月
(天津大學(xué) 電子信息工程學(xué)院,天津 300072)
當(dāng)今社會,通信設(shè)備的迅速發(fā)展和廣泛應(yīng)用使得人與人之間的信息交流變得十分方便,給人們的生活帶來了極大的便利。然而,對于聾啞人來說,在某些特定場合中現(xiàn)有的通信設(shè)備并不能滿足他們的需求,比如在火災(zāi)或者盜竊案件發(fā)生時需要報警的情況下,普通電話就不能勝任了,所以在某些機關(guān)部門使用文字電話就可以解決這些難題。這里所說的文字電話是指帶有全鍵盤的電話機,文字信息通過普通電話線進行傳輸,在文字電話的顯示屏上既可以看到自己傳出的文字信息,也能夠看到對方傳出的文字信息。所以對于文字電話來說,顯示部分就顯得尤為重要,考慮到成本問題,一個既能完成顯示任務(wù)又價格便宜的顯示模塊用在文字電話上就十分合適。
在文字電話中,控制液晶顯示模塊的控制器使用Microchip公司生產(chǎn)的dsPIC33F系列數(shù)字信號控制器,dsPIC33F是Microchip公司生產(chǎn)的高性能16位數(shù)字信號控制器,它的性能好、集成度高。而且dsPIC系列單片機具有數(shù)字信號處理能力,即具有內(nèi)置的DSP運算核和DSP指令。dsPIC33F的運行速度可達40 MIPS,工作電壓最高3.6 V,工作溫度范圍到[1]。在文字電話中,完成顯示任務(wù)只是其中的一項任務(wù),更重要的工作是完成語音與數(shù)據(jù)的共同傳輸,用普通的單片機雖然可完成顯示任務(wù),但是在發(fā)送數(shù)據(jù)和接受數(shù)據(jù)時要完成數(shù)據(jù)的處理就顯得比較困難,dsPIC33F數(shù)字信號控制器強大的數(shù)據(jù)處理功能可以有效的處理數(shù)據(jù),同時又可以完成顯示任務(wù)。
文字電話的液晶顯示屏使用Microchip公司16位開發(fā)板上自帶的1602液晶顯示屏TSB1G7000,它是由TRULY SEMICONDUCTION公司生產(chǎn)的FSTN封裝的液晶顯示模塊,顯示控制器使用NT7603,輸入電壓3.3 V。最多可以顯示兩行字符,每行16個字符,也可以顯示32個字符,顯示一行。可以與4位或者8位的單片機接口相連接。可以實現(xiàn)的顯示功能有清屏,光標(biāo)歸位,開關(guān)顯示,開關(guān)光標(biāo),光標(biāo)閃爍,光標(biāo)移位和顯示移位。指令集簡單又能滿足顯示效果的要求。NT7603的DDRAM為80×8位,即一次最多可以顯示80個字符,內(nèi)置的CGROM包含256個字模,NT7603也包含CGRAM,用戶在運行時可以存儲8個字模,這些存儲特點使得字符的顯示靈活多變。NT7603采用CMOS工藝,可以滿足低功耗的需求。
在16位的開發(fā)板上使用的液晶顯示模塊型號為TSB1G7000,它內(nèi)置有NT7603液晶顯示控制器,此液晶顯示模塊與dsPIC33F的內(nèi)部連接圖如圖1所示[2],可以看到,數(shù)字信號控制器的引腳RD4與液晶控制器的使能信號端E腳相連接,RD5與讀寫控制引腳R/W相連接,RB15與命令數(shù)據(jù)選擇端RS相連接,RE0-RE7分別與液晶顯示模塊的DB0-DB7相連接。單片機的13腳MCLR與30腳ADD接+5 V直流電源,31腳ASS接地。液晶顯示模塊的電源電路由16位開發(fā)板提供,這樣就完成了數(shù)字信號控制器與LCM構(gòu)成顯示系統(tǒng)的最小連接。
圖1 數(shù)字信號控制器與液晶顯示模塊連接圖Fig.1 Digital signal controller and the LCD module connection diagram
文字電話使用MPLAB IDE集成開發(fā)環(huán)境,編譯器使用MPLAB C30,用戶使用C30開發(fā)dsPIC33F系列單片機,這種結(jié)構(gòu)化語言提高了嵌入式軟件開發(fā)的靈活性、可移植性和可維護性[3]。C30編譯器優(yōu)秀的代碼效率來源于以下一些事實:全新的指令集;靈活多樣的尋址方式;采用軟件堆棧;支持多種指針、多個指針,方便C語言操作;DO、REPEAT等指令的底層支持;更加自然的支持高級語言;擁有雙累加器和長累加器;支持桶形移位寄存器;允許快速直接的多位移位操作和數(shù)據(jù)轉(zhuǎn)換操作;先進的優(yōu)化方式。
初始化流程圖如圖2所示,在系統(tǒng)上電后程序開始運行,進行液晶顯示模塊的初始化[4],針對dsPIC33F數(shù)字控制器和NT7603液晶控制器,初始化程序主要包括對相關(guān)引腳的分配,引腳的輸入輸出設(shè)置,液晶模塊的功能設(shè)置,開關(guān)顯示和光標(biāo)控制,輸入方式設(shè)置。設(shè)置液晶輸入輸出為8位,兩行同時顯示,顯示字符為5×8點陣;開顯示,關(guān)光標(biāo)與光標(biāo)閃爍;每次讀寫操作后,AC自動加一,關(guān)移位顯示[5]。這些完成之后就可以進行顯示界面的設(shè)計。
圖2 初始化流程圖Fig.2 Initialization flow diagram
由于NT7603自帶字庫為英文字庫,所以要顯示漢字需要自建字庫,漢字的字??梢宰约涸O(shè)計,也可以使用字模提取軟件。用戶也可以根據(jù)自己的需要設(shè)計一些小圖標(biāo),圖標(biāo)的點陣數(shù)據(jù)也要通過CGRAM地址設(shè)置指令保存到CGRAM中,調(diào)用時直接向DDRAM中寫入圖標(biāo)地址即可,圖3為一種設(shè)計的等待界面。為了使顯示界面更加生動,利用NT7603的移位顯示指令可以實現(xiàn)等待界面的滾屏設(shè)計[6]。以圖3的顯示內(nèi)容為例,把代表第一行中“文字電話”的數(shù)組的顯示地址設(shè)置成0x87和0x9b,把第二行心形圖標(biāo)的顯示地址分別設(shè)置成0xc1、0xce、0xd5和0xe2,第二行字符數(shù)組的顯示地址設(shè)置成0xc4和0xd8,再調(diào)用移位顯示指令就可以實現(xiàn)等間隔的移位顯示。
圖3 顯示界面Fig.3 Display interface
文字電話所要實現(xiàn)的是雙方通信,所以在顯示屏的顯示設(shè)計上設(shè)定為顯示屏的上一行顯示的是作為發(fā)送方所發(fā)送的字符,在顯示屏的下一行顯示的是作為接收方接收到的字符,數(shù)據(jù)顯示的流程圖如圖4所示。在初始化程序中已經(jīng)設(shè)定好液晶模塊的輸入模式為每接收到一位數(shù)據(jù)后光標(biāo)自動右移一位,當(dāng)光標(biāo)到達一行的最末時,利用設(shè)定DDRAM地址指令重新在行首開始顯示新一輪的數(shù)據(jù)。與以往的顯示方式不同,文字電話通信時所要顯示的內(nèi)容并不是預(yù)先設(shè)定好的,而是一個實時顯示的過程,需要用到dsPIC33F的緩沖器來臨時存儲所要顯示的字符數(shù)據(jù),由于文字電話的通信是在電話線上進行的,所以所要顯示的數(shù)據(jù)在顯示之前還需要進行調(diào)制和解調(diào)。對于通信的任意一方來說,自己發(fā)送出去的數(shù)據(jù)一方面不需要調(diào)制,直接在液晶屏的第一行進行顯示,同樣這組數(shù)據(jù)也要送到調(diào)制緩沖器中進行調(diào)制,以便于送到電話線去進行傳輸。
圖4 通信中顯示流程圖Fig.4 Display flow chart in communicati
NT7603為點陣型的液晶顯示模塊,可以通過控制像素點的亮暗來顯示一些圖標(biāo),NT7603的顯示方式為5×8點陣顯示,掃描方式為先行后列,每行為一個字節(jié),由于每行的顯示像素為5個,所以行字節(jié)的前三位始終置零,后五位根據(jù)像素的亮暗情況置一或者置零。例如,圖3中心形圖案對應(yīng)的顯示數(shù) 據(jù)為 0x0c,0x1e, 0x1f, 0x1f, 0x0f, 0x07, 0x03,0x01, 0x06, 0x0f, 0x1f, 0x1f, 0x1e, 0x1c, 0x18, 0x10,這里用到了兩個5×8的點陣來顯示一個心形圖案。同樣的,圖3中的“文字電話”這幾個字也可以用這種方法進行顯示設(shè)計。
文字電話實現(xiàn)使用Microchip公司生產(chǎn)的dsPIC33F數(shù)字信號控制器,16位開發(fā)板與音頻子板,調(diào)試燒寫器使用MPLAB ICD3,使用超級終端模擬文字電話的全鍵盤,通信雙方之間用音頻線連接。編寫好程序后利用MPLAB IDE開發(fā)環(huán)境與C30編譯器進行編譯與調(diào)試,成功后可以用在線編譯器把程序燒寫到單片機中,這樣通信雙方的開發(fā)板通電后即可完成文字電話的顯示。經(jīng)過試驗驗證,利用dsPIC33F數(shù)字信號控制器與16位開發(fā)板可以成功實現(xiàn)文字電話的顯示。
基于dsPIC33F數(shù)字信號控制器與TSB1G7000液晶顯示模塊的特點,設(shè)計了一種低成本的文字電話顯示方案,此液晶顯示方案可以實現(xiàn)雙方通信,實現(xiàn)方式簡單,又可以設(shè)計一些個性化的小圖標(biāo),同時可以充分利用Microchip公司的開發(fā)環(huán)境與調(diào)試燒寫器,大大簡化了開發(fā)過程。此方案不需要對液晶顯示原理進行深入的學(xué)習(xí)和了解,也不需要擔(dān)心單片機速度與液晶匹配的問題,只需要了解液晶顯示控制器的控制字就可以進行編程完成顯示任務(wù)。
[1]石朝林.dsPIC數(shù)字信號控制器入門與實戰(zhàn)——入門篇[M].北京:北京航空航天大學(xué)出版社,2009.
[2]Microchip Technology Inc.Explorer 16 Development Board User’s Guide[R].DS51589A.2006-7-14.
[3]Microchip Technology Inc.dsPIC33FJXXXGPX06/X08/X10 Data Sheet[R].DS70286C.2011-3-29.
[4]陳素華,王國志.基于單片機的LCD顯示系統(tǒng)的設(shè)計與實現(xiàn)[J].許昌學(xué)院學(xué)報,2010,29(5):75-78.CHEN Su-hua,WANG Zhi-guo.Design and realization of LCM display system based on SCM[J].Xuchang University,2010,29(5):75-78.
[5]NOVATEK.NT7603 Single-Chip 16C×2L Dot-Matrix LCD Controller/Driver[EB/OL].http://www.alldatasheetcn.com/datasheet-pdf/pdf/196926/ETC2/NT7603.html.
[6]胡漢梅,程妮,李海軍.基于DSP圖形液晶顯示器接口及程序設(shè)計[J].液晶與顯示,2007(5):22.HU Han-mei,CHENG Ni,LI Hai-jun.Interface and program design of DSP graphic liquid crystal display[J].Liquid and display,2007(5):22.