基于51單片機(jī)和FPGA的人機(jī)交互系統(tǒng)的設(shè)計(jì)
3.1.1 液晶驅(qū)動(dòng)模塊的初始化
T6963C的最大特點(diǎn)是具有獨(dú)特的硬件初始值設(shè)置功能,顯示驅(qū)動(dòng)所需的參數(shù)如占空比系數(shù)。驅(qū)動(dòng)傳輸?shù)淖止?jié)數(shù)/行及字符的字體選擇等均由引腳電平設(shè)置,這 樣T6963C的初始化在上電時(shí)就已經(jīng)基本設(shè)置完成,軟件操作的重心就可以全部用于顯示畫(huà)面的設(shè)計(jì)上。因此,初始化時(shí)僅需根據(jù)實(shí)際情況設(shè)置文本區(qū)域和圖形 區(qū)域的首地址和寬度,以及CGRAM偏置地址、合成方式、光標(biāo)形狀等即可正常使用。
液晶驅(qū)動(dòng)模塊的初始化函數(shù)如下:
3.1.2 英文及漢字的文本顯示
由于英文及數(shù)字等常用字符的字模已經(jīng)固化在CGROM中,因此進(jìn)行英文的顯示時(shí),只需指定顯示的地址,再輸入該字符對(duì)應(yīng)的標(biāo)號(hào)即可。漢字 的顯示與英文的顯示類(lèi)似。然而出于其復(fù)雜性,一個(gè)漢字需要使用4組點(diǎn)陣才能完整顯示。在初始化后將漢字的4部分字模順序輸入CGRAM中,在使用時(shí)僅需計(jì) 算好每一部分的顯示地址即可對(duì)漢字進(jìn)行完美顯示。
對(duì)于一串英文字符的輸入,可以利用字符串的特性進(jìn)行操作。通過(guò)檢測(cè)‘\0’字符來(lái)判斷英文字符串的結(jié)尾,從而避免了在調(diào)用此顯示函數(shù)時(shí)人工計(jì)算句子長(zhǎng)度的 工作。英文字符的ASCII碼值與其在CGROM中對(duì)應(yīng)的標(biāo)號(hào)恰相差0x20,因此僅需簡(jiǎn)單的減法即可實(shí)現(xiàn)標(biāo)號(hào)的轉(zhuǎn)換。此外,在進(jìn)行英文的連續(xù)顯示時(shí),使 用了T6963C的數(shù)據(jù)自動(dòng)寫(xiě)指令,從而提高了顯示效率。
對(duì)于一串中文的顯示,則僅需通過(guò)循環(huán)調(diào)用單個(gè)中文的顯示程序進(jìn)行實(shí)現(xiàn)。注意由于C51語(yǔ)言中字符串無(wú)法支持中文,因此必須人工計(jì)算中文字串的長(zhǎng)度并將其作為函數(shù)傳遞給此顯示函數(shù)。
評(píng)論