液晶是一種高分子材料,液晶顯示器的主要原理是電流刺激液晶分子產生點,線,面并配合背面燈管構成畫面。為敘述簡單,把各種液晶顯示器都直接叫做液晶。各種型號的液晶通常是按照顯示字符的行數或液晶點陣的行列數來命名的。比如:1602的意思是每行顯示16個字符,一共顯示兩行;類似的命名還有0801,0802,1601等,這類液晶通常都是字符型液晶,即只能顯示ASCII碼字符,如數字,大小寫字母,各種符號等。12232液晶屬于圖形型液晶,他的意思是液晶有122列,32行組成。液晶的體積小,功耗低,顯示操作簡單,但是它有一個致命的弱點,其使用的溫度范圍很窄。 初始化設置: RAM地址映射圖: 寫操作時序: 實現兩行顯示,從左向右滑動。 #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit RS = P1^0; sbit RW = P1^1; sbit E = P1^2; uint i; uchar code table[] = "I LOVE MCU!"; uchar code table1[]="WWW.TXMCU.COM"; void delay(uint t){ int i,j; for(i = 0; i < t; i++) for(j = 200; j > 0; j--) ; } void lcd_com(uchar s){ RS = 0; //低電平,寫指令 P2 = s; //傳數據 delay(14); //看時序圖,數據需要穩定一段時間 E = 1; //給一個高脈沖,發送命令 delay(14); //如圖,高脈沖延時一段時間,確保命令發送 E = 0; //發送結束E置為低電平 } void lcd_data(uchar s){ RS = 1; P2 = s; delay(14); E = 1; delay(14); E = 0; } void init(){ RS = 1; //先發指令,在初始時刻RS是高,E和RW是低 E = 0; RW = 0; lcd_com(0x38); //設置為16*2顯示,5*7點陣,8位數據接口 lcd_com(0x0f); //開顯示,顯示光標,光標閃爍 lcd_com(0x06); //讀寫一個字符后地址指針加一 lcd_com(0x01); lcd_com(0x80+0x10); //顯示屏幕對應一塊RAM,屏幕外面還有一塊RAM for(i = 0; i < 11; i++){ //設置地址為屏幕外的RAM,以便實現滾動效果 RS = 0; lcd_data(table[ i]); delay(40); } lcd_com(0x80+0x50); for(i = 0; i < 13; i++){ RS = 0; lcd_data(table1[ i]); delay(40); } for(i = 0; i < 13; i++){ lcd_com(0x18); //0x18,向左移動顯示,光標跟著移動 delay(200); } } void main(){ init(); while(1); } 李萬鵬 |