




已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
16x216x2 字符型帶背光液晶顯示模塊字符型帶背光液晶顯示模塊 液晶顯示器以其微功耗 體積小 顯示內(nèi)容豐富 超薄輕巧的諸多優(yōu)點(diǎn) 在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用 這里介紹的字符型液晶模塊是一種用 5x7 點(diǎn)陣圖形來(lái)顯示字符的液晶顯示 器 根據(jù)顯示的容量可以分為 1 行 16 個(gè)字 2 行 16 個(gè)字 2 行 20 個(gè)字等等 這里以常用的 2 行 16 個(gè)字的 1602 液晶模塊來(lái)介紹它的編程方法 標(biāo)準(zhǔn)型標(biāo)準(zhǔn)型 16X216X2 帶背光液晶顯示字符模塊 郵購(gòu)價(jià)格帶背光液晶顯示字符模塊 郵購(gòu)價(jià)格 2626 元一個(gè)元一個(gè) 外形尺寸 外形尺寸 PCBPCB 外形 外形 36 4 8036 4 80 毫米毫米 液晶屏金屬黑框 液晶屏金屬黑框 34 2 7234 2 72 毫米毫米 1602 采用標(biāo)準(zhǔn)的 16 腳接口 其中 第 1 腳 VSS 為地電源 第 2 腳 VDD 接 5V 正電源 第 3 腳 V0 為液晶顯示器對(duì)比度調(diào)整端 接正電源時(shí)對(duì)比度最弱 接地電源時(shí) 對(duì)比度最高 對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生 鬼影 使用時(shí)可以通過(guò)一個(gè) 10K 的電位 器調(diào)整對(duì)比度 第 4 腳 RS 為寄存器選擇 高電平時(shí)選擇數(shù)據(jù)寄存器 低電平時(shí)選擇指令寄存 器 第 5 腳 RW 為讀寫(xiě)信號(hào)線 高電平時(shí)進(jìn)行讀操作 低電平時(shí)進(jìn)行寫(xiě)操作 當(dāng) RS 和 RW 共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址 當(dāng) RS 為低電平 RW 為高電平 時(shí)可以讀忙信號(hào) 當(dāng) RS 為高電平 RW 為低電平時(shí)可以寫(xiě)入數(shù)據(jù) 第 6 腳 E 端為使能端 當(dāng) E 端由高電平跳變成低電平時(shí) 液晶模塊執(zhí)行命令 第 7 14 腳 D0 D7 為 8 位雙向數(shù)據(jù)線 第 15 16 腳 空腳 1602 液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器 CGROM 已經(jīng)存儲(chǔ)了 160 個(gè)不同的點(diǎn) 陣字符圖形 如表 1 所示 這些字符有 阿拉伯?dāng)?shù)字 英文字母的大小寫(xiě) 常 用的符號(hào) 和日文假名等 每一個(gè)字符都有一個(gè)固定的代碼 比如大寫(xiě)的英文 字母 A 的代碼是 01000001B 41H 顯示時(shí)模塊把地址 41H 中的點(diǎn)陣字符 圖形顯示出來(lái) 我們就能看到字母 A 1602 液晶模塊內(nèi)部的控制器共有 11 條控制指令 如表 2 所示 它的讀寫(xiě)操作 屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的 說(shuō)明 1 為高電平 0 為低電平 指令 1 清顯示 指令碼 01H 光標(biāo)復(fù)位到地址 00H 位置 指令 2 光標(biāo)復(fù)位 光標(biāo)返回到地址 00H 指令 3 光標(biāo)和顯示模式設(shè)置 I D 光標(biāo)移動(dòng)方向 高電平右移 低電平左移 S 屏幕上所有文字是否左移或者右移 高電平表示有效 低電平則無(wú)效 指令 4 顯示開(kāi)關(guān)控制 D 控制整體顯示的開(kāi)與關(guān) 高電平表示開(kāi)顯示 低 電平表示關(guān)顯示 C 控制光標(biāo)的開(kāi)與關(guān) 高電平表示有光標(biāo) 低電平表示無(wú)光 標(biāo) B 控制光標(biāo)是否閃爍 高電平閃爍 低電平不閃爍 指令 5 光標(biāo)或顯示移位 S C 高電平時(shí)移動(dòng)顯示的文字 低電平時(shí)移動(dòng)光標(biāo) 指令 6 功能設(shè)置命令 DL 高電平時(shí)為 4 位總線 低電平時(shí)為 8 位總線 N 低 電平時(shí)為單行顯示 高電平時(shí)雙行顯示 F 低電平時(shí)顯示 5x7 的點(diǎn)陣字符 高 電平時(shí)顯示 5x10 的點(diǎn)陣字符 有些模塊是 DL 高電平時(shí)為 8 位總線 低電平 時(shí)為 4 位總線 指令 7 字符發(fā)生器 RAM 地址設(shè)置 指令 8 DDRAM 地址設(shè)置 指令 9 讀忙信號(hào)和光標(biāo)地址 BF 為忙標(biāo)志位 高電平表示忙 此時(shí)模塊不能 接收命令或者數(shù)據(jù) 如果為低電平表示不忙 指令 10 寫(xiě)數(shù)據(jù) 指令 11 讀數(shù)據(jù) DM 162 液晶顯示模塊可以和單片機(jī) AT89C51 直接接口 電路如圖 1 所示 液晶顯示模塊是一個(gè)慢顯示器件 所以在執(zhí)行每條指令之前一定要確認(rèn)模 塊的忙標(biāo)志為低電平 表示不忙 否則此指令失效 要顯示字符時(shí)要先輸入顯 示字符地址 也就是告訴模塊在哪里顯示字符 表 3 是 DM 162 的內(nèi)部顯示地址 比如第二行第一個(gè)字符的地址是 40H 那么是否直接寫(xiě)入 40H 就可以將光 標(biāo)定位在第二行第一個(gè)字符的位置呢 這樣不行 因?yàn)閷?xiě)入顯示地址時(shí)要求最 高位 D7 恒定為高電平 1 所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是 01000000B 40H 10000000B 80H 11000000B C0H 直接輸入 80H H 即可 以下是在液晶模塊的第二行第一個(gè)字符的位置顯示字母 A 的程序 ORG 0000H RS EQU P3 7 確定具體硬件的連接方式 RW EQU P3 6 確定具體硬件的連接方式 E EQU P3 5 確定具體硬件的連接方式 MOV P1 00000001B 清屏并光標(biāo)復(fù)位 ACALL ENABLE 調(diào)用寫(xiě)入命令子程序 MOV P1 00111000B 設(shè)置顯示模式 8 位 2 行 5x7 點(diǎn)陣 ACALL ENABLE 調(diào)用寫(xiě)入命令子程序 MOV P1 00001111B 顯示器開(kāi) 光標(biāo)開(kāi) 光標(biāo)允許閃爍 ACALL ENABLE 調(diào)用寫(xiě)入命令子程序 MOV P1 00000110B 文字不動(dòng) 光標(biāo)自動(dòng)右移 ACALL ENABLE 調(diào)用寫(xiě)入命令子程序 MOV P1 0C0H 寫(xiě)入顯示起始地址 第二行第一個(gè)位置 ACALL ENABLE 調(diào)用寫(xiě)入命令子程序 MOV P1 01000001B 字母 A 的代碼 SETB RS RS 1 CLR RW RW 0 準(zhǔn)備寫(xiě)入數(shù)據(jù) CLR E E 0 執(zhí)行顯示命令 ACALL DELAY 判斷液晶模塊是否忙 SETB E E 1 顯示完成 程序停車 AJMP ENABLE CLR RS 寫(xiě)入控制命令的子程序 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 程序在開(kāi)始時(shí)對(duì)液晶模塊功能進(jìn)行了初始化設(shè)置 約定了顯示格式 注意 顯示字符時(shí)光標(biāo)是自動(dòng)右移的 無(wú)需人工干預(yù) 每次輸入指令都先調(diào)用判斷液 晶模塊是否忙的子程序 DELAY 然后輸入顯示位置的地址 0C0H 最后輸入要顯 示的字符 A 的代碼 41H TO 無(wú)聊的鍵盤(pán) 無(wú)聊的鍵盤(pán) 1602LCD 的的 C 程序程序 FileName 實(shí)驗(yàn)板 1602lcd c ICCAVR V6 31A 編譯 Function 1602 字符型 LCD 的顯示 8 位數(shù)據(jù)方式 Date 2006 12 11 Version 1 0 Author 開(kāi)關(guān)電源 hongtusy Company 電子信息技術(shù)咨詢網(wǎng) 描述與記事 實(shí)驗(yàn)板的 AVR 程序 驅(qū)動(dòng) 1602LCM 可顯示 2 行 每行 16 個(gè)字符 模塊顯示實(shí)驗(yàn)練習(xí) 說(shuō)明 RS 高顯示 低指令輸入 RW 高讀 低寫(xiě) EN 高讀數(shù)據(jù) 下降沿寫(xiě)數(shù)據(jù) 具體電路可參照使用指南里的說(shuō)明 每個(gè)字符為 5 7 或 5 8 的點(diǎn)陣 共 16 2 個(gè)字符 使用器件 ATMEGA8535 可更換 使用默認(rèn)的片內(nèi) RC 振蕩器 1MHz 接線定義 PD4 5 6 為 RS R W EA 數(shù)據(jù)位為 PC 口 使用的開(kāi)關(guān) SW2 1 2 3 SW1 1 2 3 4 5 6 7 8 SW2 5 為背光開(kāi)關(guān) SW3 8 為系統(tǒng)復(fù)位端 記事 include 頭文件 ATmega8535 單片機(jī)的寄存器定義 include macros h 可以使用 NOP 以及 SEI 等指令 typedef unsigned char uchar 宏 typedef unsigned int uint 函 數(shù) 名 DelaymS 功 能 毫秒級(jí)延時(shí)函數(shù) 輸入?yún)?shù) 延遲時(shí)間 系統(tǒng)晶體 輸出參數(shù) 做相應(yīng)的延遲處理 描 述 void DelaymS uint i 延時(shí)函數(shù) 參數(shù) i 為延時(shí)時(shí)間 uint j k 雙重延時(shí) for j 0 j i j for k 0 k 50 k 函 數(shù) 名 init mcu 功 能 單片機(jī)初始化函數(shù) 輸入?yún)?shù) 輸出參數(shù) 描 述 相關(guān)口方向的設(shè)置等 void init mcu void DDRC 0 xff PC 口為推挽 1 輸出 數(shù)據(jù)位 DDRD 0 xff PD 口為推挽 1 輸出 控制信號(hào) 子程序名 write data 功 能 寫(xiě)入一字節(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 寫(xiě) PORTD EN 0 使能 產(chǎn)生一個(gè)下降沿 DelaymS 1 PORTD 1 PD6 EN 1 除能 子程序名 write code 功 能 寫(xiě)入一字節(jié)指令 地址 輸入?yún)?shù) 輸出參數(shù) 描 述 void wtite code uchar h PORTC h 先將地址送出 PORTD RS 0 命令或數(shù)據(jù) PORTD R W 0 寫(xiě) PORTD EN 0 使能 產(chǎn)生一個(gè)下降沿 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 的點(diǎn)陣 wtite code 0b00001111 顯示幕 ON 光標(biāo) ON 閃爍 ON wtite code 0 x06 模式 加 1 顯示幕 ON wtite code 0b00000011 光標(biāo)回到原點(diǎn) 子程序名 display lcd 功 能 刷新顯示一屏數(shù)據(jù) 獨(dú)立的 LCD 顯示程序 用戶將顯存內(nèi)容更新后 只要調(diào)用此程序即可更 新顯示 輸入?yún)?shù) 輸出參數(shù) 描 述 在寫(xiě)一個(gè)字符前 先設(shè)定顯示的位置地址 然后再寫(xiě)數(shù)據(jù) 系統(tǒng)可以自動(dò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 單片機(jī)初始化 init lcd lcd 初始化 display lcd buf 刷新顯示一屏 buf 0 i 可以任意修改顯示的內(nèi)容 display lcd buf 刷新顯示 wtite code 0 xC0 光標(biāo)停留在 0C2H 位置 第 1 行光標(biāo)位置有 0 x80 0 x81 0 x8f 第 2 行光標(biāo)位置有 0 xc0 0 xc1 0 xcf while 1 16021602 液晶顯示模塊液晶顯示模塊 C C 語(yǔ)言程序 語(yǔ)言程序 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 用于檢測(cè) LCM 狀態(tài)字中的 Busy 標(biāo)識(shí) 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 啟動(dòng)等待 等 LCM 講入工作狀態(tài) LCMInit LCM 初始化 Delay5Ms 延時(shí)片刻 可不要 DisplayListChar 0 5 uctech DisplayListChar 0 0 net ReadDataLCM 測(cè)試用句無(wú)意義 while 1 寫(xiě)數(shù)據(jù) void WriteDataLCM unsigned char WDLCM ReadStatusLCM 檢測(cè)忙 LCM Data WDLCM LCM RS 1 LCM RW 0 LCM E 0 若晶振速度太高可以在這后加小的延時(shí) LCM E 0 延時(shí) LCM E 1 寫(xiě)指令 void WriteCommandLCM unsigned char WCLCM BuysC BuysC 為 0 時(shí)忽略忙檢測(cè) if BuysC ReadStatusLCM 根據(jù)需要檢測(cè)忙 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 檢測(cè)忙信號(hào) return LCM Data void LCMInit void LCM 初始化 LCM Data 0 WriteCommandLCM 0 x38 0 三次顯示模式設(shè)置 不檢測(cè)忙信號(hào) Delay5Ms WriteCommandLCM 0 x38 0 Delay5Ms WriteCommandLCM 0 x38 0 Delay5Ms WriteCommandLCM 0 x38 1 顯示模式設(shè)置 開(kāi)始要求每次檢測(cè)忙信號(hào) WriteCommandLCM 0 x08 1 關(guān)閉顯示 WriteCommandLCM 0 x01 1 顯示清屏 WriteCommandLCM 0 x06 1 顯示光標(biāo)移動(dòng)設(shè)置
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一懷舊風(fēng)活動(dòng)方案
- 六一漢服詩(shī)歌活動(dòng)方案
- 六一活動(dòng)寶寶活動(dòng)方案
- 六一活動(dòng)常規(guī)活動(dòng)方案
- 六一活動(dòng)抽紙活動(dòng)方案
- 六一活動(dòng)游泳館活動(dòng)方案
- 六一活動(dòng)車展活動(dòng)方案
- 六一節(jié)商場(chǎng)活動(dòng)方案
- 六一講故事比賽活動(dòng)方案
- 六一茶坊活動(dòng)策劃方案
- Unit9SectionB2a-2e課件-人教版八年級(jí)英語(yǔ)下冊(cè)
- KRONES灌裝檢測(cè)工作原理及工藝參數(shù)調(diào)整
- SJG 01-2010 深圳市地基基礎(chǔ)勘察設(shè)計(jì)規(guī)范
- 物業(yè)維修流程培訓(xùn)
- 大學(xué)美育(同濟(jì)大學(xué))學(xué)習(xí)通測(cè)試及答案
- 2024年中考模擬試卷數(shù)學(xué)(湖南卷)
- 醫(yī)院培訓(xùn)課件:《便攜式血糖儀臨床操作和質(zhì)量管理》
- 充電樁工程施工技術(shù)方案
- 急性心肌梗死健康教育課件
- 2024年教師資格考試小學(xué)面試科學(xué)試題及答案指導(dǎo)
- (一模)寧波市2024學(xué)年第一學(xué)期高考模擬考試 數(shù)學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論