白 靈,劉敬浩,梁 月
(天津大學 電子信息工程學院,天津 300072)
當今社會,通信設備的迅速發展和廣泛應用使得人與人之間的信息交流變得十分方便,給人們的生活帶來了極大的便利。然而,對于聾啞人來說,在某些特定場合中現有的通信設備并不能滿足他們的需求,比如在火災或者盜竊案件發生時需要報警的情況下,普通電話就不能勝任了,所以在某些機關部門使用文字電話就可以解決這些難題。這里所說的文字電話是指帶有全鍵盤的電話機,文字信息通過普通電話線進行傳輸,在文字電話的顯示屏上既可以看到自己傳出的文字信息,也能夠看到對方傳出的文字信息。所以對于文字電話來說,顯示部分就顯得尤為重要,考慮到成本問題,一個既能完成顯示任務又價格便宜的顯示模塊用在文字電話上就十分合適。
在文字電話中,控制液晶顯示模塊的控制器使用Microchip公司生產的dsPIC33F系列數字信號控制器,dsPIC33F是Microchip公司生產的高性能16位數字信號控制器,它的性能好、集成度高。而且dsPIC系列單片機具有數字信號處理能力,即具有內置的DSP運算核和DSP指令。dsPIC33F的運行速度可達40 MIPS,工作電壓最高3.6 V,工作溫度范圍到[1]。在文字電話中,完成顯示任務只是其中的一項任務,更重要的工作是完成語音與數據的共同傳輸,用普通的單片機雖然可完成顯示任務,但是在發送數據和接受數據時要完成數據的處理就顯得比較困難,dsPIC33F數字信號控制器強大的數據處理功能可以有效的處理數據,同時又可以完成顯示任務。
文字電話的液晶顯示屏使用Microchip公司16位開發板上自帶的1602液晶顯示屏TSB1G7000,它是由TRULY SEMICONDUCTION公司生產的FSTN封裝的液晶顯示模塊,顯示控制器使用NT7603,輸入電壓3.3 V。最多可以顯示兩行字符,每行16個字符,也可以顯示32個字符,顯示一行。可以與4位或者8位的單片機接口相連接。可以實現的顯示功能有清屏,光標歸位,開關顯示,開關光標,光標閃爍,光標移位和顯示移位。指令集簡單又能滿足顯示效果的要求。NT7603的DDRAM為80×8位,即一次最多可以顯示80個字符,內置的CGROM包含256個字模,NT7603也包含CGRAM,用戶在運行時可以存儲8個字模,這些存儲特點使得字符的顯示靈活多變。NT7603采用CMOS工藝,可以滿足低功耗的需求。
在16位的開發板上使用的液晶顯示模塊型號為TSB1G7000,它內置有NT7603液晶顯示控制器,此液晶顯示模塊與dsPIC33F的內部連接圖如圖1所示[2],可以看到,數字信號控制器的引腳RD4與液晶控制器的使能信號端E腳相連接,RD5與讀寫控制引腳R/W相連接,RB15與命令數據選擇端RS相連接,RE0-RE7分別與液晶顯示模塊的DB0-DB7相連接。單片機的13腳MCLR與30腳ADD接+5 V直流電源,31腳ASS接地。液晶顯示模塊的電源電路由16位開發板提供,這樣就完成了數字信號控制器與LCM構成顯示系統的最小連接。

圖1 數字信號控制器與液晶顯示模塊連接圖Fig.1 Digital signal controller and the LCD module connection diagram
文字電話使用MPLAB IDE集成開發環境,編譯器使用MPLAB C30,用戶使用C30開發dsPIC33F系列單片機,這種結構化語言提高了嵌入式軟件開發的靈活性、可移植性和可維護性[3]。C30編譯器優秀的代碼效率來源于以下一些事實:全新的指令集;靈活多樣的尋址方式;采用軟件堆棧;支持多種指針、多個指針,方便C語言操作;DO、REPEAT等指令的底層支持;更加自然的支持高級語言;擁有雙累加器和長累加器;支持桶形移位寄存器;允許快速直接的多位移位操作和數據轉換操作;先進的優化方式。
初始化流程圖如圖2所示,在系統上電后程序開始運行,進行液晶顯示模塊的初始化[4],針對dsPIC33F數字控制器和NT7603液晶控制器,初始化程序主要包括對相關引腳的分配,引腳的輸入輸出設置,液晶模塊的功能設置,開關顯示和光標控制,輸入方式設置。設置液晶輸入輸出為8位,兩行同時顯示,顯示字符為5×8點陣;開顯示,關光標與光標閃爍;每次讀寫操作后,AC自動加一,關移位顯示[5]。這些完成之后就可以進行顯示界面的設計。

