單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:移動(dòng)字幕的制作_第1頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:移動(dòng)字幕的制作_第2頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:移動(dòng)字幕的制作_第3頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:移動(dòng)字幕的制作_第4頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:移動(dòng)字幕的制作_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

任務(wù)一

用點(diǎn)陣LED實(shí)現(xiàn)移動(dòng)字符顯示任務(wù)二

字符液晶LCD1602顯示應(yīng)用任務(wù)三

點(diǎn)陣液晶LCD12864顯示應(yīng)用使用單個(gè)LED或7段LED數(shù)碼管作為顯示器件,能顯示有限的簡易字符,對于復(fù)雜的字符(包括漢字)及復(fù)雜的圖形信息等是無法顯示的。單色LED點(diǎn)陣則將很多單個(gè)的LED按矩陣的方式排列在一起,通過控制每個(gè)LED發(fā)光或熄滅,完成各種復(fù)雜字符或圖形的顯示。任務(wù)提出任務(wù)一

用點(diǎn)陣LED實(shí)現(xiàn)移動(dòng)字符顯示在電子設(shè)備中,通常圖像由很多細(xì)小的“像素”組合而成,通過LED點(diǎn)陣顯示這些像素點(diǎn),就構(gòu)成了整個(gè)圖像。漢字在顯示時(shí),可以被認(rèn)為是一種規(guī)格化的特殊圖像。本任務(wù)的內(nèi)容是在16×16點(diǎn)陣LED上實(shí)現(xiàn)漢字的滾動(dòng)顯示。根據(jù)任務(wù)目標(biāo),單片機(jī)必須控制16×16點(diǎn)陣LED中每一只LED的顯示狀態(tài),才能將這些LED構(gòu)成相應(yīng)的漢字圖形。移動(dòng)字幕,實(shí)際上就是被顯示的點(diǎn)陣(在程序中是一批數(shù)據(jù))隨時(shí)間在顯示的位置上不斷發(fā)生變化的結(jié)果。從程序的角度出發(fā),是將一批數(shù)據(jù)送到LED點(diǎn)陣的不同位置,控制了LED點(diǎn)陣的亮滅,就實(shí)現(xiàn)了顯示字符的移動(dòng)效果。任務(wù)分析一、點(diǎn)陣顯示原理在顯示各種信息時(shí),不管是規(guī)范的數(shù)字、字符、漢字,或者是圖片,均可以看成是一幅圖像。數(shù)字化處理圖像時(shí),將圖像分為若干區(qū)域,用每個(gè)區(qū)域的平均亮度(或顏色深度)來表示該區(qū)域的信息。在還原圖像時(shí),按區(qū)域的平均值進(jìn)行顯示,這種方式損失了一定的圖像細(xì)節(jié)。單位面積劃分的采樣區(qū)域越多,對應(yīng)的數(shù)據(jù)也越多,硬件成本越高,還原的圖像越逼真。在實(shí)踐中,往往根據(jù)系統(tǒng)需求,在分辨率和成本上折中處理。相關(guān)知識在各種字符的處理過程中,分辨率低的直接采用點(diǎn)陣存儲,分辨率高的往往采用曲線描述字符的筆畫邊沿。前者數(shù)據(jù)量小,強(qiáng)行放大時(shí),筆畫的邊沿出現(xiàn)鋸齒狀;后者在理論上可以被無限地放大,筆畫輪廓仍然能保持圓滑。不同規(guī)格的點(diǎn)陣示例a)8×8點(diǎn)陣

b)8×16點(diǎn)陣

