基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
在本設(shè)計(jì)中,采用自己規(guī)定的通信協(xié)議,首先DSP發(fā)送出握手信號(hào),C51收到握手信號(hào)后,進(jìn)入中斷子程序,判斷握手信號(hào)是否正確,若正確才握手成功,開始接收數(shù)據(jù)包,接收完成后對(duì)數(shù)據(jù)進(jìn)行和校驗(yàn),正確后刷新液晶的顯示數(shù)據(jù)存儲(chǔ)區(qū);若錯(cuò)誤則放棄本次數(shù)據(jù),并將接收數(shù)據(jù)存儲(chǔ)區(qū)清零,等待下一次通信。其程序流程圖如圖3所示。
圖3 DSP和單片機(jī)的通信程序流程圖
DSP向單片機(jī)的定時(shí)發(fā)送程序如下:
ScibRegs. SCITXBUF = Sci_VarRx [ i] ;/ / 將數(shù)據(jù)包寫入發(fā)送緩沖區(qū)
i+ + ; / / 依次發(fā)送數(shù)據(jù)包
if(i= = 12)i= 0; / / 重新計(jì)數(shù)
IER | = M_INT1; / / 清除中斷標(biāo)志位
EINT;
PieCtr lReg s. PIEACK. all = PIEACK_GROUP1;
51單片機(jī)串口中斷服務(wù)程序如下:
Rx0_Buffer[ Rx0_Ptr] = SBUF; / / 讀取數(shù)據(jù)到接收數(shù)組
RI= 0; / / 清除接收標(biāo)志位
Rx0_Ptr+ + ; / / 計(jì)數(shù)加1
Rx_flag= 1;
1.4 單片機(jī)與液晶和鍵盤的接口
系統(tǒng)采用的是D6128×4圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成,既可以完成圖形顯示,也可以顯示8×4個(gè)(16×16點(diǎn)陣)漢字。單片機(jī)與液晶模塊和鍵盤的接口電路如圖4所示。
圖4 單片機(jī)與液晶和鍵盤的接口電路
單片機(jī)與液晶之間通過8位數(shù)據(jù)線進(jìn)行并口通信,將DSP傳來的實(shí)時(shí)數(shù)據(jù)傳輸?shù)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/液晶顯示">液晶顯示器進(jìn)行實(shí)時(shí)顯示。對(duì)液晶驅(qū)動(dòng)器的控制具體是通過各個(gè)內(nèi)部寄存器和標(biāo)志位的操作實(shí)現(xiàn)的,單片機(jī)寫入不同的控制字就能讓液晶執(zhí)行各種不同的功能。DG12864是點(diǎn)陣型液晶,它主要通過對(duì)點(diǎn)陣中各點(diǎn)的亮滅來顯示不同的內(nèi)容,通過取模軟件可以方便地獲得漢字和英文符號(hào)等的字模,將程序中所要用到的字模存儲(chǔ)在特定的文件中,在程序中根據(jù)所要顯示的內(nèi)容調(diào)用相應(yīng)的字模,最終通過并口傳輸?shù)揭壕?qū)動(dòng)器的顯示RAM區(qū)中實(shí)現(xiàn)顯示。
圖5 展示了系統(tǒng)實(shí)際運(yùn)行時(shí)的界面
2 結(jié)語
本文設(shè)計(jì)了TMS320F2812和MCS51單片機(jī)的串行異步通信接口,并通過單片機(jī)實(shí)現(xiàn)驅(qū)動(dòng)液晶的實(shí)時(shí)顯示和鍵盤設(shè)置功能。經(jīng)過實(shí)驗(yàn),證明本方案能夠高效準(zhǔn)確地實(shí)現(xiàn)了上述功能,而且其硬件簡單、操作方便。目前這種方案已經(jīng)可靠地應(yīng)用于智能充電器的人機(jī)界面模塊中。
評(píng)論