新聞中心

常用液晶屏LCD1602的使用

作者: 時(shí)間:2012-08-15 來(lái)源:網(wǎng)絡(luò) 收藏
#includereg52.h>sbit RS=P2^0;sbit RW=P2^1;sbit EN=P2^2;//LCD的三個(gè)控制端unsigned char table[]={0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x0A};void delay(unsigned int i){while(--i);}void Read_busy()    
//忙檢測(cè),DB7為1則busy,不能進(jìn)行讀寫操作 ;每次讀寫前應(yīng)"讀忙"檢測(cè){P0=0x00;RS=0;RW=1;EN=1;while(P0  0x80);EN=0;}void write_LCD_command(unsigned char value)//寫命令函數(shù){Read_busy();RS=0;RW=0; EN=1;P0=value;delay(100);EN=0;}void write_LCD_data(unsigned char value)//寫命令函數(shù){Read_busy();RS=1;RW=0; EN=1;P0=value;delay(100);EN=0;}void init_LCD(){write_LCD_command(0x38);//在這里加延時(shí)delay(5);write_LCD_command(0x0c);//開顯示,不顯示光標(biāo),且不閃爍//在這里加延時(shí)delay(5); write_LCD_command(0x06);//每次寫入數(shù)據(jù)后地址指針加1 //在這里加延時(shí)delay(5);write_LCD_command(0x01);//清屏}void main(){unsigned char num;init_LCD();write_LCD_command(0x40);   
 //對(duì)CGRAM第一個(gè)自定義操作,若是第二個(gè)則為0x48,其次類推(上面有對(duì)頂?shù)年P(guān)系)for(num=0;num8;num++){write_LCD_data(table[num]);}write_LCD_command(0x80);    //規(guī)定顯示在第一行第一個(gè)位置write_LCD_data(0x00);         //顯示第一個(gè)自定義 (0x40對(duì)應(yīng)第一個(gè):0x00)while(1);}/*到這里程序結(jié)束了,第一次寫可能說(shuō)的不夠清晰,有不懂的可以留言給我^_^*/

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