c)16×16點(diǎn)陣的結(jié)構(gòu)圖在對各種點(diǎn)陣進(jìn)行存儲等處理時(shí),描述每一個(gè)點(diǎn)都需要一個(gè)二進(jìn)制位,故不同規(guī)格的點(diǎn)陣占用的存儲空間也不相同。對于同一個(gè)字符,8×8點(diǎn)陣只需要8個(gè)字節(jié),8×16點(diǎn)陣需要16個(gè)字節(jié),16×16點(diǎn)陣則需要32個(gè)字節(jié)。二、LED點(diǎn)陣從理論上說,不論顯示圖形還是文字,只要控制組成這些圖形或文字的各個(gè)點(diǎn)所在位置的LED器件的發(fā)光狀態(tài),就可以得到想要的顯示結(jié)果,這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱為靜態(tài)驅(qū)動(dòng)顯示方式。16×16的點(diǎn)陣共有256個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多端口,如果采用鎖存器來擴(kuò)展端口,按8位鎖存器來計(jì)算,16×16的點(diǎn)陣需要256/8=32個(gè)鎖存器。這個(gè)數(shù)字很龐大,因?yàn)檫@僅僅是按16×16的點(diǎn)陣計(jì)算得到,在實(shí)際應(yīng)用中的顯示屏往往要大得多,這樣鎖存器的成本將是一個(gè)很龐大的數(shù)字。一般來說,需要高亮度顯示的各類點(diǎn)陣顯示屏是采用靜態(tài)顯示的驅(qū)動(dòng)方式,為了降低成本,點(diǎn)陣顯示往往采用動(dòng)態(tài)顯示的方式。根據(jù)市場需要,動(dòng)態(tài)顯示的LED點(diǎn)陣往往以標(biāo)準(zhǔn)點(diǎn)陣模塊方式生產(chǎn)。最常見的LED點(diǎn)陣顯示模塊有5×7、7×9、8×8等各種結(jié)構(gòu),前兩種主要用于顯示各種西文字符,后一種可多模塊組合用于漢字、圖形的顯示,并且可組建大型電子顯示屏。8×8LED點(diǎn)陣模塊a)原理圖

