為了提高通訊速度,顯示器內(nèi)設(shè)置了一個(gè)128字節(jié)的輸入緩沖區(qū)。發(fā)送數(shù)據(jù)前應(yīng)先檢查DTR信號(hào)(RS232電平),若DTR為負(fù)電平(對(duì)應(yīng)COMS高電平),則表示緩沖區(qū)滿,要等到DTR信號(hào)變?yōu)檎娖剑▽?duì)應(yīng)COMS低電平)后再發(fā)送數(shù)據(jù)。如果每組的數(shù)據(jù)量少于128字節(jié),同時(shí)每組之間又有足夠的間隔,則不用判斷DTR信號(hào)就可連續(xù)發(fā)送數(shù)據(jù)。圖2所示是其硬件接口原理框圖。

2.2 串行通訊軟件設(shè)計(jì)
此設(shè)計(jì)是一個(gè)具體工程項(xiàng)目(無功與諧波補(bǔ)償裝置)的液晶顯示部分程序,主要完成顯示“系統(tǒng)是否投入工作以及工作是否正!钡母鞣N彩色圖形曲線和文字,其中顯示標(biāo)志寄存器和COUNT數(shù)據(jù)寄存器的值都由相關(guān)應(yīng)用程序給定。通過設(shè)置等待寄存器WSGR(賦值為0)和檢測(cè)I/O的DTR信號(hào)可以防止數(shù)據(jù)發(fā)送丟失,從而實(shí)現(xiàn)高速DSP與外部低速LCD的通信。由于篇幅有限,這里只給出了串行初始化和數(shù)據(jù)發(fā)送部分的程序。其程序流程框圖如圖3所示。
1)串行通訊初始化程序
LDP # 0E0H ;設(shè)置串行通訊口各寄存器
SPLK # 0017H,SCICCR ;SCI使能,空閑線喚醒模式,8位數(shù)據(jù),無奇偶校驗(yàn)位
SPLK # 0013H,SCICTL1 ;接收、發(fā)送、內(nèi)部時(shí)鐘使能,SLEEP=0
SPLK # 0000H,SCICTL2 ;接收和發(fā)送中斷禁止
SPLK # 0000H,SCIHBAUD
SPLK # 0082H,SCILBAUD ;波特率為9600
SPLK # 0020H,SCIPC2 ;設(shè)置SCITXD為串行發(fā)送功能,SCIRXD為I/O口功能
SPLK #0033H,SCICTL1 ;串口初始化完成
LAR AR0,#SCITXBUF ;發(fā)送緩沖寄存器地址
2)數(shù)據(jù)串行發(fā)送程序
SCISS:
LDP #0E0H
BIT SCIPC2,BIT3 ;檢測(cè)DTR信號(hào),判斷輸入緩沖區(qū)是否滿
BCND SCISS,TC ;若緩沖區(qū)滿,繼續(xù)查詢等待





