《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于點(diǎn)陣式液晶顯示模塊的IVC監(jiān)控系統(tǒng)
基于點(diǎn)陣式液晶顯示模塊的IVC監(jiān)控系統(tǒng)
摘要: ST7920因內(nèi)置字庫(kù)而被廣泛應(yīng)用,,其圖形顯示的關(guān)鍵點(diǎn)是熟練掌握?qǐng)D形顯示坐標(biāo)。在筆者所參與的獨(dú)立通氣籠盒監(jiān)控系統(tǒng)設(shè)計(jì)過(guò)程中,,利用以ST7920為控制器的液晶顯示模塊構(gòu)建良好的人機(jī)交互界面,,以曲線和直方圖的方式顯示實(shí)時(shí)溫度。系統(tǒng)可由用戶設(shè)定開(kāi)啟密碼,,可以查看相關(guān)歷史數(shù)據(jù),、實(shí)現(xiàn)實(shí)驗(yàn)動(dòng)物生長(zhǎng)環(huán)境及生長(zhǎng)過(guò)程的控制,以及回溯歷史數(shù)據(jù),、實(shí)時(shí)控制參數(shù)和環(huán)境溫度等參數(shù),。該設(shè)計(jì)對(duì)優(yōu)化控制實(shí)驗(yàn)動(dòng)物生長(zhǎng)環(huán)境、穩(wěn)定實(shí)驗(yàn)動(dòng)物生活習(xí)性,、動(dòng)物形態(tài)十分有益,。
Abstract:
Key words :

關(guān)鍵字:YMl2864R 點(diǎn)陣式液晶 IVC監(jiān)控

實(shí)驗(yàn)動(dòng)物獨(dú)立通氣籠盒(Individual Ventilated Cages,IVC)(閉環(huán))監(jiān)控系統(tǒng),,由微控制器實(shí)現(xiàn)對(duì)籠盒風(fēng)扇的通氣量,、籠盒內(nèi)部的氨含量等參數(shù)采集,并根據(jù)這些參數(shù)來(lái)調(diào)整通氣風(fēng)扇轉(zhuǎn)速,,以調(diào)整籠盒的換氣率,,從而確保籠盒內(nèi)部的空氣質(zhì)量,。同時(shí),,根據(jù)相關(guān)參數(shù)指標(biāo)發(fā)出警報(bào)以提醒更換過(guò)濾膜等,實(shí)現(xiàn)對(duì)小動(dòng)物生長(zhǎng)環(huán)境的過(guò)程控制,。

在整個(gè)監(jiān)控系統(tǒng)中,,人機(jī)交互界面部分用于顯示整個(gè)實(shí)驗(yàn)動(dòng)物生長(zhǎng)環(huán)境過(guò)程中的控制歷史數(shù)據(jù),、實(shí)時(shí)控制參數(shù)和環(huán)境溫度參數(shù)等。

本文采用以ST7920為控制器的YMl2864R點(diǎn)陣式液晶顯示模塊(LCD Module,,LCM)構(gòu)成了整個(gè)IVC監(jiān)控系統(tǒng)的人機(jī)界面部分,。YM12864R點(diǎn)陣式液晶顯示模塊具有靈活的接口方式和簡(jiǎn)單的操作指令,構(gòu)成的全中文人機(jī)交互圖形界面既可以顯示8×4行16×16點(diǎn)陣的漢字,,也可以顯示圖形。模塊內(nèi)部設(shè)有2MB的中文字型CGROM和64×256點(diǎn)陣的GDRAM繪圖區(qū)域,;同時(shí),,提供4組可編程控制的16×16點(diǎn)陣造字空間。

1 點(diǎn)陣式液晶硬件接口設(shè)計(jì)

