1. 程式人生 > >LCD1602液晶顯示屏的入門級應用(一)

LCD1602液晶顯示屏的入門級應用(一)

sbit rs=P2^6;    //1602的資料/指令選擇控制線 
sbit rw=P2^5;        //1602的讀寫控制線 
sbit en=P2^7;        //1602的使能控制線 
/*P0口接1602的D0~D7*/ 
uchar code table[]="1234";             //要顯示的內容放入陣列table
void delay(uint n)       //延時函式                       

    uint x,y;  
    for(x=n;x>0;x--) 
        for(y=110;y>0;y--); 

void lcd_wcom(uchar com)  //1602寫命令函式                 

    rs=0;            //選擇指令暫存器 
    rw=0;            //選擇寫 
    P0=com;            //把命令字送入P2 
    delay(5);            //延時一小會兒,讓1602準備接收資料 
    en=1;           //使能線電平變化,命令送入1602的8位資料口 
    en=0; 

void lcd_wdat(uchar dat)        //1602寫資料函式       

    rs=1;        //選擇資料暫存器 
    rw=0;        //選擇寫 
    P0=dat;        //把要顯示的資料送入P2 
    delay(5);        //延時一小會兒,讓1602準備接收資料 
    en=1;        //使能線電平變化,資料送入1602的8位資料口 
    en=0; 

void lcd_init()              //1602初始化函式       

    lcd_wcom(0x38);       //8位資料,雙列,5*7字形       
    lcd_wcom(0x0c);      //開啟顯示屏,關游標,游標不閃爍 
    lcd_wcom(0x06);    //顯示地址遞增,即寫一個數據後,顯示位置右移一位 
    lcd_wcom(0x01);    //清屏 

void main()            //主函式 
{     
    uchar m=0; 
    lcd_init();       //液晶初始化 
    lcd_wcom(0x80);   //顯示地址設為80H(即00H,)上排第一位       
    for(m=0;m<4;m++)     //將table[]中的資料依次寫入1602顯示 
    { 
            lcd_wdat(table[m]);           
            delay(200); 
    } 
    while(1);        //動態停機