任務(wù)八 LCD12864液晶顯示_第1頁
任務(wù)八 LCD12864液晶顯示_第2頁
任務(wù)八 LCD12864液晶顯示_第3頁
任務(wù)八 LCD12864液晶顯示_第4頁
任務(wù)八 LCD12864液晶顯示_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

任務(wù)八LCD12864液晶顯示 知識(shí)背景1 12864液晶顯示簡介12864液晶顯示是分辨率為128 列 64 行 點(diǎn)陣型液晶顯示器 顯示模塊如圖7 1所示 LCD12864模塊包含帶字庫的不不帶字庫的 這里介紹的為不帶字庫的12864液晶顯示 點(diǎn)陣式液晶模塊LCD 不僅可以顯示字符 數(shù)字 還可以顯示各種圖形 曲線及漢字 并且可以實(shí)現(xiàn)屏幕上下左右滾動(dòng) 動(dòng)畫功能 分區(qū)開窗口 反轉(zhuǎn) 閃爍等功能 其原理是控制LCD12864點(diǎn)陣中的點(diǎn)的亮暗 亮和暗的點(diǎn)陣按一定規(guī)律可以組成漢字 組成一幅圖形和曲線等 對(duì)編程者來說 LCD屏幕上的點(diǎn)陣是按字節(jié)方式8個(gè)點(diǎn)一組來控制的 圖8 1LCD12864實(shí)物圖 在數(shù)字電路中 所有的數(shù)據(jù)都是以0和1保存的 對(duì)LCD控制器進(jìn)行不同的數(shù)據(jù)操作 可以得到不同的結(jié)果 對(duì)于顯示英文操作 由于英文字母種類很少 只需要8位 一字節(jié) 即可 而對(duì)于中文 常用卻有6000以上 于是我們的DOS前輩想了一個(gè)辦法 就是將ASCII表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來表示漢字 即漢字的內(nèi)碼 而剩下的低128位則留給英文字符使用 即英文的內(nèi)碼 那么 得到了漢字的內(nèi)碼后 還僅是一組數(shù)字 那又如何在屏幕上去顯示呢 這就涉及到文字的字模 字模雖然也是一組數(shù)字 但它的意義卻與數(shù)字的意義有了根本的變化 它是用數(shù)字的各位信息來記載英文或漢字的形狀 如英文的 A 在字模 縱向取模 高位在下 數(shù)據(jù)格式 從左到右 從上到下 的記載方式如圖7 2所示 圖8 2 A 字模圖8 3 你 字模圖而中文的 你 在字模 橫向取模 左高位 數(shù)據(jù)安排 從左到右 從上到下 中的記載卻如圖8 3所示 2 模塊接口說明LCD12864采用標(biāo)準(zhǔn)的16腳接口 各引腳功能如下表7 1所示 表8 1LCD12864引腳功能圖 注釋2 模塊內(nèi)部接有上電復(fù)位電路 因此在不需要經(jīng)常復(fù)位的場合可將該端懸空 注釋3 如背光和模塊共用一個(gè)電源 可以將模塊上的JA JK用焊錫短接 注釋1 ISIS仿真中LCD12864的片選為低電平有效 與實(shí)物相反 說明H 為高電平 L 低電平 3 指令說明在使用12864LCD前先必須了解以下功能器件才能進(jìn)行編程 12864內(nèi)部功能器件及相關(guān)功能如下 1 指令寄存器 IR IR是用于寄存指令碼 與數(shù)據(jù)寄存器數(shù)據(jù)相對(duì)應(yīng) 當(dāng)RS 0時(shí) 在E信號(hào)下降沿的作用下 指令碼寫入IR 2 數(shù)據(jù)寄存器 DR DR是用于寄存數(shù)據(jù)的 與指令寄存器寄存指令相對(duì)應(yīng) 當(dāng)RS 1時(shí) 在下降沿作用下 圖形顯示數(shù)據(jù)寫入DR 或在E信號(hào)高電平作用下由DR讀到DB7 DB0數(shù)據(jù)總線 DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動(dòng)執(zhí)行的 3 忙標(biāo)志 BFBF標(biāo)志提供內(nèi)部工作情況 BF 1表示模塊在內(nèi)部操作 此時(shí)模塊不接受外部指令和數(shù)據(jù) BF 0時(shí) 模塊為準(zhǔn)備狀態(tài) 隨時(shí)可接受外部指令和數(shù)據(jù) 利用STATUSREAD指令 可以將BF讀到DB7總線 從檢驗(yàn)?zāi)K知工作狀態(tài) 4 顯示控制觸發(fā)器DFF 此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制 DFF 1為開顯示 DISPLAYOFF DDRAM的內(nèi)容就顯示在屏幕上 DFF 0為關(guān)顯示 DISPLAYOFF DDF的狀態(tài)是指令DISPLAYON OFF和RST信號(hào)控制的 5 XY地址計(jì)數(shù)器XY地址計(jì)數(shù)器是一個(gè)9位計(jì)數(shù)器 高3位是X地址計(jì)數(shù)器 低6位為Y地址計(jì)數(shù)器 XY地址計(jì)數(shù)器實(shí)際上是作為DDRAM的地址指針 X地址計(jì)數(shù)器為DDRAM的頁指針 Y地址計(jì)數(shù)器為DDRAM的Y地址指針 X地址計(jì)數(shù)器是沒有記數(shù)功能的 只能用指令設(shè)置 Y地址計(jì)數(shù)器具有循環(huán)記數(shù)功能 各顯示數(shù)據(jù)寫入后 Y地址自動(dòng)加1 Y地址指針從0到63 6 顯示數(shù)據(jù)RAM DDRAM DDRAM是存儲(chǔ)圖形顯示數(shù)據(jù)的 數(shù)據(jù)為1表示顯示選擇 數(shù)據(jù)為0表示顯示非選擇 DDRAM與地址和顯示位置的關(guān)系見DDRAM地址表7 3 7 Z地址計(jì)數(shù)器Z地址計(jì)數(shù)器是一個(gè)6位計(jì)數(shù)器 此計(jì)數(shù)器具備循環(huán)記數(shù)功能 它是用于顯示行掃描同步 當(dāng)一行掃描完成 此地址計(jì)數(shù)器自動(dòng)加1 指向下一行掃描數(shù)據(jù) RST復(fù)位后Z地址計(jì)數(shù)器為0 Z地址計(jì)數(shù)器可以用指令DISPLAYSTARTLINE預(yù)置 因此 顯示屏幕的起始行就由此指令控制 即DDRAM的數(shù)據(jù)從哪一行開始顯示在屏幕的第一行 此模塊的DDRAM共64行 屏幕可以循環(huán)滾動(dòng)顯示64行 4 LCD12864的指令系統(tǒng)及時(shí)序該類液晶顯示模塊 即KS0108B及其兼容控制驅(qū)動(dòng)器 的指令系統(tǒng)比較簡單 總共只有七種 其指令表如表7 2所示 表8 2LCD12864指令表 1 各功能指令分別介紹如下 顯示開 關(guān)指令 功能 當(dāng)DB0 1時(shí) LCD顯示RAM中的內(nèi)容 即指令0X3F 開顯示 DB0 0時(shí) 關(guān)閉顯示 不影響顯示RAM DDRAM 中的內(nèi)容 即指令 0 x3E 顯示起始行 ROW 設(shè)置指令 功能 該指令設(shè)置了對(duì)應(yīng)液晶屏最上一行的顯示RAM的行號(hào) 有規(guī)律地改變顯示起始行 可以使LCD實(shí)現(xiàn)顯示滾屏的效果 用指令 0 xc0 add 表示 add 0 則第一行字符顯示在最上面 add 1 則第一行字符顯示在第二行 頁 PAGE 設(shè)置指令 功能 顯示RAM共64行 分8頁 每頁8行 從DB3到DB7的值可以看出 用指令 0 xb8 add 表示 該指令設(shè)置后面續(xù)寫得頁地址 LCD12864一個(gè)字節(jié)數(shù)據(jù)對(duì)應(yīng)縱向8個(gè)點(diǎn) 因此頁號(hào) add 為0 7 列地址 YAddress 設(shè)置指令 功能 設(shè)置了頁地址和列地址 就唯一確定了顯示RAM中的一個(gè)單元 用指令 0 xb8 add 表示 add取值范圍是0 63 這樣MPU就可以用讀 寫指令讀出該單元中的內(nèi)容或向該單元寫進(jìn)一個(gè)字節(jié)數(shù)據(jù) 下面圖7 4畫出了LCD12864點(diǎn)陣結(jié)構(gòu)圖 其中左半屏和右半屏都有64列 64行分為8頁 顯示緩沖頁地址 列地址與點(diǎn)陣位置對(duì)應(yīng) 單片機(jī)只需把字摸數(shù)據(jù)送到DDRAM中 就可顯示所需出字符 圖8 4LCD12864點(diǎn)陣圖 為了使得概念更清晰 對(duì)上面的圖7 4進(jìn)行詳細(xì)講解 即下面的表格表7 3RAM地址映像表 其中x 0到x 7表示第1頁到第8頁 用CS1 1 表示選中左半屏 CS2 1表示選中右半屏 y表示列 左半屏和右半屏都有64列 共計(jì)128列 表7 3的RAM地址映像表只表示了半屏的結(jié)構(gòu) 只要看懂地址映像表 那么顯示的位置應(yīng)該就很久很簡單 表8 3RAM地址映像表 讀狀態(tài)指令 功能 該指令用來查詢液晶顯示模塊內(nèi)部控制器的狀態(tài) 各參量含義如下 BUSY 1 內(nèi)部在工作0 正常狀態(tài)ON OFF 1 顯示關(guān)閉0 顯示打開RESET 1 復(fù)位狀態(tài)0 正常狀態(tài)在BUSY和RESET狀態(tài)時(shí) 除讀狀態(tài)指令外 其它指令均不對(duì)液晶顯示模塊產(chǎn)生作用 在對(duì)液晶顯示模塊操作之前要查詢BUSY狀態(tài) 以確定是否可以對(duì)液晶顯示模塊進(jìn)行操作 寫數(shù)據(jù)指令 功能 寫數(shù)據(jù)到DDRAM DDRAM是存儲(chǔ)圖形顯示數(shù)據(jù)的 寫指令執(zhí)行后Y地址計(jì)數(shù)器自動(dòng)加1 D7 D0位數(shù)據(jù)為1表示顯示 數(shù)據(jù)為0表示不顯示 寫數(shù)據(jù)到DDRAM前 要先執(zhí)行 設(shè)置頁地址 及 設(shè)置列地址 命令 讀數(shù)據(jù)指令 功能 讀 寫數(shù)據(jù)指令每執(zhí)行完一次讀 寫操作 列地址就自動(dòng)增一 必須注意的是 進(jìn)行讀操作之前 必須有一次空讀操作 緊接著再讀才會(huì)讀出所要讀的單元中的數(shù)據(jù) 2 12864LCD的時(shí)序 寫操作時(shí)序12864LCD寫時(shí)序如圖7 5所示 首先給出DATA RS WR數(shù)據(jù) 然后CPU的R W信號(hào)給出一個(gè)下降沿 也就是E的下降沿 由圖中可以看出 寫時(shí)序在R W的上升沿 給出E的下降沿 將數(shù)據(jù)寫入 圖8 5LCD列驅(qū)動(dòng)接口寫時(shí)序 讀操作時(shí)序如圖7 6所示是LCD列驅(qū)動(dòng)接口讀時(shí)序 R W為高電平時(shí) 當(dāng)給出E的高電平時(shí)讀出數(shù)據(jù) 圖8 6LCD列驅(qū)動(dòng)接口讀時(shí)序 二 任務(wù)分析在點(diǎn)陣圖形液晶模塊上顯示以下內(nèi)容 在第一行居中顯示數(shù)字 歡迎使用 第二行居中顯示 系統(tǒng)初始化 第三行顯示 重慶歡迎你的到來 第四行顯示 具體如圖7 7 圖8 7模擬顯示效果圖 三 任務(wù)實(shí)施1 12864點(diǎn)陣LCD軟硬件設(shè)計(jì) 通過以上學(xué)習(xí) 分析該任務(wù) 可設(shè)計(jì)出LCD12864的軟硬件如圖7 8 在調(diào)試前先將顯示切換開關(guān)切換到LCD顯示狀態(tài) I O設(shè)備訪問形式控制該液晶顯示模塊 只要采用單片機(jī)的輸入輸出口模擬12864的讀寫時(shí)序 發(fā)送相應(yīng)的控制指令和數(shù)據(jù)等 具體I O設(shè)備訪問形式接線電路圖如圖7 8 圖8 8單片機(jī)與12864硬件接線圖 2 流程圖和編程思想通過分析和接線 12864液晶模塊的驅(qū)動(dòng)軟件流程圖如圖7 9 圖8 9軟件流程圖 通過以上流程圖 具體的思想 首先初始化 主要完成TG12864的復(fù)位 清屏等 然后復(fù)位操作 RST 0 其主要狀態(tài)有設(shè)置顯示狀態(tài)為關(guān)顯示狀態(tài) 顯示起始寄存器清零 顯示RAM第一行對(duì)應(yīng)顯示屏上的第一行 在復(fù)位期間狀態(tài)字中RESET位置 1 最后是清屏操作 主要完成對(duì)12864內(nèi)部的數(shù)據(jù)存儲(chǔ)器清零 3 程序代碼如下 include 包含reg52 h頭文件 說明了AT89S52芯片中所擁有的特殊功能 寄存器和可尋址標(biāo)志位 defineuintunsignedint 定義無符號(hào)整型 defineucharunsignedchar 定義無符號(hào)字符型 defineDataport 數(shù)據(jù)端口 P0 定義P0端口為LCD數(shù)據(jù)總線 用于傳輸指令 命令和顯示數(shù)據(jù) 12864引腳定義 以下程序見課本 4 實(shí)驗(yàn)效果 經(jīng)過程序的調(diào)試 編譯 并下載到單片機(jī) 可以在設(shè)備上顯示如圖7 10 然后用仿真軟件可以仿真得出仿真效果圖7 11 圖8 1012864實(shí)物實(shí)驗(yàn)結(jié)果 圖8 1112864仿真實(shí)驗(yàn)結(jié)果 備注 當(dāng)IC1在接受指令前 微處理器必須先確認(rèn)其內(nèi)部處于非忙碌狀態(tài) 即讀取BF標(biāo)志時(shí) BF需為零 方可接受新的指令 如果在送出一個(gè)指令前并不檢查BF標(biāo)志 那么在前一個(gè)指令和這個(gè)指令中間必須延長一段較長的時(shí)間 即是等待前一個(gè)指令確實(shí)執(zhí)行完成 四 任務(wù)自評(píng)通過前面的講解 相信你已經(jīng)完成了該任務(wù) 那么該任務(wù)你是否完美的完成了 那就通過下面的表格來反映吧 五 知識(shí)拓展 上面講解了在LCD12864液晶上顯示文字和字母 下面把知識(shí)擴(kuò)展一下 講解如何用LCD12864顯示直線 繪畫 反白 下劃線等用法 繪圖畫點(diǎn)與擦除點(diǎn) 下面是畫點(diǎn)與擦除點(diǎn)的用法 都是進(jìn)過測試通過的 前面省略了接線的連接圖 連接圖和上面的一樣 為了使得講解清楚 并給出了逐行功能 最后付出了實(shí)驗(yàn)效果 將一字節(jié)數(shù)據(jù)dat寫到r行 c列 voidwrposnDat ucharr ucharc uchardat wrpositionDat if c 64 cs1 1 cs2 0 選擇左屏elsecs1 0 cs2 1 c 64 選擇右屏wrcdat 0 0 xb8 r wrcdat 0 0 x40 c wrcdat 1 dat 讀當(dāng)前顯示數(shù)據(jù) ucharReadDat ucharr ucharc uchartemp if c 64 cs1 1 cs2 0 選擇左屏elsecs1 0 cs2 1 c 64 選擇右屏wrcdat 0 0 xb8 r wrcdat 0 0 x40 c busy12864 Dataport 0 xff rs 1 rw 1 en 1 en 0 delay 1 讀空操作en 1 temp Dataport en 0 正式讀數(shù)據(jù)returntemp ucharcodedotDat 8 0 x01 0 x02 0 x04 0 x08 0 x10 0 x20 0 x40 0 x80 畫點(diǎn)函數(shù) r行號(hào) 0 63 c列號(hào) 0 127 add 1 畫點(diǎn) add 0刪除點(diǎn) 8個(gè)數(shù)據(jù)對(duì)應(yīng)某頁中從上到下8個(gè)畫點(diǎn)位置 showDot ucharr ucharc bitadd if add wrposnDat r 8 c ReadDat r 8 c dotDat r 8 畫點(diǎn) 其中 r 8獲得 頁 號(hào) r 8獲得 頁內(nèi)行號(hào) ReadDat r 8 c 讀原位置數(shù)據(jù) dotDat r 8 從數(shù)組中讀對(duì)應(yīng)數(shù)據(jù) 把 點(diǎn) 添加上去 位或 最后再寫回液晶模塊LCM elsewrposnDat r 8 c ReadDat r 8 c 經(jīng)過實(shí)驗(yàn) 效果如圖圖8 12所示 8 12 a 為畫斜線結(jié)果 8 12 a 畫斜線8 12 b 畫矩形 2 畫矩形 可以利用循環(huán)畫點(diǎn)得到線 分別畫4條線就構(gòu)成矩形圖 得到結(jié)果如圖7 12 b 畫矩形 參數(shù) r1 c1 左上角行列號(hào) r2 c2右下角行列號(hào) rect ucharr1 ucharc1 ucharr2 ucharc2 畫矩形的函數(shù) 函數(shù)中沒有對(duì)參數(shù)進(jìn)行 合理性 檢測 調(diào)用時(shí) 參數(shù)必須是 r1 r2 c1 c2 同時(shí)r1和r2取值0 63 c1和c2取值0 127 uchari for i r1 i r2 i showDot i c1 1 showDot i c2 1 畫兩條 for i c1 i c2 i showDot r1 i 1 showDot r2 i 1 voidmain Init12864 初始化rect 0 0 63 127 畫第一個(gè)矩形rect 1 1 62 126 畫第二個(gè)矩形rect 5 20 35 95 畫第三個(gè)矩形rect 20 35 58 115 畫第四個(gè)矩形 與第三個(gè)交疊while 1 3 文字添加下劃線只要求出文字下方的行號(hào)r和文字前后列號(hào)c1 c2 利用前面的畫點(diǎn)方法可以輕易地添加下劃線 例如下面語句 for i c1 i c2 i showDOt r i 1 繪圖函數(shù)是通過讀

溫馨提示

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

評(píng)論

0/150

提交評(píng)論