圖2 初始化流程圖Fig.2 Initialization flow diagram
由于NT7603自帶字庫為英文字庫,所以要顯示漢字需要自建字庫,漢字的字模可以自己設計,也可以使用字模提取軟件。用戶也可以根據自己的需要設計一些小圖標,圖標的點陣數據也要通過CGRAM地址設置指令保存到CGRAM中,調用時直接向DDRAM中寫入圖標地址即可,圖3為一種設計的等待界面。為了使顯示界面更加生動,利用NT7603的移位顯示指令可以實現等待界面的滾屏設計[6]。以圖3的顯示內容為例,把代表第一行中“文字電話”的數組的顯示地址設置成0x87和0x9b,把第二行心形圖標的顯示地址分別設置成0xc1、0xce、0xd5和0xe2,第二行字符數組的顯示地址設置成0xc4和0xd8,再調用移位顯示指令就可以實現等間隔的移位顯示。

圖3 顯示界面Fig.3 Display interface
文字電話所要實現的是雙方通信,所以在顯示屏的顯示設計上設定為顯示屏的上一行顯示的是作為發送方所發送的字符,在顯示屏的下一行顯示的是作為接收方接收到的字符,數據顯示的流程圖如圖4所示。在初始化程序中已經設定好液晶模塊的輸入模式為每接收到一位數據后光標自動右移一位,當光標到達一行的最末時,利用設定DDRAM地址指令重新在行首開始顯示新一輪的數據。與以往的顯示方式不同,文字電話通信時所要顯示的內容并不是預先設定好的,而是一個實時顯示的過程,需要用到dsPIC33F的緩沖器來臨時存儲所要顯示的字符數據,由于文字電話的通信是在電話線上進行的,所以所要顯示的數據在顯示之前還需要進行調制和解調。對于通信的任意一方來說,自己發送出去的數據一方面不需要調制,直接在液晶屏的第一行進行顯示,同樣這組數據也要送到調制緩沖器中進行調制,以便于送到電話線去進行傳輸。

圖4 通信中顯示流程圖Fig.4 Display flow chart in communicati
NT7603為點陣型的液晶顯示模塊,可以通過控制像素點的亮暗來顯示一些圖標,NT7603的顯示方式為5×8點陣顯示,掃描方式為先行后列,每行為一個字節,由于每行的顯示像素為5個,所以行字節的前三位始終置零,后五位根據像素的亮暗情況置一或者置零。例如,圖3中心形圖案對應的顯示數 據為 0x0c,0x1e, 0x1f, 0x1f, 0x0f, 0x07, 0x03,0x01, 0x06, 0x0f, 0x1f, 0x1f, 0x1e, 0x1c, 0x18, 0x10,這里用到了兩個5×8的點陣來顯示一個心形圖案。同樣的,圖3中的“文字電話”這幾個字也可以用這種方法進行顯示設計。
文字電話實現使用Microchip公司生產的dsPIC33F數字信號控制器,16位開發板與音頻子板,調試燒寫器使用MPLAB ICD3,使用超級終端模擬文字電話的全鍵盤,通信雙方之間用音頻線連接。編寫好程序后利用MPLAB IDE開發環境與C30編譯器進行編譯與調試,成功后可以用在線編譯器把程序燒寫到單片機中,這樣通信雙方的開發板通電后即可完成文字電話的顯示。經過試驗驗證,利用dsPIC33F數字信號控制器與16位開發板可以成功實現文字電話的顯示。
基于dsPIC33F數字信號控制器與TSB1G7000液晶顯示模塊的特點,設計了一種低成本的文字電話顯示方案,此液晶顯示方案可以實現雙方通信,實現方式簡單,又可以設計一些個性化的小圖標,同時可以充分利用Microchip公司的開發環境與調試燒寫器,大大簡化了開發過程。此方案不需要對液晶顯示原理進行深入的學習和了解,也不需要擔心單片機速度與液晶匹配的問題,只需要了解液晶顯示控制器的控制字就可以進行編程完成顯示任務。
[1]石朝林.dsPIC數字信號控制器入門與實戰——入門篇[M].北京:北京航空航天大學出版社,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顯示系統的設計與實現[J].許昌學院學報,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圖形液晶顯示器接口及程序設計[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.