基于點陣式液晶顯示模塊的IVC監(jiān)控系統(tǒng)
摘要: ST7920因內(nèi)置字庫而被廣泛應用,其圖形顯示的關鍵點是熟練掌握圖形顯示坐標,。在筆者所參與的獨立通氣籠盒監(jiān)控系統(tǒng)設計過程中,,利用以ST7920為控制器的液晶顯示模塊構建良好的人機交互界面,,以曲線和直方圖的方式顯示實時溫度,。系統(tǒng)可由用戶設定開啟密碼,,可以查看相關歷史數(shù)據(jù),、實現(xiàn)實驗動物生長環(huán)境及生長過程的控制,,以及回溯歷史數(shù)據(jù)、實時控制參數(shù)和環(huán)境溫度等參數(shù),。該設計對優(yōu)化控制實驗動物生長環(huán)境,、穩(wěn)定實驗動物生活習性、動物形態(tài)十分有益,。
Abstract:
Key words :
關鍵字:YMl2864R 點陣式液晶 IVC監(jiān)控
實驗動物獨立通氣籠盒(Individual Ventilated Cages,,IVC)(閉環(huán))監(jiān)控系統(tǒng),由微控制器實現(xiàn)對籠盒風扇的通氣量,、籠盒內(nèi)部的氨含量等參數(shù)采集,,并根據(jù)這些參數(shù)來調(diào)整通氣風扇轉速,以調(diào)整籠盒的換氣率,,從而確?;\盒內(nèi)部的空氣質(zhì)量。同時,,根據(jù)相關參數(shù)指標發(fā)出警報以提醒更換過濾膜等,,實現(xiàn)對小動物生長環(huán)境的過程控制。
在整個監(jiān)控系統(tǒng)中,,人機交互界面部分用于顯示整個實驗動物生長環(huán)境過程中的控制歷史數(shù)據(jù),、實時控制參數(shù)和環(huán)境溫度參數(shù)等,。
本文采用以ST7920為控制器的YMl2864R點陣式液晶顯示模塊(LCD Module,LCM)構成了整個IVC監(jiān)控系統(tǒng)的人機界面部分,。YM12864R點陣式液晶顯示模塊具有靈活的接口方式和簡單的操作指令,,構成的全中文人機交互圖形界面既可以顯示8×4行16×16點陣的漢字,也可以顯示圖形,。模塊內(nèi)部設有2MB的中文字型CGROM和64×256點陣的GDRAM繪圖區(qū)域,;同時,提供4組可編程控制的16×16點陣造字空間,。
1 點陣式液晶硬件接口設計
以ST7920為控制器的YM12864R點陣式液晶顯示模塊和單片機之間的接口方式有并行和串行兩種,。本文采用串行接口方式,單片機選用AVR公司的ATmega16,。接口電路如圖1所示。其中,,PC4控制串行的片選信號(CS),,低電平有效;PC5控制串行的數(shù)據(jù)線(SID),;PC6控制串行的時鐘輸入(CLK),。ST7920通過VCC(+5 V)和GND之間串聯(lián)一個10 kΩ的電阻來控制背光強度。如果不需要調(diào)節(jié)對比度,,可以直接將VLCD引腳接VCC(+5 V),,此時對比度最大。

2 文本顯示及繪圖顯示
2.1 文本顯示
ST7920可以顯示半寬的HCGROM字型,、CGRAM字型以及中文CGROM三種字型,,通過在DDRAM中寫入的編碼選擇。文本顯示DDRAM提供8個×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時,,先連續(xù)寫入水平與垂直的坐標值,再寫入2個字節(jié)的數(shù)據(jù)到繪圖RAM中,,而地址計數(shù)器(AC)會自動加1,。在寫入繪圖顯示RAM的期間,繪圖顯示功能必須關閉,。整個寫入繪圖RAM的步驟如下:
①關閉繪圖顯示功能,;
②先將水平的位元組坐標(X)寫入繪圖RAM地址,再將垂直的坐標(Y)寫入繪圖RAM地址,;
③依次將D15~D8和D7~D0寫入RAM中,;
④打開繪圖顯示功能。
圖形顯示坐標如圖2所示,。其中,,水平方向X以字節(jié)單位,垂直方向Y以位為單位,。