以ST7920為控制器的YM12864R點(diǎn)陣式液晶顯示模塊和單片機(jī)之間的接口方式有并行和串行兩種,。本文采用串行接口方式,,單片機(jī)選用AVR公司的ATmega16。接口電路如圖1所示,。其中,,PC4控制串行的片選信號(hào)(CS),低電平有效,;PC5控制串行的數(shù)據(jù)線(SID),;PC6控制串行的時(shí)鐘輸入(CLK)。ST7920通過(guò)VCC(+5 V)和GND之間串聯(lián)一個(gè)10 kΩ的電阻來(lái)控制背光強(qiáng)度,。如果不需要調(diào)節(jié)對(duì)比度,,可以直接將VLCD引腳接VCC(+5 V),此時(shí)對(duì)比度最大,。



2 文本顯示及繪圖顯示

2.1 文本顯示

ST7920可以顯示半寬的HCGROM字型,、CGRAM字型以及中文CGROM三種字型,通過(guò)在DDRAM中寫入的編碼選擇,。文本顯示DDRAM提供8個(gè)×4行的漢字空間,,如下所示:



字型編碼如下:

①顯示半寬HCGROM字型。將1字節(jié)寫入DDRAM中,,范圍為02H~7FH的編碼,。

②顯示半寬CGRAM字型。將2字節(jié)編碼寫入DDRAM中,,總共有0000H,、0002H、0004H,、0006H四種編碼,。

③顯示中文CGROM字型。將2字節(jié)編碼寫入DDRAM中,,范圍為A1AOH~FTFFH(GB碼)或A140H~D75FH(BIG5碼)的編碼,。

2.2  繪圖顯示

繪圖顯示GDRAM提供128×8字節(jié)的記憶空間,。在更改繪圖RAM時(shí),先連續(xù)寫入水平與垂直的坐標(biāo)值,,再寫入2個(gè)字節(jié)的數(shù)據(jù)到繪圖RAM中,,而地址計(jì)數(shù)器(AC)會(huì)自動(dòng)加1。在寫入繪圖顯示RAM的期間,,繪圖顯示功能必須關(guān)閉,。整個(gè)寫入繪圖RAM的步驟如下:

①關(guān)閉繪圖顯示功能;

②先將水平的位元組坐標(biāo)(X)寫入繪圖RAM地址,,再將垂直的坐標(biāo)(Y)寫入繪圖RAM地址,;

③依次將D15~D8和D7~D0寫入RAM中;

④打開(kāi)繪圖顯示功能,。

圖形顯示坐標(biāo)如圖2所示,。其中,水平方向X以字節(jié)單位,,垂直方向Y以位為單位,。



3 字符反白

在實(shí)現(xiàn)人機(jī)交互界面菜單時(shí),字符反白可以表示菜單中不同選項(xiàng)被選中的狀態(tài),。液晶顯示模塊YM12864R的使用手冊(cè)中提供了對(duì)應(yīng)行的反白指令,,但在原理上ST7920控制器的128×64點(diǎn)陣液晶等同于256×32點(diǎn)陣,第3行對(duì)應(yīng)的文本顯示(DDRAM)地址緊接著第1行,,第4行對(duì)應(yīng)的文本顯示(DDRAM)地址緊接第2行,。因此,用戶對(duì)第1行執(zhí)行反白顯示操作時(shí),,第3行必然也反白顯示,;對(duì)第2行執(zhí)行反白操作時(shí),第4行也必然反白,??梢?jiàn),使用手冊(cè)中自帶的反白指令不能實(shí)現(xiàn)任意字符的反白,。

為了解決上述問(wèn)題,,可以將圖形顯示和字符顯示結(jié)合起來(lái)使用。在ST7920控制器中,,文本顯示的DDRAM和圖形顯示的GDRAM是相互獨(dú)立的,,而最后顯示到液晶上的結(jié)果則是,文本顯示DDRAM中數(shù)據(jù)和圖形顯示GDRAM中數(shù)據(jù)的異或結(jié)果,。

如果要在液晶顯示模塊的某個(gè)點(diǎn)上呈現(xiàn)反白顯示,,那么就在該點(diǎn)繪圖并且顯示文本;如果要取消反白,,只需用全“0”擦掉該點(diǎn)的繪圖,。這樣,,就可以實(shí)現(xiàn)YM12864R的任意字符的反白。

