




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
16x216x2 字符型帶背光液晶顯示模塊字符型帶背光液晶顯示模塊 液晶顯示器以其微功耗 體積小 顯示內(nèi)容豐富 超薄輕巧的諸多優(yōu)點 在袖珍式儀表和低功耗應用系統(tǒng)中得到越來越廣泛的應用 這里介紹的字符型液晶模塊是一種用 5x7 點陣圖形來顯示字符的液晶顯示 器 根據(jù)顯示的容量可以分為 1 行 16 個字 2 行 16 個字 2 行 20 個字等等 這里以常用的 2 行 16 個字的 1602 液晶模塊來介紹它的編程方法 標準型標準型 16X216X2 帶背光液晶顯示字符模塊 郵購價格帶背光液晶顯示字符模塊 郵購價格 2626 元一個元一個 外形尺寸 外形尺寸 PCBPCB 外形 外形 36 4 8036 4 80 毫米毫米 液晶屏金屬黑框 液晶屏金屬黑框 34 2 7234 2 72 毫米毫米 1602 采用標準的 16 腳接口 其中 第 1 腳 VSS 為地電源 第 2 腳 VDD 接 5V 正電源 第 3 腳 V0 為液晶顯示器對比度調(diào)整端 接正電源時對比度最弱 接地電源時 對比度最高 對比度過高時會產(chǎn)生 鬼影 使用時可以通過一個 10K 的電位 器調(diào)整對比度 第 4 腳 RS 為寄存器選擇 高電平時選擇數(shù)據(jù)寄存器 低電平時選擇指令寄存 器 第 5 腳 RW 為讀寫信號線 高電平時進行讀操作 低電平時進行寫操作 當 RS 和 RW 共同為低電平時可以寫入指令或者顯示地址 當 RS 為低電平 RW 為高電平 時可以讀忙信號 當 RS 為高電平 RW 為低電平時可以寫入數(shù)據(jù) 第 6 腳 E 端為使能端 當 E 端由高電平跳變成低電平時 液晶模塊執(zhí)行命令 第 7 14 腳 D0 D7 為 8 位雙向數(shù)據(jù)線 第 15 16 腳 空腳 1602 液晶模塊內(nèi)部的字符發(fā)生存儲器 CGROM 已經(jīng)存儲了 160 個不同的點 陣字符圖形 如表 1 所示 這些字符有 阿拉伯數(shù)字 英文字母的大小寫 常 用的符號 和日文假名等 每一個字符都有一個固定的代碼 比如大寫的英文 字母 A 的代碼是 01000001B 41H 顯示時模塊把地址 41H 中的點陣字符 圖形顯示出來 我們就能看到字母 A 1602 液晶模塊內(nèi)部的控制器共有 11 條控制指令 如表 2 所示 它的讀寫操作 屏幕和光標的操作都是通過指令編程來實現(xiàn)的 說明 1 為高電平 0 為低電平 指令 1 清顯示 指令碼 01H 光標復位到地址 00H 位置 指令 2 光標復位 光標返回到地址 00H 指令 3 光標和顯示模式設(shè)置 I D 光標移動方向 高電平右移 低電平左移 S 屏幕上所有文字是否左移或者右移 高電平表示有效 低電平則無效 指令 4 顯示開關(guān)控制 D 控制整體顯示的開與關(guān) 高電平表示開顯示 低 電平表示關(guān)顯示 C 控制光標的開與關(guān) 高電平表示有光標 低電平表示無光 標 B 控制光標是否閃爍 高電平閃爍 低電平不閃爍 指令 5 光標或顯示移位 S C 高電平時移動顯示的文字 低電平時移動光標 指令 6 功能設(shè)置命令 DL 高電平時為 4 位總線 低電平時為 8 位總線 N 低 電平時為單行顯示 高電平時雙行顯示 F 低電平時顯示 5x7 的點陣字符 高 電平時顯示 5x10 的點陣字符 有些模塊是 DL 高電平時為 8 位總線 低電平 時為 4 位總線 指令 7 字符發(fā)生器 RAM 地址設(shè)置 指令 8 DDRAM 地址設(shè)置 指令 9 讀忙信號和光標地址 BF 為忙標志位 高電平表示忙 此時模塊不能 接收命令或者數(shù)據(jù) 如果為低電平表示不忙 指令 10 寫數(shù)據(jù) 指令 11 讀數(shù)據(jù) DM 162 液晶顯示模塊可以和單片機 AT89C51 直接接口 電路如圖 1 所示 液晶顯示模塊是一個慢顯示器件 所以在執(zhí)行每條指令之前一定要確認模 塊的忙標志為低電平 表示不忙 否則此指令失效 要顯示字符時要先輸入顯 示字符地址 也就是告訴模塊在哪里顯示字符 表 3 是 DM 162 的內(nèi)部顯示地址 比如第二行第一個字符的地址是 40H 那么是否直接寫入 40H 就可以將光 標定位在第二行第一個字符的位置呢 這樣不行 因為寫入顯示地址時要求最 高位 D7 恒定為高電平 1 所以實際寫入的數(shù)據(jù)應該是 01000000B 40H 10000000B 80H 11000000B C0H 直接輸入 80H H 即可 以下是在液晶模塊的第二行第一個字符的位置顯示字母 A 的程序 ORG 0000H RS EQU P3 7 確定具體硬件的連接方式 RW EQU P3 6 確定具體硬件的連接方式 E EQU P3 5 確定具體硬件的連接方式 MOV P1 00000001B 清屏并光標復位 ACALL ENABLE 調(diào)用寫入命令子程序 MOV P1 00111000B 設(shè)置顯示模式 8 位 2 行 5x7 點陣 ACALL ENABLE 調(diào)用寫入命令子程序 MOV P1 00001111B 顯示器開 光標開 光標允許閃爍 ACALL ENABLE 調(diào)用寫入命令子程序 MOV P1 00000110B 文字不動 光標自動右移 ACALL ENABLE 調(diào)用寫入命令子程序 MOV P1 0C0H 寫入顯示起始地址 第二行第一個位置 ACALL ENABLE 調(diào)用寫入命令子程序 MOV P1 01000001B 字母 A 的代碼 SETB RS RS 1 CLR RW RW 0 準備寫入數(shù)據(jù) CLR E E 0 執(zhí)行顯示命令 ACALL DELAY 判斷液晶模塊是否忙 SETB E E 1 顯示完成 程序停車 AJMP ENABLE CLR RS 寫入控制命令的子程序 CLR RW CLR E ACALL DELAY SETB E RET DELAY MOV P1 0FFH 判斷液晶顯示器是否忙的子程序 CLR RS SETB RW CLR E NOP SETB E JB P1 7 DELAY 如果 P1 7 為高電平表示忙就循環(huán)等待 RET END 程序在開始時對液晶模塊功能進行了初始化設(shè)置 約定了顯示格式 注意 顯示字符時光標是自動右移的 無需人工干預 每次輸入指令都先調(diào)用判斷液 晶模塊是否忙的子程序 DELAY 然后輸入顯示位置的地址 0C0H 最后輸入要顯 示的字符 A 的代碼 41H TO 無聊的鍵盤 無聊的鍵盤 1602LCD 的的 C 程序程序 FileName 實驗板 1602lcd c ICCAVR V6 31A 編譯 Function 1602 字符型 LCD 的顯示 8 位數(shù)據(jù)方式 Date 2006 12 11 Version 1 0 Author 開關(guān)電源 hongtusy Company 電子信息技術(shù)咨詢網(wǎng) 描述與記事 實驗板的 AVR 程序 驅(qū)動 1602LCM 可顯示 2 行 每行 16 個字符 模塊顯示實驗練習 說明 RS 高顯示 低指令輸入 RW 高讀 低寫 EN 高讀數(shù)據(jù) 下降沿寫數(shù)據(jù) 具體電路可參照使用指南里的說明 每個字符為 5 7 或 5 8 的點陣 共 16 2 個字符 使用器件 ATMEGA8535 可更換 使用默認的片內(nèi) RC 振蕩器 1MHz 接線定義 PD4 5 6 為 RS R W EA 數(shù)據(jù)位為 PC 口 使用的開關(guān) SW2 1 2 3 SW1 1 2 3 4 5 6 7 8 SW2 5 為背光開關(guān) SW3 8 為系統(tǒng)復位端 記事 include 頭文件 ATmega8535 單片機的寄存器定義 include macros h 可以使用 NOP 以及 SEI 等指令 typedef unsigned char uchar 宏 typedef unsigned int uint 函 數(shù) 名 DelaymS 功 能 毫秒級延時函數(shù) 輸入?yún)?shù) 延遲時間 系統(tǒng)晶體 輸出參數(shù) 做相應的延遲處理 描 述 void DelaymS uint i 延時函數(shù) 參數(shù) i 為延時時間 uint j k 雙重延時 for j 0 j i j for k 0 k 50 k 函 數(shù) 名 init mcu 功 能 單片機初始化函數(shù) 輸入?yún)?shù) 輸出參數(shù) 描 述 相關(guān)口方向的設(shè)置等 void init mcu void DDRC 0 xff PC 口為推挽 1 輸出 數(shù)據(jù)位 DDRD 0 xff PD 口為推挽 1 輸出 控制信號 子程序名 write data 功 能 寫入一字節(jié)數(shù)據(jù) 輸入?yún)?shù) 輸出參數(shù) 描 述 void wtite data uchar h PORTC h 先將數(shù)據(jù)送出 PORTD 1 PD4 RS 1 數(shù)據(jù) PORTD R W 0 寫 PORTD EN 0 使能 產(chǎn)生一個下降沿 DelaymS 1 PORTD 1 PD6 EN 1 除能 子程序名 write code 功 能 寫入一字節(jié)指令 地址 輸入?yún)?shù) 輸出參數(shù) 描 述 void wtite code uchar h PORTC h 先將地址送出 PORTD RS 0 命令或數(shù)據(jù) PORTD R W 0 寫 PORTD EN 0 使能 產(chǎn)生一個下降沿 DelaymS 1 PORTD 1 PD6 EN 1 除能 子程序名 init lcd 功 能 初始化 LCD 輸入?yún)?shù) 輸出參數(shù) 描 述 void init lcd void wtite code 0 x01 清除屏幕 wtite code 0 x38 功能設(shè)定 8 位數(shù)據(jù)口 2 行 5 7 的點陣 wtite code 0b00001111 顯示幕 ON 光標 ON 閃爍 ON wtite code 0 x06 模式 加 1 顯示幕 ON wtite code 0b00000011 光標回到原點 子程序名 display lcd 功 能 刷新顯示一屏數(shù)據(jù) 獨立的 LCD 顯示程序 用戶將顯存內(nèi)容更新后 只要調(diào)用此程序即可更 新顯示 輸入?yún)?shù) 輸出參數(shù) 描 述 在寫一個字符前 先設(shè)定顯示的位置地址 然后再寫數(shù)據(jù) 系統(tǒng)可以自動地址加一 void display lcd uchar p uchar i wtite code 0 x80 第一行起始地址 0b10000000B 0 x80 for i 0 i 16 i wtite data p i wtite code 0 xc0 第二行起始地址 0b11000000B 0 xc0 for i 16 i 32 i wtite data p i 主程序 void main void uchar i uchar buf welcome DelaymS 100 init mcu 單片機初始化 init lcd lcd 初始化 display lcd buf 刷新顯示一屏 buf 0 i 可以任意修改顯示的內(nèi)容 display lcd buf 刷新顯示 wtite code 0 xC0 光標停留在 0C2H 位置 第 1 行光標位置有 0 x80 0 x81 0 x8f 第 2 行光標位置有 0 xc0 0 xc1 0 xcf while 1 16021602 液晶顯示模塊液晶顯示模塊 C C 語言程序 語言程序 8 8 位 位 2006 11 25 14 16 00 By frankle SMC1602A 16 2 模擬口線接線方式 連接線圖 LCM 51 LCM 51 LCM 51 DB0 P1 0 DB4 P1 4 RW P2 0 DB1 P1 1 DB5 P1 5 RS P2 1 DB2 P1 2 DB6 P1 6 E P2 2 DB3 P1 3 DB7 P1 7 VLCD 接 1K 電阻到 GND 注 AT89S51 使用 12M 晶振 define LCM RW P2 0 定義引腳 define LCM RS P2 1 define LCM E P2 2 define LCM Data P1 define Busy 0 x80 用于檢測 LCM 狀態(tài)字中的 Busy 標識 i nclude void WriteDataLCM unsigned char WDLCM void WriteCommandLCM unsigned char WCLCM BuysC unsigned char ReadDataLCM void unsigned char ReadStatusLCM void void LCMInit void void DisplayOneChar unsigned char X unsigned char Y unsigned char DData void DisplayListChar unsigned char X unsigned char Y unsigned char code DData void Delay5Ms void void Delay400Ms void unsigned char code uctech uctech unsigned char code net void main void Delay400Ms 啟動等待 等 LCM 講入工作狀態(tài) LCMInit LCM 初始化 Delay5Ms 延時片刻 可不要 DisplayListChar 0 5 uctech DisplayListChar 0 0 net ReadDataLCM 測試用句無意義 while 1 寫數(shù)據(jù) void WriteDataLCM unsigned char WDLCM ReadStatusLCM 檢測忙 LCM Data WDLCM LCM RS 1 LCM RW 0 LCM E 0 若晶振速度太高可以在這后加小的延時 LCM E 0 延時 LCM E 1 寫指令 void WriteCommandLCM unsigned char WCLCM BuysC BuysC 為 0 時忽略忙檢測 if BuysC ReadStatusLCM 根據(jù)需要檢測忙 LCM Data WCLCM LCM RS 0 LCM RW 0 LCM E 0 LCM E 0 LCM E 1 讀數(shù)據(jù) unsigned char ReadDataLCM void LCM RS 1 LCM RW 1 LCM E 0 LCM E 0 LCM E 1 return LCM Data 讀狀態(tài) unsigned char ReadStatusLCM void LCM Data 0 xFF LCM RS 0 LCM RW 1 LCM E 0 LCM E 0 LCM E 1 while LCM Data 檢測忙信號 return LCM Data void LCMInit void LCM 初始化 LCM Data 0 WriteCommandLCM 0 x38 0 三次顯示模式設(shè)置 不檢測忙信號 Delay5Ms WriteCommandLCM 0 x38 0 Delay5Ms WriteCommandLCM 0 x38 0 Delay5Ms WriteCommandLCM 0 x38 1 顯示模式設(shè)置 開始要求每次檢測忙信號 WriteCommandLCM 0 x08 1 關(guān)閉顯示 WriteCommandLCM 0 x01 1 顯示清屏 WriteCommandLCM 0 x06 1 顯示光標移動設(shè)置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 風力發(fā)電場運行與維護預案
- 經(jīng)濟法特殊案例試題與答案
- 歷史文物保護法的法律條款測試卷
- 工程經(jīng)濟考試中的常見難題解決試題及答案
- 農(nóng)業(yè)經(jīng)濟管理與農(nóng)民培訓合作協(xié)議
- 公共關(guān)系學的情境領(lǐng)導力考核內(nèi)容及試題及答案
- 資金管理優(yōu)化措施計劃
- 中考體育考試試題及答案
- 中醫(yī)藥方考試試題及答案
- 項目管理評審協(xié)議
- 醫(yī)院停水停電應急預案培訓
- 變頻器在家用電器中的應用
- 景區(qū)保潔服務方案
- 肺動脈栓塞護理查房
- 臨床診治工作中的倫理道德
- 人人樂超市消防監(jiān)控系統(tǒng)設(shè)計
- 新生兒轉(zhuǎn)運暖箱
- 化療病人健康宣教課件
- 國家講解員培訓課件
- 招商引資培訓課題
- 死因監(jiān)測工作規(guī)范
評論
0/150
提交評論