3 字符反白
在實現(xiàn)人機交互界面菜單時,,字符反白可以表示菜單中不同選項被選中的狀態(tài)。液晶顯示模塊YM12864R的使用手冊中提供了對應行的反白指令,,但在原理上ST7920控制器的128×64點陣液晶等同于256×32點陣,,第3行對應的文本顯示(DDRAM)地址緊接著第1行,第4行對應的文本顯示(DDRAM)地址緊接第2行,。因此,,用戶對第1行執(zhí)行反白顯示操作時,第3行必然也反白顯示,;對第2行執(zhí)行反白操作時,,第4行也必然反白??梢?,使用手冊中自帶的反白指令不能實現(xiàn)任意字符的反白。
為了解決上述問題,,可以將圖形顯示和字符顯示結合起來使用,。在ST7920控制器中,文本顯示的DDRAM和圖形顯示的GDRAM是相互獨立的,,而最后顯示到液晶上的結果則是,,文本顯示DDRAM中數(shù)據(jù)和圖形顯示GDRAM中數(shù)據(jù)的異或結果。
如果要在液晶顯示模塊的某個點上呈現(xiàn)反白顯示,,那么就在該點繪圖并且顯示文本,;如果要取消反白,只需用全“0”擦掉該點的繪圖,。這樣,,就可以實現(xiàn)YM12864R的任意字符的反白,。
字符反白程序流程如圖3所示。其中,,base_x表示繪圖起始的行地址,;Y_Pos表示繪圖起始的列地址;第1行至第4行的起始地址分別是(0x80,,0x80),,(0xS0,0xg0),,(0x88,,0xS0)和(0x88,0x90),。

反白就是在需要反白的區(qū)域進行繪圖,,即在這個區(qū)域寫進0xff。清除一個區(qū)域的反白,,就是對需要清除反白的區(qū)域清除繪圖,,即在這個區(qū)域寫進0x00。
在整個繪圖的過程中,,橫向地址指針是自動進行加1運算的,所以只需要確定這一行的首地址橫坐標,;而縱坐標的地址不進行自動加1運算,,需要在程序中修正,每次修正是以像素為基本單位的,。
字符反白顯示實例如圖4所示,。

4 任意位置顯示任意大小圖形
在實現(xiàn)人機交互界面時,圖文結合是常見的一種方式,。本文嘗試一種任意位置顯示任意大小圖形(橫向尺寸以字節(jié)為基本單位,,縱向尺寸以位為基本單位)的方法,為人機交互界面的圖形結合設計提供了捷徑,。
4.1 任意位置顯示任意大小圖形程序
任意位置顯示任意大小圖形程序流程如圖5所示,。其中,x1和y1表示所畫圖的起始點相對于液晶屏幕左上角起始點(0xS0,,0x80)的距離(橫向x1以字節(jié)為基本單位,,縱向y1以位為基本單位);x表示所畫圖的起始橫坐標地址,;y表示所畫圖的起始縱坐標地址,;Write_command()函數(shù)用于向液晶中寫命令;templ表示圖形的縱向尺寸(以像素為單位),。

繪圖時,,如果所畫的圖形只涉及上半屏(或下半屏),,那么在寫地址時可以不考慮地址跨越上下半屏的調(diào)整,只需要在所畫圖形的初始處寫好行地址和列地址:
Write_command(y+templ),;
Write_command(x),;
在繪圖過程中,橫坐標地址指針會在寫數(shù)據(jù)的過程中自動加1,,因此只需要寫出這一行的首地址,;但縱坐標地址指針不會自動加1,需要在程序中修正,。
4.2 任意位置顯示任意大小圖形實例
任意位置顯示任意大小圖形實例如圖6(a)~(c) 所示,。

結 語
ST7920因內(nèi)置字庫而被廣泛應用,其圖形顯示的關鍵點是熟練掌握圖形顯示坐標,。在筆者所參與的獨立通氣籠盒監(jiān)控系統(tǒng)設計過程中,,利用以ST7920為控制器的液晶顯示模塊構建良好的人機交互界面,以曲線和直方圖的方式顯示實時溫度,。系統(tǒng)可由用戶設定開啟密碼,,可以查看相關歷史數(shù)據(jù)、實現(xiàn)實驗動物生長環(huán)境及生長過程的控制,,以及回溯歷史數(shù)據(jù),、實時控制參數(shù)和環(huán)境溫度等參數(shù)。該設計對優(yōu)化控制實驗動物生長環(huán)境,、穩(wěn)定實驗動物生活習性,、動物形態(tài)十分有益。
在整個監(jiān)控系統(tǒng)中,,人機交互界面部分用于顯示整個實驗動物生長環(huán)境過程中的控制歷史數(shù)據(jù),、實時控制參數(shù)和環(huán)境溫度參數(shù)等,。
本文采用以ST7920為控制器的YMl2864R點陣式液晶顯示模塊(LCD Module,LCM)構成了整個IVC監(jiān)控系統(tǒng)的人機界面部分,。YM12864R點陣式液晶顯示模塊具有靈活的接口方式和簡單的操作指令,,構成的全中文人機交互圖形界面既可以顯示8×4行16×16點陣的漢字,也可以顯示圖形,。模塊內(nèi)部設有2MB的中文字型CGROM和64×256點陣的GDRAM繪圖區(qū)域,;同時,提供4組可編程控制的16×16點陣造字空間,。
1 點陣式液晶硬件接口設計
以ST7920為控制器的YM12864R點陣式液晶顯示模塊和單片機之間的接口方式有并行和串行兩種,。本文采用串行接口方式,單片機選用AVR公司的ATmega16,。接口電路如圖1所示。其中,,PC4控制串行的片選信號(CS),,低電平有效;PC5控制串行的數(shù)據(jù)線(SID),;PC6控制串行的時鐘輸入(CLK),。ST7920通過VCC(+5 V)和GND之間串聯(lián)一個10 kΩ的電阻來控制背光強度。如果不需要調(diào)節(jié)對比度,,可以直接將VLCD引腳接VCC(+5 V),,此時對比度最大。