字符反白程序流程如圖3所示,。其中,,base_x表示繪圖起始的行地址;Y_Pos表示繪圖起始的列地址,;第1行至第4行的起始地址分別是(0x80,,0x80),(0xS0,,0xg0),,(0x88,0xS0)和(0x88,,0x90),。



反白就是在需要反白的區(qū)域進(jìn)行繪圖,,即在這個(gè)區(qū)域?qū)戇M(jìn)0xff,。清除一個(gè)區(qū)域的反白,就是對(duì)需要清除反白的區(qū)域清除繪圖,,即在這個(gè)區(qū)域?qū)戇M(jìn)0x00,。

在整個(gè)繪圖的過(guò)程中,橫向地址指針是自動(dòng)進(jìn)行加1運(yùn)算的,,所以只需要確定這一行的首地址橫坐標(biāo),;而縱坐標(biāo)的地址不進(jìn)行自動(dòng)加1運(yùn)算,需要在程序中修正,,每次修正是以像素為基本單位的,。

字符反白顯示實(shí)例如圖4所示。



4 任意位置顯示任意大小圖形

在實(shí)現(xiàn)人機(jī)交互界面時(shí),,圖文結(jié)合是常見(jiàn)的一種方式,。本文嘗試一種任意位置顯示任意大小圖形(橫向尺寸以字節(jié)為基本單位,縱向尺寸以位為基本單位)的方法,,為人機(jī)交互界面的圖形結(jié)合設(shè)計(jì)提供了捷徑,。

4.1 任意位置顯示任意大小圖形程序

任意位置顯示任意大小圖形程序流程如圖5所示。其中,,x1和y1表示所畫(huà)圖的起始點(diǎn)相對(duì)于液晶屏幕左上角起始點(diǎn)(0xS0,,0x80)的距離(橫向x1以字節(jié)為基本單位,縱向y1以位為基本單位),;x表示所畫(huà)圖的起始橫坐標(biāo)地址,;y表示所畫(huà)圖的起始縱坐標(biāo)地址;Write_command()函數(shù)用于向液晶中寫命令,;templ表示圖形的縱向尺寸(以像素為單位),。



繪圖時(shí),,如果所畫(huà)的圖形只涉及上半屏(或下半屏),那么在寫地址時(shí)可以不考慮地址跨越上下半屏的調(diào)整,,只需要在所畫(huà)圖形的初始處寫好行地址和列地址:

Write_command(y+templ),;
Write_command(x);

在繪圖過(guò)程中,,橫坐標(biāo)地址指針會(huì)在寫數(shù)據(jù)的過(guò)程中自動(dòng)加1,,因此只需要寫出這一行的首地址;但縱坐標(biāo)地址指針不會(huì)自動(dòng)加1,,需要在程序中修正,。

4.2  任意位置顯示任意大小圖形實(shí)例   

任意位置顯示任意大小圖形實(shí)例如圖6(a)~(c) 所示。



結(jié)  語(yǔ)

ST7920因內(nèi)置字庫(kù)而被廣泛應(yīng)用,,其圖形顯示的關(guān)鍵點(diǎn)是熟練掌握?qǐng)D形顯示坐標(biāo),。在筆者所參與的獨(dú)立通氣籠盒監(jiān)控系統(tǒng)設(shè)計(jì)過(guò)程中,利用以ST7920為控制器的液晶顯示模塊構(gòu)建良好的人機(jī)交互界面,,以曲線和直方圖的方式顯示實(shí)時(shí)溫度,。系統(tǒng)可由用戶設(shè)定開(kāi)啟密碼,可以查看相關(guān)歷史數(shù)據(jù),、實(shí)現(xiàn)實(shí)驗(yàn)動(dòng)物生長(zhǎng)環(huán)境及生長(zhǎng)過(guò)程的控制,,以及回溯歷史數(shù)據(jù)、實(shí)時(shí)控制參數(shù)和環(huán)境溫度等參數(shù),。該設(shè)計(jì)對(duì)優(yōu)化控制實(shí)驗(yàn)動(dòng)物生長(zhǎng)環(huán)境,、穩(wěn)定實(shí)驗(yàn)動(dòng)物生活習(xí)性、動(dòng)物形態(tài)十分有益,。
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。