b)實(shí)物圖單個(gè)8×8LED點(diǎn)陣顯示原理電路圖數(shù)字“0”的8×8點(diǎn)陣示意圖數(shù)字0~9的8×8點(diǎn)陣其他字符和漢字的代碼可以從計(jì)算機(jī)顯示字庫中獲得,也可用軟件轉(zhuǎn)換而來。對于特殊符號或圖案,也常采用先繪出圖形后再根據(jù)圖形寫出對應(yīng)代碼的方法。一個(gè)8×8點(diǎn)陣在同一時(shí)間只能顯示其中一個(gè)數(shù)字,為了顯示數(shù)字0~9,設(shè)定每隔1s變換一個(gè)顯示數(shù)字,即每個(gè)數(shù)字將連續(xù)顯示1s,然后再換為下一個(gè)數(shù)字顯示。由于8行8列的LED點(diǎn)陣引線的公共端是連接在一起的,所以不能同時(shí)將這些LED都加以控制,只能按行或者按列分別控制顯示,以小于人眼視覺暫留時(shí)間的間隔重復(fù)顯示,也就是要求每秒至少顯示50次以上,要求一個(gè)字符一次顯示的時(shí)間小于2ms,顯示一列(或一行)的時(shí)間小于250μs。而具體的顯示過程與數(shù)碼管的動(dòng)態(tài)顯示過程相似。以按列顯示為例,首先顯示一列,延遲一段時(shí)間,再顯示下一列,再延遲……直到顯示完全部列后再重復(fù)進(jìn)行顯示。如字符“0”的顯示過程如下:首先在P0口送出第一個(gè)行控制碼00H,在P2口送出一個(gè)列控制碼01111111;再在P0口送出第二個(gè)行控制碼00H,在P2口送出一個(gè)列控制碼10111111;再在P0口送出第三個(gè)行控制碼3EH,在P2口送出一個(gè)列控制碼11011111;再在P0口送出第四個(gè)行控制碼41H,在P2口送出一個(gè)列控制碼11101111;……送完8個(gè)行控制和8個(gè)列控制信號,這樣一個(gè)“0”字就被顯示了一遍,接著再重復(fù)上述顯示過程。三、LED點(diǎn)陣驅(qū)動(dòng)電路如果采用靜態(tài)顯示,則相當(dāng)于控制若干個(gè)獨(dú)立LED,每只LED都需要一個(gè)鎖存器來存儲其顯示的電平,即使采用8D鎖存器,器件數(shù)量也是較為龐大的。如果僅使用一只8×8LED點(diǎn)陣作為顯示器件,可以采用8只數(shù)碼管動(dòng)態(tài)顯示的驅(qū)動(dòng)電路。如果要顯示更多的像素點(diǎn),則需要多塊8×8LED點(diǎn)陣組合使用。很顯然,用4塊8×8LED點(diǎn)陣可組成16×16LED點(diǎn)陣,需要16根行線和16根列線的驅(qū)動(dòng)電路。可以采用鎖存器、譯碼器等電路驅(qū)動(dòng),與前面的數(shù)碼管動(dòng)態(tài)顯示的驅(qū)動(dòng)類似;也可以采用專用的數(shù)碼管動(dòng)態(tài)顯示驅(qū)動(dòng)電路來實(shí)現(xiàn)行線和列線的驅(qū)動(dòng),如ZLG7290。如果要同時(shí)顯示更多的點(diǎn),則需要更多的LED點(diǎn)陣模塊,更多的顯示驅(qū)動(dòng)電路。但是,用動(dòng)態(tài)顯示的方式同時(shí)驅(qū)動(dòng)的點(diǎn)陣太多,將會(huì)使每一只LED點(diǎn)亮的平均時(shí)間減少,從而使顯示的亮度降低。在處理較多點(diǎn)的LED顯示時(shí),可以采用多個(gè)動(dòng)態(tài)顯示模塊組合的方式。四、點(diǎn)陣取模軟件為了便于獲取數(shù)字、英文、符號、漢字及圖像的點(diǎn)陣,可以使用各類點(diǎn)陣取模軟件來獲得字符和圖像的點(diǎn)陣字模。這類軟件在字符模式下可以對字符進(jìn)行處理,支持對常用字符進(jìn)行取模,支持使用指定字體、指定取點(diǎn)模式及字節(jié)排列模式,支持使用系統(tǒng)中任意字體對字符進(jìn)行取模,支持字體加粗、斜體、刪除線、下劃線等設(shè)置;在圖像模式下,支持打開常用圖片格式文體,通常也支持繪制、修改圖片。同時(shí),這類軟件往往可以設(shè)置輸出匯編或C數(shù)組格式。一、硬件設(shè)計(jì)本任務(wù)是在16×16點(diǎn)陣LED上實(shí)現(xiàn)漢字的滾動(dòng)顯示,在硬件上要能夠控制點(diǎn)陣中的每一只LED的亮滅狀態(tài)。由于本任務(wù)不需要其他控制,故本任務(wù)的硬件電路僅由單片機(jī)的最小系統(tǒng)、LED點(diǎn)陣及點(diǎn)陣的驅(qū)動(dòng)電路構(gòu)成。單片機(jī)芯片及其最小系統(tǒng)的選擇見中的相關(guān)內(nèi)容,本任務(wù)使用AT89S51及12MHz的晶振。任務(wù)實(shí)施在本任務(wù)中,選擇4塊8×8LED點(diǎn)陣模塊構(gòu)成16×16的LED點(diǎn)陣。由于所有的LED分別按行列連接在一起,故只能采用動(dòng)態(tài)顯示方式驅(qū)動(dòng)LED點(diǎn)陣。在本任務(wù)中,采用兩塊8D鎖存器74HC573作為LED點(diǎn)陣的行驅(qū)動(dòng)電路,同時(shí)采用兩塊串行移位寄存器74LS164作為LED點(diǎn)陣的列驅(qū)動(dòng)電路。當(dāng)74HC573的數(shù)據(jù)鎖存控制端為高電平時(shí),其內(nèi)部的D觸發(fā)器的數(shù)據(jù)相同,在低電平時(shí)其內(nèi)部觸發(fā)器的數(shù)據(jù)將一直維持之前的數(shù)據(jù),相當(dāng)于下降沿鎖存;當(dāng)74HC573的輸出使能端為低電平時(shí),其內(nèi)部的D觸發(fā)器的數(shù)據(jù)允許輸出,否則其輸出端為高阻態(tài)。LED點(diǎn)陣實(shí)現(xiàn)漢字滾動(dòng)顯示的硬件電路如圖所示。如果需要平衡和穩(wěn)定LED的顯示亮度,可以在LED點(diǎn)陣的行與74HC573的輸出引腳之間串接限流電阻。16×16的LED點(diǎn)陣顯示電路原理圖二、軟件設(shè)計(jì)滾動(dòng)顯示漢字,實(shí)際上是將顯示屏上的顯示內(nèi)容不斷地進(jìn)行連續(xù)的修改,如果每次修改都是將上次顯示內(nèi)容向左移動(dòng)一列,在最右邊一列補(bǔ)充新的內(nèi)容,則顯示的效果為顯示內(nèi)容向左移動(dòng)。修改顯示內(nèi)容的時(shí)間間隔決定了移動(dòng)速度,這個(gè)時(shí)間間隔在本任務(wù)中采用定時(shí)中斷實(shí)現(xiàn)。在動(dòng)態(tài)顯示函數(shù)中,為了實(shí)現(xiàn)16×16點(diǎn)陣的顯示,采用逐列動(dòng)態(tài)顯示方式。三、Proteus仿真參照前面任務(wù)介紹的方法和步驟進(jìn)行Proteus仿真。如圖所示為單片機(jī)控制LED點(diǎn)陣顯示的仿真效果圖。說明:仿真電路中使用網(wǎng)絡(luò)標(biāo)號表示電路的連接情況。單片機(jī)控制LCD1602仿真效果圖在字符和圖形顯示應(yīng)用方面,除用LED點(diǎn)陣顯示外,在生產(chǎn)和生活中還廣泛地應(yīng)用LCD顯示器。LCD顯示器種類繁多,在單片機(jī)開發(fā)中常用到字符液晶和點(diǎn)陣液晶顯示器的字符顯示與控制方法。任務(wù)提出任務(wù)二

