




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、AVR學(xué)習(xí)筆記十七、LCD12232液晶顯示實(shí)驗(yàn) -基于LT_Mini_M1617.1 LCD12232液晶顯示實(shí)驗(yàn)17.1.1、實(shí)例功能 在前面我們已經(jīng)學(xué)習(xí)了1602和12864液晶的基本知識(shí),并且通過(guò)簡(jiǎn)單的實(shí)例實(shí)現(xiàn)了在1602和12864液晶上顯示字符和漢字。今天我們?cè)賮?lái)學(xué)習(xí)另外一種比較常用的液晶12232. 本實(shí)例中我們選用深圳錦昌電子的DM12232B型液晶。 本實(shí)例分為三個(gè)功能模塊,分別描述如下: 單片機(jī)系統(tǒng):利用ATmega16單片機(jī)與DM12232B型液晶構(gòu)成液晶顯示電路。 外圍電路:DM12232B型液晶與單
2、片機(jī)的連接電路。 軟件程序:編寫(xiě)軟件,控制液晶顯示字符。通過(guò)本實(shí)例的學(xué)習(xí),掌握以下內(nèi)容: 掌握DM12232B型液晶的基本原理和程序設(shè)計(jì)方法。17.2、器件和原理 關(guān)于液晶的顯示原理我們?cè)谇懊娴膶?shí)例中已經(jīng)做過(guò)介紹,在這里就不再多做說(shuō)明。在本實(shí)例中我們重點(diǎn)介紹DM12232B型液晶的結(jié)構(gòu)、指令及顯示控制。12232系列的LCD大部分都是使用SED1520驅(qū)動(dòng)芯片,12232F用的是ST7920。它們的運(yùn)行速度都是nS級(jí)的,所以一般我們發(fā)送數(shù)據(jù)的時(shí)候不用過(guò)多考慮等待問(wèn)題。許多LCD模塊的引腳數(shù)都不一致,常見(jiàn)有1620個(gè)不等。不過(guò)它們的功能是大同小異。我們所用的DM12232B型液晶是18引腳:VD
3、D,VSS,VLCD, RET,E1,E2,R/W,A0,DB0, DB1,DB2,DB3, DB4,DB5,DB6,DB7,LED+,LED-。、DM12232B型液晶的管腳排列 DM12232B型液晶的管腳排列及說(shuō)明如圖1所示: 引腳功能簡(jiǎn)單說(shuō)明:1、VLCD為L(zhǎng)CD電源,要求電壓可調(diào)節(jié),一般用20K的可調(diào)電阻取中間抽頭電壓供電; 2、RES,復(fù)位信號(hào)。這個(gè)大家都知道,一般應(yīng)用中直接接到高平就行了;3、E1,E2為控制器選擇線,高電平時(shí)為選中;4、R/W0時(shí)為寫(xiě)選通,R/W1時(shí)為讀選通,一般我們只是向液晶發(fā)送數(shù)據(jù),不讀液晶內(nèi)部的數(shù)據(jù),所以該腳可以直接接地(低電平);5、A01時(shí)表示所發(fā)的數(shù)
4、據(jù)是顯示數(shù)據(jù),A00時(shí)表示所發(fā)數(shù)據(jù)是指令(Instruction);6、DB0DB7為數(shù)據(jù)線;7、LED-,LED+為背光燈電源,一個(gè)接正,一個(gè)接地就行。、DM12232B型液晶的讀寫(xiě)時(shí)序DM12232B型液晶的讀寫(xiě)時(shí)序如圖2所示, 應(yīng)用中主要有兩種讀寫(xiě)時(shí)序:寫(xiě)指令和寫(xiě)數(shù)據(jù),分別描述如下: 寫(xiě)指令:E選通A0=0讀寫(xiě)使能(直接接地就不用設(shè)置了)數(shù)據(jù)的發(fā)送狀態(tài)釋放寫(xiě)數(shù)據(jù)E選通A0=1讀寫(xiě)使能(直接接地就不用設(shè)置了)數(shù)據(jù)的發(fā)送狀態(tài)釋放 圖1 DM12232B型液晶的管腳排列及說(shuō)明
5、 圖2 DM12232B型液晶的讀寫(xiě)時(shí)序17.2.3、DM12232B型液晶的指令介紹DM12232B型液晶的指令如表1所示表1 DM12232B型液晶的指令表1(續(xù)) DM12232B型液晶的指令17.2.4、DM12232B型液晶的原理圖DM12232B型液晶的原理圖如圖3所示17.2.5、DM12232B型液晶的地址表DM12232B型液晶的地址表如圖4所示圖3 DM12232B型液晶的原理圖圖4 DM12232B型液晶的地址表、電路和連接 圖5所示為DM12232B型液晶與單片機(jī)之間進(jìn)行并口通訊的典型接法本實(shí)例是在LT_Min
6、i_M16學(xué)習(xí)板的基礎(chǔ)上做的擴(kuò)展實(shí)驗(yàn),具體連線如下。引腳連接mcu lcd 引腳說(shuō)明Vcc VDD 電源電壓GND VSS 電源地偏壓信號(hào),接可調(diào)電阻 VEE(VLCD) LCD外接驅(qū)動(dòng)負(fù)電壓PA1 RES 復(fù)位信號(hào)(低電平有效),低電平復(fù)位PA6 E1 讀寫(xiě)使能信號(hào)1PA7 E2 讀寫(xiě)使能信號(hào)2PA5 R/W 讀寫(xiě)選擇信號(hào)PA4 A0 H-顯示數(shù)據(jù)。L-顯示指令數(shù)據(jù)(指令數(shù)據(jù)選擇)PB0 DB0 數(shù)據(jù)線PB1 DB1PB2 DB2PB3 DB3PB4 DB4PB5 DB5PB6 DB6 PB7 DB7Vcc VLED+ LED(+5V)或EL背光源GND VLED- LED(0V)或EL背光
7、源圖5 12232B液晶與單片機(jī)的一種接口圖17.4、程序設(shè)計(jì) 1、程序功能程序的功能是使用單片機(jī)控制12232B液晶顯示字符,程序比較簡(jiǎn)單,直接看程序就能明白原理了。2函數(shù)說(shuō)明本程序多個(gè)功能函數(shù),分別是: DM12232B液晶處理相關(guān)函數(shù):extern void LCDPort_Init(void); /液晶端口初始化extern void LCD_Init(void); /LCD初始化extern void WriteCommand(unsigned char chip_select,unsigned char cmd);/寫(xiě)命令extern void WriteData(unsigned
8、 char chip_select,unsigned char data);/寫(xiě)數(shù)據(jù)extern void clear_lcd(void); /清屏extern void tex_Write(unsigned char *pt); /寫(xiě)字符extern void WriteCharacter(unsigned char *pt); /寫(xiě)漢字extern void Drawing_Map(unsigned char *pt); /繪圖 延時(shí)相關(guān)函數(shù):void Delayus(unsigned int lus); /us延時(shí)函數(shù)void Delayms(unsigned int lms); /ms
9、延時(shí)函數(shù)由于WINAVR自帶函數(shù)庫(kù)中的延時(shí)函數(shù)使用起來(lái)很不方便,并且晶振頻率不同,延時(shí)時(shí)間也有區(qū)別,所以本實(shí)例中自己寫(xiě)了兩個(gè)延時(shí)函數(shù)。 3、使用WINAVR開(kāi)發(fā)環(huán)境,使用的是外部12M的晶振,所以需要將makefile文件中的時(shí)鐘頻率修改為12M。另外在程序燒錄到單片機(jī)的時(shí)候,熔絲位也要選擇為外部12M晶振(注意是晶振,不是外部振蕩器,一定不要選擇錯(cuò)了,否則會(huì)導(dǎo)致單片機(jī)不能再燒寫(xiě)程序)。4、程序代碼由于本程序代碼比較長(zhǎng),所以在此只列出與控制液晶DM12232B相關(guān)的部分代碼,完整程序放在附件中/端口初始化void LCDPort_Init() /LCD數(shù)據(jù)端口設(shè)置PORTB = 0xff; /
10、DDRB = 0xFF; /配置端口PB全部為輸出口,LCD數(shù)據(jù)端口/LCD控制端口設(shè)置 SET_RES; SET_A0;SET_RW; SET_E1; SET_E2; DDRA = 0xff; /Delayms(15); /LCD初始化void LCD_Init()WriteCommand(0x01,0xe2); /rest 復(fù)位WriteCommand(0x02,0xe2);/WriteCommand(0x01,0xae); /close display 關(guān)顯示/WriteCommand(0x02,0xae); /WriteCommand(0x01,0xa4); /static drive
11、r關(guān)靜態(tài)驅(qū)動(dòng)/WriteCommand(0x02,0xa4);WriteCommand(0x01,0xa9); /duty 1/32占空比1/32WriteCommand(0x02,0xa9);/WriteCommand(0x01,0xa0); /clockwise output ADC選擇,順時(shí)針還是逆時(shí)針讀取RAM數(shù)據(jù)/WriteCommand(0x02,0xa0); /WriteCommand(0x01,0xee); /end 關(guān)閉讀修改寫(xiě),無(wú)論讀或?qū)懖僮骱螅械刂范技?/WriteCommand(0x02,0xee); /WriteCommand(0x01,0x00); /行地址設(shè)置,
12、設(shè)置顯示RAM的行地址(Y地址)/WriteCommand(0x02,0x00);/WriteCommand(0x01,0xc0); /顯示起始行設(shè)置。指定顯示器從顯示RAM中的那一行開(kāi)始顯示 /數(shù)據(jù),(起始行=0)/WriteCommand(0x02,0xc0);WriteCommand(0x01,0xaf); /opend display 開(kāi)顯示W(wǎng)riteCommand(0x02,0xaf); /LCD寫(xiě)指令,void WriteCommand(unsigned char chip_select,unsigned char cmd)if(chip_select & 1) /判斷對(duì)左
13、頁(yè)還是右頁(yè)的操作SET_E1; /如果是左頁(yè),E1使能else if(chip_select & 2) /SET_E2; /右頁(yè),E2使能CLR_A0; /A0=0 寫(xiě)命令CLR_RW; /RW=0 寫(xiě)操作PORTB = cmd; /寫(xiě)命令數(shù)據(jù)到數(shù)據(jù)端口if(chip_select & 1) /CLR_E1; /關(guān)閉左右頁(yè)使能else if(chip_select & 2) /CLR_E2; / SET_A0; /SET_RW; / /寫(xiě)數(shù)據(jù)void WriteData(unsigned char chip_select,unsigned char data)if(ch
14、ip_select & 1) /判斷左右頁(yè)SET_E1; /else if(chip_select & 2) /SET_E2; /SET_A0; /A0=1,寫(xiě)數(shù)據(jù)CLR_RW; /RW=0,寫(xiě)操作PORTB = data; /寫(xiě)數(shù)據(jù)到數(shù)據(jù)端口if(chip_select & 1) /CLR_E1; /結(jié)束使能else if(chip_select & 2) /CLR_E2; / CLR_A0; /SET_RW; / /清屏void clear_lcd(void)unsigned char a,b,c;for(a = 0xb8;a < 0xbc;a+) /
15、清屏0-3頁(yè),指令分別是b8,b9,ba,bb(X地址)b = 0; /WriteCommand(0x01,a); /左,第0頁(yè)開(kāi)始WriteCommand(0x02,a); /右,第0頁(yè)開(kāi)始WriteCommand(0x02,b); /右,第0行開(kāi)始(Y地址)WriteCommand(0x01,b); /左,第0行開(kāi)始for(c = 0;c < 61;c+) /總共122列,左右各61列WriteData(0x01,0x00); /左,每列均填充0WriteData(0x02,0x00); /右,每列均填充0/寫(xiě)字符void tex_Write(unsigned char *pt)un
16、signed char a,b;if(SEL_E1) /左選中? WriteCommand(0x01,0xb8); /頁(yè)設(shè)置,第0頁(yè)(X地址)WriteCommand(0x01,Add1); /第0行開(kāi)始(Y)地址for(a = 8;a < 16;a+) / WriteData(0x01,*(pt + a); /上半部分8-16,總高度16, WriteCommand(0x01,0xb9); /第一頁(yè)WriteCommand(0x01,Add1); /for(b = 0;b < 8;b+) /WriteData(0x01,*(pt + b); /下半部分else if(SEL_E1
17、 = 0) /若為0,寫(xiě)右半邊WriteCommand(0x02,0xb8); /WriteCommand(0x02,Add1); /for(a = 8;a < 16;a+) /WriteData(0x02,*(pt + a); / WriteCommand(0x02,0xb9); /WriteCommand(0x02,Add1); /for(b = 0;b < 8;b+) /WriteData(0x02,*(pt + b); / if(Add1 + 8) < 61) Add1 += 8; /如果不超過(guò)61列列地址+8else / Add1 = 0; /超過(guò)61列,則列地址置
18、0,寫(xiě)右半邊WriteCommand(0x02,0xb8); /WriteCommand(0x02,Add1); /for(a = 12;a < 16;a+) /一個(gè)字符占8列,所以在61列之后還要寫(xiě)4列WriteData(0x02,*(pt + a); /WriteCommand(0x02,0xb9); /WriteCommand(0x02,Add1); /for(b = 4;b < 8;b+) /WriteData(0x02,*(pt + b); /Add1 += 4; / SEL_E1 = 0; / 寫(xiě)漢字void WriteCharacter(unsigned char *
19、pt)unsigned char a,b; if(SEL_E2) /WriteCommand(0x01,0xba); /WriteCommand(0x01,Add2); /for(a=16;a<32;a+) /WriteData(0x01,*(pt+a); / WriteCommand(0x01,0xbb); /WriteCommand(0x01,Add2); /for(b=0;b<16;b+) /WriteData(0x01,*(pt+b); /else if(SEL_E2=0) /WriteCommand(0x02,0xba); /WriteCommand(0x02,Add2); /for(a=16;a<32;a+) /WriteData(0x02,*(pt+a); / WriteCommand(0x02,0xbb); /WriteCommand(0x02,Add2); /for(b=0;b<16;b+) /WriteData(0x02,*(pt
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)樓盤(pán)活動(dòng)方案
- 團(tuán)建活動(dòng)搶糖果活動(dòng)方案
- 四年級(jí)勞動(dòng)體驗(yàn)活動(dòng)方案
- 國(guó)慶開(kāi)業(yè)長(zhǎng)沙活動(dòng)方案
- 國(guó)慶節(jié)郵箱優(yōu)惠活動(dòng)方案
- 喜來(lái)登金店活動(dòng)方案
- 園區(qū)聯(lián)誼交友活動(dòng)方案
- 團(tuán)體促銷活動(dòng)方案
- 國(guó)慶布置場(chǎng)館活動(dòng)方案
- 國(guó)慶清潔整治活動(dòng)方案
- 工程管理之施工資料管理培訓(xùn)
- 變壓器油箱焊接工藝
- 國(guó)學(xué)療愈行業(yè)分析
- (2023)義務(wù)教育新課程標(biāo)準(zhǔn)生物(2022年版)必考試題含答案
- 陣發(fā)性室上性心動(dòng)過(guò)速(PSVT)的診斷和治療
- 原發(fā)性硬化性膽管炎學(xué)習(xí)課件
- 《高分子聚合方法》課件
- 語(yǔ)音信號(hào)的處理與濾波
- 喜之郎營(yíng)銷方案
- 眼科眼瞼病診療規(guī)范診療規(guī)范2023版
- 第九屆全國(guó)大學(xué)生化學(xué)實(shí)驗(yàn)邀請(qǐng)賽物理化學(xué)題二
評(píng)論
0/150
提交評(píng)論