當前位置:編程學習大全網 - 編程語言 - 51單片機LCD顯示

51單片機LCD顯示

妳說的是那類液晶!1602?這類基於HD44780液晶芯片,操作上都大同小異

都是通過寫入命令,讀出數據,界面數據變化時通過不斷的刷新變化,忙閑查詢可以用命令,也可以用延時函數5ms就可以了,下面是個簡單的例子

想要復雜點的可以去我百度空間裏面找

#include<AT89X51.H>

sbit lcden=P3^4;

sbit lcdrs=P3^5;

unsigned char code tab[]="libinQQ490251568";

unsigned char code tab1[]="51binyf.com" ;

void delay(unsigned char z);

void into();

void xie_com(unsigned char com);

void xie_date(unsigned char date);

void main()

{ unsigned char num;

into();

for(num=0;num<16;num++)

{

xie_date(tab[num]);

delay(20);

}

xie_com(0x40+0x80+0x03); //使數據指針指到第二行 起始,+1----16可以使它在屏幕的任意位置顯示,

for(num=0;num<11;num++)

{

xie_date(tab1[num]);

delay(20);

}

while(1);

}

void delay(unsigned char z)

{unsigned i,k;

for(i=z;i>0;i--)

for(k=110;k>0;k--);

}

void into()// 此函數中寫入壹些顯示前的準備數據

{

lcden=0;//寫指令之前為E為低電平,

xie_com(0x38);//8為數據傳送,顯示2行,5x7點陣顯示字符

xie_com(0x0f);//開顯示,有光標且閃動 0f光標閃爍,0e光標不閃爍

xie_com(0x06);//寫入壹個字符後光標+1,指針也+1。字符整屏不移動

xie_com(0x80);//數據指針初始化即在第壹行最左邊,後面每個字符地址就加壹,第二行首地址是C0

xie_com(0x01);//清屏指令

}

void xie_com(unsigned char com) //寫指令函數

{

lcdrs=0; //RS=0寫指令

P0=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void xie_date(unsigned char date) //寫數據 函數

{

lcdrs=1;//RS=1寫數據

P0=date;

delay(5);

lcden=1;//資料上說E端有壹個高脈沖時候執行壹次指令,實際應用中他內部

delay(5);//檢測到E端有壹個電平跳變就可以執行指令

lcden=0;

}

  • 上一篇:計算機大類哪個好就業?軟件工程與計算機科學與技術如何選擇
  • 下一篇:26歲零基礎想轉行學習IT程序員,該學什麽好呢?
  • copyright 2024編程學習大全網