字符液晶LCD1602顯示應(yīng)用本任務(wù)的內(nèi)容是使用單片機(jī)控制字符液晶LCD1602參數(shù)值,在屏幕上顯示出以下內(nèi)容:1.在LCD1602的第一行顯示提示“This’sasample!”。2.在LCD1602的第二行顯示:“No.”和參數(shù)數(shù)值。3.參數(shù)數(shù)值的范圍為0~65535,顯示初值為0,每秒鐘顯示的參數(shù)值加1。本任務(wù)主要是以單片機(jī)為核心控制液晶顯示器實(shí)現(xiàn)文字字符的顯示,由于LCD顯示模塊都采用標(biāo)準(zhǔn)TTL電平接口,可直接與單片機(jī)端口連接,故本任務(wù)設(shè)計(jì)系統(tǒng)硬件框圖如圖所示。任務(wù)分析LCD顯示系統(tǒng)框圖由于LCD字符顯示和點(diǎn)陣液晶能顯示的內(nèi)容不同,在實(shí)際應(yīng)用中需要根據(jù)顯示內(nèi)容來選擇是采用字符型液晶還是點(diǎn)陣液晶。若只需顯示指定字符、數(shù)字,則可用字符型液晶,如選用LCD1602作為顯示器件;若還需要顯示漢字、圖像,則只能選擇用點(diǎn)陣液晶,如選用LCD12864作為顯示器件。一、LCD1602液晶顯示器簡介液晶顯示器具有體積小、質(zhì)量輕、功耗極低、顯示內(nèi)容豐富等特點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到了廣泛的應(yīng)用。相關(guān)知識LCD1602是典型的字符液晶,它是一種專門用于顯示字母、數(shù)字、符號等的點(diǎn)陣液晶模塊,它由若干個(gè)5×7或5×11點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每個(gè)點(diǎn)陣位和每一行之間都有一個(gè)點(diǎn)距的間隔位,不用于顯示圖形。LCD1602可顯示兩行內(nèi)容,每行能顯示16個(gè)字符,其實(shí)物外觀和內(nèi)部結(jié)構(gòu)示意如圖所示。LCD1602外形圖a)實(shí)物圖

