文字電話的液晶顯示與實(shí)現(xiàn)
摘要:文中實(shí)現(xiàn)了文字電話通信前等待界面和通信中信息的液晶顯示。使用Microchip公司生產(chǎn)的dsPIC33F數(shù)字信號控制器與16位開發(fā)板,以MPLAB為開發(fā)平臺,使用C語言編程并通過C30進(jìn)行編譯完成對數(shù)字信號控制器的控制,從而實(shí)現(xiàn)控制器驅(qū)動液晶顯示模塊實(shí)現(xiàn)顯示。利用點(diǎn)陣型液晶顯示模塊TSB1G7000的命令字實(shí)現(xiàn)顯示界面的小圖標(biāo)設(shè)計(jì)和滾屏設(shè)計(jì),并且實(shí)現(xiàn)了通信過程中雙方通信數(shù)據(jù)的顯示。實(shí)踐表明,使用dsPIC33F數(shù)字信號控制器與液晶顯示模塊構(gòu)成的顯示系統(tǒng)可以滿足文字電話的顯示要求。
關(guān)鍵詞:dsPIC233F;TSB1G7000;MPLAB;液晶顯示
當(dāng)今社會,通信設(shè)備的迅速發(fā)展和廣泛應(yīng)用使得人與人之間的信息交流變得十分方便,給人們的生活帶來了極大的便利。然而,對于聾啞人來說,在某些特定場合中現(xiàn)有的通信設(shè)備并不能滿足他們的需求,比如在火災(zāi)或者盜竊案件發(fā)生時需要報(bào)警的情況下,普通電話就不能勝任了,所以在某些機(jī)關(guān)部門使用文字電話就可以解決這些難題。這里所說的文字電話是指帶有全鍵盤的電話機(jī),文字信息通過普通電話線
進(jìn)行傳輸,在文字電話的顯示屏上既可以看到自己傳出的文字信息,也能夠看到對方傳出的文字信息。所以對于文字電話來說,顯示部分就顯得尤為重要,考慮到成本問題,一個既能完成顯示任務(wù)又價格便宜的顯示模塊用在文字電話上就十分合適。
1 硬件設(shè)計(jì)
1.1 dsPIC33F數(shù)字信號控制器
在文字電話中,控制液晶顯示模塊的控制器使用Microchip公司生產(chǎn)的dsPIC33F系列數(shù)字信號控制器,dsPIC33F是Microchip公司生產(chǎn)的高性能16位數(shù)字信號控制器,它的性能好、集成度高。而且dsPIC系列單片機(jī)具有數(shù)字信號處理能力,即具有內(nèi)置的DSP運(yùn)算核和DSP指令。ds PIC33F的運(yùn)行速度可達(dá)40 MIPS,工作電壓最高3.6 V,工作溫度范圍到。在文字電話中,完成顯示任務(wù)只是其中的一項(xiàng)任務(wù),更重要的工作是完成語音與數(shù)據(jù)的共同傳輸,用普通的單片機(jī)雖然可完成顯示任務(wù),但是在發(fā)送數(shù)據(jù)和接受數(shù)據(jù)時要完成數(shù)據(jù)的處理就顯得比較困難,dsP IC33F數(shù)字信號控制器強(qiáng)大的數(shù)據(jù)處理功能可以有效的處理數(shù)據(jù),同時又可以完成顯示任務(wù)。
1.2 液晶顯示模塊
文字電話的液晶顯示屏使用Microchip公司16位開發(fā)板上自帶的1602液晶顯示屏TSB1G7000,它是由TRULYSEMICONDUCTION公司生產(chǎn)的FSTN封裝的液晶顯示模塊,顯示控制器使用NT7603,輸入電壓3.3 V。最多可以顯示兩行字符,每行16個字符,也可以顯示32個字符,顯示一行??梢耘c4位或者8位的單片機(jī)接口相連接??梢詫?shí)現(xiàn)的顯示功能有清屏,光標(biāo)歸位,開關(guān)顯示,開關(guān)光標(biāo),光標(biāo)閃爍,光標(biāo)移位和顯示移位。指令集簡單又能滿足顯示效果的要求。NT7603的DDRAM為80x8位,即一次最多可以顯示80個字符,內(nèi)置的CGROM包含256個字模,NT7603也包含CGRAM,用戶在運(yùn)行時可以存儲8個字模,這些存儲特點(diǎn)使得字符的顯示靈活多變。NT7603采用CMOS工藝,可以滿足低功耗的需求。
1.3 硬件連接
在16位的開發(fā)板上使用的液晶顯示模塊型號為TSB1G7000,它內(nèi)置有NT7603液晶顯示控制器,此液晶顯示模塊與dsPIC33F的內(nèi)部連接圖如圖1所示,可以看到,數(shù)字信號控制器的引腳RD4與液晶控制器的使能信號端E腳相連接,RD5與讀寫控制引腳R/W相連接,RB15與命令數(shù)據(jù)選擇端RS相連接,RE0-RE7分別與液晶顯示模塊的DB0-DB7相連接。單片機(jī)的13腳與30腳ADD接+5 V直流電源,31腳ASS接地。液晶顯示模塊的電源電路由16位開發(fā)板提供,這樣就完成了數(shù)字信號控制器與LCM構(gòu)成顯示系統(tǒng)的最小連接。
2 軟件設(shè)計(jì)
文字電話使用MPLAB IDE集成開發(fā)環(huán)境,編譯器使用MPLAB C30,用戶使用C30開發(fā)dsPIC33F系列單片機(jī),這種結(jié)構(gòu)化語言提高了嵌入式軟件開發(fā)的靈活性、可移植性和可維護(hù)性。C30編譯器優(yōu)秀的代碼效率來源于以下一些事實(shí):全新的指令集;靈活多樣的尋址方式;采用軟件堆棧;支持多種指針、多個指針,方便C語言操作;DO、REPEAT等指令的底層支持;更加自然的支持高級語言;擁有雙累加器和長累加器;支持桶形移位寄存器;允許快速直接的多位移位操作和數(shù)據(jù)轉(zhuǎn)換操作;先進(jìn)的優(yōu)化方式。
2.1 初始化與等待界面設(shè)計(jì)
初始化流程圖如圖2所示,在系統(tǒng)上電后程序開始運(yùn)行,進(jìn)行液晶顯示模塊的初始化,針對dsPIC33F數(shù)字控制器和NT7603液晶控制器,初始化程序主要包括對相關(guān)引腳的分配,引腳的輸入輸出設(shè)置,液晶模塊的功能設(shè)置,開關(guān)顯示和光標(biāo)控制,輸入方式設(shè)置。設(shè)置液晶輸入輸出為8位,兩行同時顯示,顯示字符為5x8點(diǎn)陣;開顯示,關(guān)光標(biāo)與光標(biāo)閃爍;每次讀寫操作后,AC自動加一,關(guān)移位顯示。這些完成之后就可以進(jìn)行顯示界面的設(shè)計(jì)。
由于NT7603自帶字庫為英文字庫,所以要顯示漢字需要自建字庫,漢字的字??梢宰约涸O(shè)計(jì),也可以使用字模提取軟件。用戶也可以根據(jù)自己的需要設(shè)計(jì)一些小圖標(biāo),圖標(biāo)的點(diǎn)陣數(shù)據(jù)也要通過CGRAM地址設(shè)置指令保存到CGRAM中,調(diào)用時直接向DDRAM中寫入圖標(biāo)地址即可,圖3為一種設(shè)計(jì)的等待界面。為了使顯示界面更加生動,利用NT7603的移位顯示指令可以實(shí)現(xiàn)等待界面的滾屏設(shè)計(jì)。以圖3的顯示內(nèi)容為例,把代表第一行中“文字電話”的數(shù)組的顯示地址設(shè)置成0x87和0x9b,把第二行心形圖標(biāo)的顯示地址分別設(shè)置成0xc1、0xce、0xd5和0xe2,第二行字符數(shù)組的顯示地址設(shè)置成0xc4和0xd8,再調(diào)用移位顯示指令就可以實(shí)現(xiàn)等間隔的移位顯示。
2.2 通信中液晶顯示程序設(shè)計(jì)
文字電話所要實(shí)現(xiàn)的是雙方通信,所以在顯示屏的顯示設(shè)計(jì)上設(shè)定為顯示屏的上一行顯示的是作為發(fā)送方所發(fā)送的字符,在顯示屏的下一行顯示的是作為接收方接收到的字符,數(shù)據(jù)顯示的流程圖如圖4所示。在初始化程序中已經(jīng)設(shè)定好液晶模塊的輸入模式為每接收到一位數(shù)據(jù)后光標(biāo)自動右移一位,當(dāng)光標(biāo)到達(dá)一行的最末時,利用設(shè)定DDRAM地址指令重新在行首開始顯示新一輪的數(shù)據(jù)。與以往的顯示方式不同,文字電話通信時所要顯示的內(nèi)容并不是預(yù)先設(shè)定好的,而是一個實(shí)時顯示的過程,需要用到dsPIC33F的緩沖器來臨時存儲所要顯示的字符數(shù)據(jù),由于文字電話的通信是在電話線上進(jìn)行的,所以所要顯示的數(shù)據(jù)在顯示之前還需要進(jìn)行調(diào)制和解調(diào)。對于通信的任意一方來說,自己發(fā)送出去的數(shù)據(jù)一方面不需要調(diào)制,直接在液晶屏的第一行進(jìn)行顯示,同樣這組數(shù)據(jù)也要送到調(diào)制緩沖器中進(jìn)行調(diào)制,以便于送到由話線去講行傳輸。
2.3 小圖標(biāo)顯示設(shè)計(jì)
NT7603為點(diǎn)陣型的液晶顯示模塊,可以通過控制像素點(diǎn)的亮暗來顯示一些圖標(biāo),NT7603的顯示方式為5x8點(diǎn)陣顯示,掃描方式為先行后列,每行為一個字節(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,這里用到了兩個5x8的點(diǎn)陣來顯示一個心形圖案。同樣的,圖3中的“文字電話”這幾個字也可以用這種方法進(jìn)行顯示設(shè)計(jì)。
2.4 文字電話的顯示實(shí)現(xiàn)
文字電話實(shí)現(xiàn)使用Microchip公司生產(chǎn)的dsPIC33F數(shù)字信號控制器,16位開發(fā)板與音頻子板,調(diào)試燒寫器使用MPLAB ICD3,使用超級終端模擬文字電話的全鍵盤,通信雙方之間用音頻線連接。編寫好程序后利用MPLAB IDE開發(fā)環(huán)境與C30編譯器進(jìn)行編譯與調(diào)試,成功后可以用在線編譯器把程序燒寫到單片機(jī)中,這樣通信雙方的開發(fā)板通電后即可完成文字電話的顯示。經(jīng)過試驗(yàn)驗(yàn)證,利用dsPIC33F數(shù)字信號控制器與16位開發(fā)板可以成功實(shí)現(xiàn)文字電話的顯示。
3 結(jié)束語
基于dsPIC33F數(shù)字信號控制器與TSB1G7000液晶顯示模塊的特點(diǎn),設(shè)計(jì)了一種低成本的文字電話顯示方案,此液晶顯示方案可以實(shí)現(xiàn)雙方通信,實(shí)現(xiàn)方式簡單,又可以設(shè)計(jì)一些個性化的小圖標(biāo),同時可以充分利用Microchip公司的開發(fā)環(huán)境與調(diào)試燒寫器,大大簡化了開發(fā)過程。此方案不需要對液晶顯示原理進(jìn)行深入的學(xué)習(xí)和了解,也不需要擔(dān)心單片機(jī)速度與液晶匹配的問題,只需要了解液晶顯示控制器的控制字就可以進(jìn)行編程完成顯示任務(wù)。