2 文本顯示及繪圖顯示
2.1 文本顯示
ST7920可以顯示半寬的HCGROM字型,、CGRAM字型以及中文CGROM三種字型,,通過在DDRAM中寫入的編碼選擇。文本顯示DDRAM提供8個×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時,,先連續(xù)寫入水平與垂直的坐標值,再寫入2個字節(jié)的數(shù)據(jù)到繪圖RAM中,,而地址計數(shù)器(AC)會自動加1,。在寫入繪圖顯示RAM的期間,繪圖顯示功能必須關閉,。整個寫入繪圖RAM的步驟如下:
①關閉繪圖顯示功能,;
②先將水平的位元組坐標(X)寫入繪圖RAM地址,再將垂直的坐標(Y)寫入繪圖RAM地址,;
③依次將D15~D8和D7~D0寫入RAM中,;
④打開繪圖顯示功能。
圖形顯示坐標如圖2所示,。其中,,水平方向X以字節(jié)單位,垂直方向Y以位為單位,。

3 字符反白
在實現(xiàn)人機交互界面菜單時,,字符反白可以表示菜單中不同選項被選中的狀態(tài)。液晶顯示模塊YM12864R的使用手冊中提供了對應行的反白指令,,但在原理上ST7920控制器的128×64點陣液晶等同于256×32點陣,,第3行對應的文本顯示(DDRAM)地址緊接著第1行,第4行對應的文本顯示(DDRAM)地址緊接第2行,。因此,,用戶對第1行執(zhí)行反白顯示操作時,第3行必然也反白顯示,;對第2行執(zhí)行反白操作時,,第4行也必然反白??梢?,使用手冊中自帶的反白指令不能實現(xiàn)任意字符的反白。
為了解決上述問題,,可以將圖形顯示和字符顯示結合起來使用,。在ST7920控制器中,文本顯示的DDRAM和圖形顯示的GDRAM是相互獨立的,,而最后顯示到液晶上的結果則是,,文本顯示DDRAM中數(shù)據(jù)和圖形顯示GDRAM中數(shù)據(jù)的異或結果。
如果要在液晶顯示模塊的某個點上呈現(xiàn)反白顯示,,那么就在該點繪圖并且顯示文本,;如果要取消反白,只需用全“0”擦掉該點的繪圖,。這樣,,就可以實現(xiàn)YM12864R的任意字符的反白,。
字符反白程序流程如圖3所示。其中,,base_x表示繪圖起始的行地址,;Y_Pos表示繪圖起始的列地址;第1行至第4行的起始地址分別是(0x80,,0x80),,(0xS0,0xg0),,(0x88,,0xS0)和(0x88,0x90),。

反白就是在需要反白的區(qū)域進行繪圖,,即在這個區(qū)域寫進0xff。清除一個區(qū)域的反白,,就是對需要清除反白的區(qū)域清除繪圖,,即在這個區(qū)域寫進0x00。
在整個繪圖的過程中,,橫向地址指針是自動進行加1運算的,所以只需要確定這一行的首地址橫坐標,;而縱坐標的地址不進行自動加1運算,,需要在程序中修正,每次修正是以像素為基本單位的,。
字符反白顯示實例如圖4所示,。

4 任意位置顯示任意大小圖形
在實現(xiàn)人機交互界面時,圖文結合是常見的一種方式,。本文嘗試一種任意位置顯示任意大小圖形(橫向尺寸以字節(jié)為基本單位,,縱向尺寸以位為基本單位)的方法,為人機交互界面的圖形結合設計提供了捷徑,。
4.1 任意位置顯示任意大小圖形程序
任意位置顯示任意大小圖形程序流程如圖5所示,。其中,x1和y1表示所畫圖的起始點相對于液晶屏幕左上角起始點(0xS0,,0x80)的距離(橫向x1以字節(jié)為基本單位,,縱向y1以位為基本單位);x表示所畫圖的起始橫坐標地址,;y表示所畫圖的起始縱坐標地址,;Write_command()函數(shù)用于向液晶中寫命令;templ表示圖形的縱向尺寸(以像素為單位),。

繪圖時,,如果所畫的圖形只涉及上半屏(或下半屏),,那么在寫地址時可以不考慮地址跨越上下半屏的調(diào)整,只需要在所畫圖形的初始處寫好行地址和列地址:
Write_command(y+templ),;
Write_command(x),;
在繪圖過程中,橫坐標地址指針會在寫數(shù)據(jù)的過程中自動加1,,因此只需要寫出這一行的首地址,;但縱坐標地址指針不會自動加1,需要在程序中修正,。
4.2 任意位置顯示任意大小圖形實例
任意位置顯示任意大小圖形實例如圖6(a)~(c) 所示,。

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