b)結(jié)構(gòu)示意圖二、LCD1602顯示控制1.LCD1602的引腳功能LCD1602的引腳說明2.LCD1602的基本操作時(shí)序讀狀態(tài):輸入:RS=L,RW=H,EN=H輸出:D0~D7=狀態(tài)字寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,EN=高脈沖輸出:無讀數(shù)據(jù):輸入:RS=H,RW=H,EN=H輸出:D0~D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),EN=高脈沖輸出:無3.LCD1602的指令說明(1)00111000:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口。(2)00000001:顯示清屏,數(shù)據(jù)指針清0,所有顯示清0。(3)00000010:顯示回車,數(shù)據(jù)指針清0。(4)00001DCB:D=1開顯示D=0關(guān)顯示。C=1顯示光標(biāo)C=0不顯示光標(biāo)。B=1光標(biāo)閃爍B=0光標(biāo)不顯示。(5)000001NS:N=1:當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加1,且光標(biāo)加1。N=0:當(dāng)讀或?qū)懸粋€(gè)字符后地址指針減1,且光標(biāo)減1。S=1:當(dāng)寫一個(gè)字符后,整屏顯示左移(N=1)或右移(N=0),實(shí)現(xiàn)光標(biāo)不移動(dòng)而屏幕移動(dòng)的效果。S=0:當(dāng)寫一個(gè)字符后,整屏顯示不移動(dòng)。(6)80H~A7H:設(shè)置數(shù)據(jù)地址指針(第一行)。(7)C0H~E7H:設(shè)置數(shù)據(jù)地址指針(第二行)。三、LCD1602驅(qū)動(dòng)函數(shù)從LCD1602的接口定義可知,LCD1602有一個(gè)8位(D0~D7)的數(shù)據(jù)接口和三根控制信號線,在電路中這些引腳需要連接到單片機(jī),單片機(jī)通過端口控制LCD1602顯示字符和數(shù)據(jù)。在編寫驅(qū)動(dòng)程序時(shí),需要用到與LCD1602連接的數(shù)據(jù)端口和控制引腳,為了使用方便,在下面的程序中將數(shù)據(jù)端口和控制引腳進(jìn)行了定義。具體使用時(shí),若單片機(jī)的端口與液晶模塊的連接方式不同,應(yīng)在程序中按硬件的實(shí)際連接修改這些定義,驅(qū)動(dòng)函數(shù)不需要更改即可用于其他單片機(jī)系統(tǒng)。1.檢測LCD是否忙如果LCD1602空閑則退出,否則等待一段時(shí)間,直到空閑為止。2.向LCD寫命令函數(shù)。可以通過調(diào)用該函數(shù)設(shè)置LCD1602的工作狀態(tài),也可以設(shè)置光標(biāo)位置(即顯示地址)。3.向LCD寫入數(shù)據(jù)函數(shù)該函數(shù)寫入的內(nèi)容為顯示字符的ASCII碼或自定義字符的點(diǎn)陣。4.設(shè)置顯示位置函數(shù)參數(shù)x為列地址,有效范圍為0~15。參數(shù)y為行地址,0為第一行,否則為第二行。5.在指定的位置上顯示一個(gè)字符參數(shù)x為顯示的列數(shù),參數(shù)y為顯示的行數(shù),參數(shù)dat是顯示內(nèi)容的ASCII碼。6.在指定的位置上顯示一個(gè)字符串函數(shù)將在x列y行開始顯示從地址s開始的一個(gè)字符串,以字符串的結(jié)束標(biāo)志為顯示結(jié)束。四、LCD1602顯示示例LCD_write_char函數(shù)用于在LCD1602上顯示一個(gè)字符,LCD_write_string函數(shù)用于在LCD1602上顯示一個(gè)字符串,字符串是由一個(gè)或多個(gè)字符組成的,故兩個(gè)顯示函數(shù)可實(shí)現(xiàn)相同的字符顯示功能。LCD1602接收的數(shù)據(jù)是ASCII字符。在顯示各種字符時(shí),把要顯示字符的ASCII值通過這兩個(gè)顯示函數(shù)顯示即可。一、硬件設(shè)計(jì)本任務(wù)是在LCD1602的第一行顯示提示“This’sasample!”,在第二行顯示:“No.”和參數(shù)數(shù)值。LCD1602與單片機(jī)的連接十分簡單,只需要將數(shù)據(jù)接口(D0~D7)、控制總線(RS、RW、EN)連接到單片機(jī)的IO端口即可。因此,控制LCD1602顯示的硬件電路僅包含單片機(jī)的最小系統(tǒng)和LCD1602的接口電路,如圖所示。任務(wù)實(shí)施LCD1602顯示電路原理圖二、軟件設(shè)計(jì)根據(jù)任務(wù)目標(biāo),在LCD1602上顯示提示字符串和計(jì)數(shù)次數(shù)。由于LCD1602內(nèi)部有存儲器,單片機(jī)只要將顯示數(shù)據(jù)送到LCD1602的存儲器中,LCD1602內(nèi)部的控制電路會(huì)自動(dòng)將這些內(nèi)容不斷地顯示在液晶屏上,所以使用單片機(jī)驅(qū)動(dòng)LCD1602顯示與單片機(jī)驅(qū)動(dòng)數(shù)碼管靜態(tài)顯示類似,在需要更新顯示時(shí)才輸出數(shù)據(jù)到LCD1602。因此,系統(tǒng)軟件流程如圖所示。要實(shí)現(xiàn)在LCD1602上的顯示計(jì)數(shù)次數(shù),需將次數(shù)轉(zhuǎn)換為對應(yīng)的字符串,然后再送入LCD1602。在本任務(wù)中,顯示次數(shù)需要采用整型變量存儲,采用循環(huán)模10得到個(gè)位和除10數(shù)據(jù)右移一位相結(jié)合的方式得到次數(shù)的其他各位數(shù)據(jù),在每位數(shù)據(jù)的基礎(chǔ)上加上0的ASCII值即得到各位數(shù)碼。為了不顯示次數(shù)前面的0,將字符串初始化為空格組成的字符串,除了末位外,其他數(shù)據(jù)為0時(shí)不再修改字符串中的空格。整個(gè)計(jì)算和顯示的程序流程圖如所示,相應(yīng)的程序見源程序中的display函數(shù)。LCD1602顯示系統(tǒng)軟件流程圖a)顯示流程

