




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一個1602的例子液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,在袖珍式儀表和低功耗應用系統中得到越來越廣泛的應用。 這里介紹的字符型液晶模塊是一種用5x7點陣圖形來顯示字符的液晶顯示器,根據顯示的容量可以分為1行16個字、2行16個字、2行20個字等等,這里以常用的2行16個字的1602液晶模塊來介紹它的編程方法。 1602采用標準的16漚涌冢渲?1602B引腳說明:編號符號引腳說明編號符號引腳說明1VSS電源地9D2雙向數據口2VDD電源正極10D3雙向數據口3VL對比度調節11D4雙向數據口4RS數據/命令選擇1
2、2D5雙向數據口5R/W讀/寫選擇13D6雙向數據口6E模塊使能端14D7雙向數據口7D0雙向數據口15BLK背光源地8D1雙向數據口16BLA背光源正極注意事項:從該模塊的正面看,引腳排列從右向左為:15腳、16腳,然后才是114腳(線路板上已經標明)。第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當R
3、S和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。第714腳:D0D7為8位雙向數據線。 第1516腳:BLA(BL1): LED背光正極。需要背光時,BLA串接一個限流電阻接VDD,BLK接地,實測該模塊的背光電流為50mA左右,一般接一個幾十歐姆的電阻,47歐、33歐等;BLK(BL2): LED背光地端。1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,如表1所示,這些字符有:阿拉伯數字、英文字母的大
4、小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”1602液晶模塊內部的控制器共有11條控制指令,如表2所示,它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平) 指令1:清顯示,指令碼01H,光標復位到地址00H位置指令2:光標復位,光標返回到地址00H 指令3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效 指令4:顯示開關控制。
5、 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍 指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標 指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符 (有些模塊是 DL:高電平時為8位總線,低電平時為4位總線)指令7:字符發生器RAM地址設置 指令8:DDRAM地址設置 指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示
6、忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。 指令10:寫數據 指令11:讀數據 DM-1602液晶顯示模塊可以和單片機AT89C51直接接口,電路如圖1所示。為了節約I/O口也可以采用6線接法,只用4根數據線,高低位分別傳輸,把RW接地,只寫不讀。這樣可以省下5根I/O口線。液晶顯示模塊是一個慢顯示器件,所以在執行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3是DM-162的內部顯示地址.比如第二行第一個字符的地址是40H,那么是否直接寫入4
7、0H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數據應該是01000000B(40H)+10000000B(80H)=11000000B(C0H) 以下是在液晶模塊的第二行第一個字符的位置顯示字母“A”的程序: ORG 0000H RS EQU P3.7;確定具體硬件的連接方式 RW EQU P3.6 ;確定具體硬件的連接方式E EQU P3.5 ;確定具體硬件的連接方式MOV P1,#00000001B ;清屏并光標復位ACALL ENABLE;調用寫入命令子程序 MOV P
8、1,#00111000B ;設置顯示模式:8位2行5x7點陣 ACALL ENABLE ;調用寫入命令子程序 MOV P1,#00001111B ;顯示器開、光標開、光標允許閃爍ACALL ENABLE ;調用寫入命令子程序MOV P1,#00000110B ;文字不動,光標自動右移 ACALL ENABLE ;調用寫入命令子程序MOV P1,#0C0H ;寫入顯示起始地址(第二行第一個位置)ACALL ENABLE ;調用寫入命令子程序MOV P1,01000001B ;字母A的代碼 SETB RS ;RS=1 CLR RW ;RW=0 ;準備寫入數據CLR E ;E=0 ;執行顯示命令AC
9、ALL 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 RWCLR E NOP SETB E JB P1.7,DELAY ;如果P1.7為高電平表示忙就循環等待 RETEND 程序在開始時對液晶模塊功能進行了初始化設置,約定了顯示格式。注意顯示字符時光標是自動右移的,無需人工干預,每次輸入指令都先調用判斷液晶模塊是否忙的子程序DELAY,
10、然后輸入顯示位置的地址0C0H,最后輸入要顯示的字符A的代碼41H。6線范例:/編譯器:ICC-AVR v6.31A 日期: 2005-11-24 20:29:57 /目標芯片 : M16 /時鐘: 8.0000Mhz /*- LCD引腳定義 1-GND 2-VCC 3-VO 4-RS 5-RW 6-EN 7到14-D0-D7 15-背景燈+ 16-背景燈- -*/ #include <iom16v.h> #include <macros.h> /*- 下面是AVR與L
11、CD連接信息 PA2 ->RS PA3 ->EN 地 ->RW PA4 ->D4 PA5 ->D5 PA6 ->D6 PA7 ->D7 要使用本驅動,改變下面配置信息即可 -*/ #define LCD_EN_PORT PORTA /以下2個要設為同一個口 #define LCD_EN_DDR DDRA #defin
12、e LCD_RS_PORT PORTA /以下2個要設為同一個口 #define LCD_RS_DDR DDRA #define LCD_DATA_PORT PORTA /以下3個要設為同一個口 #define LCD_DATA_DDR DDRA /一定要用高4位 #define
13、60;LCD_DATA_PIN PINA #define LCD_RS (1<<PA2) /0x04 portA2 out #define LCD_EN (1<<PA3) /
14、0x08 portA3 out #define LCD_DATA (1<<PA4)|(1<<PA5)|(1<<PA6)|(1<<PA7) /0xf0 portA4/5/6/7 out /*- 函數說明 -*/ void LCD_init(void); void LCD_
15、en_write(void); void LCD_write_command(unsigned char command) void LCD_write_data(unsigned char data); void LCD_set_xy (unsigned char x, unsigned char y); void LCD_write_string(unsigned char X,unsigned c
16、har Y,unsigned char *s); void LCD_write_char(unsigned char X,unsigned char Y,unsigned char data); void delay_nus(unsigned int n); void delay_nms(unsigned int n); /*=*/void LCD_init(void)
17、; /液晶初始化 LCD_DATA_DDR|=LCD_DATA; /數據口方向為輸出 LCD_EN_DDR|=LCD_EN; /設置EN方向為輸出 LCD_RS_DDR|=LCD_RS; /設置RS方向為輸出 LCD_write_command(0x28);&
18、#160; LCD_en_write(); delay_nus(40); LCD_write_command(0x28); /4位顯示 LCD_write_command(0x0c); /顯示開 LCD_write_command(0x01); /清屏 delay_nms(2); void LCD_en_write(void) /液晶使能
19、160;LCD_EN_PORT|=LCD_EN; delay_nus(1); LCD_EN_PORT&=LCD_EN; void LCD_write_command(unsigned char command) /寫指令 delay_nus(16); LCD_RS_PORT&=LCD_RS; /RS=0 LCD_DATA_POR
20、T&=0X0f; /清高四位 LCD_DATA_PORT|=command&0xf0; /寫高四位 LCD_en_write(); command=command<<4; /低四位移到高四位 LCD_DATA_PORT&=0x0f;&
21、#160; /清高四位 LCD_DATA_PORT|=command&0xf0; /寫低四位 LCD_en_write(); void LCD_write_data(unsigned char data) /寫數據 delay_nus(16); LCD_RS_PORT|=LCD_RS;
22、160; /RS=1 LCD_DATA_PORT&=0X0f; /清高四位 LCD_DATA_PORT|=data&0xf0; /寫高四位 LCD_en_write(); data=data<<4;
23、0; /低四位移到高四位 LCD_DATA_PORT&=0X0f; /清高四位 LCD_DATA_PORT|=data&0xf0; /寫低四位 LCD_en_write(); void LCD_set_xy( unsigned char x, unsigned char y
24、60;) /寫地址函數 unsigned char address; if (y = 0) address = 0x80 + x; else address = 0xc0 + x; LCD_write_comma
25、nd( address); void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s) /列x=015,行y=0,1 LCD_set_xy( X, Y ); /寫地址 while (*s)
26、60;/ 寫顯示字符 LCD_write_data( *s ); s +; void LCD_write_char(unsigned char X,unsigned char Y,unsign
27、ed char data) /列x=015,行y=0,1 LCD_set_xy( X, Y ); /寫地址 LCD_write_data( data); /*=*/void delay_1us(void) /1us延時函數
28、; asm("nop"); void delay_nus(unsigned int n) /N us延時函數 unsigned int i=0; for (i=0;i<n;i+) delay_1us(); void delay_1ms(void) /1ms延時函數 unsigned i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稻谷加工產品質量安全風險評估考核試卷
- 環保技術項目實施與環境保護法規考核試卷
- 纖維原料的吸震與抗震性能考核試卷
- 紡織品品牌年輕化戰略考核試卷
- 電力電子器件的能效提升技術考核試卷
- 相機鏡頭保護套與攜帶方案考核試卷
- 電力設備自動化裝配線考核試卷
- 影視特效化妝假牙租賃與道具租賃及后期特效制作及藝人形象設計及道具管理及品牌授權一體化服務合同
- 生物識別考勤系統集成與維護服務合同
- 積分積分積分兌換規則變更補充協議
- 2025版校園食堂日管控、周排查、月調度記錄表
- (二模)咸陽市2025年高三高考模擬檢測(二)化學試卷(含答案)
- 《城鄉規劃管理與法規系列講座課件-建設項目規劃與審批》
- 第17課《短文兩篇》之《愛蓮說》知識點梳理及練習-2022-2023學年七年級語文下冊古詩文專題期中期末復習(部編版)(教師版)
- 零碳物流園區建設與運營模式研究
- 《高速公路改擴建工程預算定額》
- 化工裝置報廢拆除施工方案
- 職場心態-培訓課件
- 統編版 高中語文 選擇性必修下 第二單元《邊城》
- 白內障患者護理教學查房
- 幼兒園 中班心理健康《我會傾訴》
評論
0/150
提交評論