b)數(shù)據(jù)計(jì)算流程三、Proteus仿真參照前面任務(wù)介紹的方法和步驟進(jìn)行Proteus仿真。如圖所示為單片機(jī)控制LCD1602顯示仿真效果圖。單片機(jī)控制LCD1602顯示仿真效果圖本任務(wù)是使用單片機(jī)控制點(diǎn)陣液晶LCD12864顯示,具體任務(wù)為:1.在LCD12864的第一行顯示提示“點(diǎn)陣顯示示例”。2.在LCD12864的第二行顯示:“次數(shù):”和參數(shù)數(shù)值。3.參數(shù)數(shù)值的范圍為0~99,顯示初值為0,每秒鐘顯示參數(shù)的值加1。任務(wù)提出任務(wù)三

點(diǎn)陣液晶LCD12864顯示應(yīng)用雖然LCD有字符顯示和點(diǎn)陣顯示液晶等多種類型,但在與單片機(jī)的硬件連接上基本結(jié)構(gòu)是一致的,主要區(qū)別是針對不同的LCD模塊功能,程序設(shè)計(jì)上有所不同。本任務(wù)主要是以單片機(jī)為核心控制液晶顯示器實(shí)現(xiàn)點(diǎn)陣文字字符的顯示,由于LCD顯示模塊都采用標(biāo)準(zhǔn)TTL電平接口,可直接與單片機(jī)端口連接,故本任務(wù)設(shè)計(jì)系統(tǒng)硬件框圖如圖所示。任務(wù)分析LCD顯示系統(tǒng)框圖一、LCD12864液晶顯示器簡介LCD12864有多種型號,通常是指128列×64行的點(diǎn)陣液晶模塊,常見的有STN、FSTN、DFSTN三大類型,其內(nèi)部控制芯片有ST7565R、ST7920、KS0724、KS0107等。相關(guān)知識LCD12864又分帶漢字庫和不帶漢字庫LCM兩種,其接口也有不同的標(biāo)準(zhǔn),一般采用附加后綴作為區(qū)分不同類型LCD12864液晶的標(biāo)志,不同類型LCD12864液晶引腳功能及控制方式略有不同。在這里介紹以KS0107為控制芯片的12864-8液晶模塊。LCD12864的點(diǎn)陣大小有不同的規(guī)格,其顯示顏色也有多種。如圖所示是LCD12864液晶的一種實(shí)物圖。LCD12864實(shí)物圖LCD12864液晶顯示屏共有128×64個(gè)點(diǎn)陣,其內(nèi)部控制芯片將液晶顯示屏平均劃分為左屏和右屏兩個(gè)部分,均為64×64點(diǎn)陣,而且兩部分各自都有獨(dú)立的片選信號,以控制選擇兩個(gè)部分。顯示屏上的顯示數(shù)據(jù)由液晶模塊內(nèi)部的顯示數(shù)據(jù)隨機(jī)存儲器DDRAM提供。DDRAM每字節(jié)中的每個(gè)位對應(yīng)顯示屏上的一個(gè)點(diǎn)。位值為1,對應(yīng)點(diǎn)顯示,反之不顯示。改變顯示器顯示內(nèi)容的過程就是修改DDRAM的過程。DDRAM內(nèi)部每字節(jié)對應(yīng)液晶點(diǎn)陣的一列,每列連接8行,將這8行稱為一頁。對應(yīng)顯示屏從上到下編號為0~7頁。由于液晶的左半部分和右半部分都是64列,所以LCD12864左右屏兩部分的每一頁包含64個(gè)字節(jié),涵蓋半邊顯示屏的64行×64列點(diǎn)陣數(shù)據(jù)。向顯示屏寫數(shù)據(jù)實(shí)際上是向DDRAM中寫數(shù)據(jù),DDRAM不同頁和不同列中的字節(jié)數(shù)據(jù)唯一對應(yīng)顯示屏一行的8個(gè)顯示點(diǎn)。不同頁和不同列DDRAM的尋址,通過左半屏和右半屏各自的頁地址計(jì)數(shù)器和列地址計(jì)數(shù)器實(shí)現(xiàn),因此對顯示屏DDRAM寫顯示數(shù)據(jù)前,需要先設(shè)置頁地址和列地址。二、LCD12864引腳功能隨著時(shí)間的推移,對液晶的需求及生產(chǎn)技術(shù)不斷發(fā)展,LCD12864液晶出現(xiàn)了不同的接口標(biāo)準(zhǔn)。這些接口雖然都是20個(gè)引腳,但引腳順序和引腳功能在不斷調(diào)整,在這里僅介紹其中的一種接口。LCD12864-8的引腳說明1.LCD12864-8的引腳功能2.LCD12864的基本操作讀狀態(tài):輸入:RS=L,RW=H,EN=H輸出:D0~D7=狀態(tài)字寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,EN=高脈沖輸出:無讀數(shù)據(jù):輸入:RS=H,RW=H,EN=H輸出:D0~D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),EN=高脈沖輸出:無三、LCD12864主要驅(qū)動(dòng)函數(shù)與LCD1602的接口類似,LCD12864有一個(gè)8位的數(shù)據(jù)接口和5根控制信號線,在電路中這些引腳可以直接連接到單片機(jī),單片機(jī)通過端口控制LCD12864顯示點(diǎn)陣字符和圖像。在編寫驅(qū)動(dòng)程序時(shí),需要用到與LCD12864連接的數(shù)據(jù)端口和控制引腳,為了使用方便,在程序中首先對數(shù)據(jù)端口和控制引腳進(jìn)行定義。具體應(yīng)用時(shí),若單片機(jī)的端口與液晶模塊的連接方式不同,應(yīng)在程序中按硬件的實(shí)際連接修改這些定義,驅(qū)動(dòng)函數(shù)不需要更改即可用于其他單片機(jī)系統(tǒng)。1.檢測LCD是否忙如果空閑則退出,否則等待一段時(shí)間,直到空閑為止。2.向液晶寫一條指令在使用之前應(yīng)該選擇顯示區(qū)域。3.定位操作的DDRAM單元根據(jù)Col和P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論