久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 1602液晶動態顯示

1602液晶動態顯示

作者: 時間:2016-11-28 來源:網絡 收藏
學了一段時間的51單片機,自己編了一些簡單的程序,實現了一些比較簡單的功能,我會把這些程序在后面幾篇博客中貼上,供需要的人參考。

這些程序都是我調試好的,都能正常使用只是可能有些功能我沒有寫完,不過我都加了注釋提醒,也比較簡單,有時間的話,我會補全的。

本文引用地址:http://www.cqxgywz.com/article/201611/322829.htm

有些地方寫的不妥或不簡潔,是因為能力所致,知識欠缺,現在正在惡補……

下面的程序是控制1602液晶上下兩行分別顯示JUST DO IT !和DO YOUR BEST!兩句話,并整屏左右移動三次,最后靜態顯示出來

#include

#defineucharunsignedchar

#defineuintunsignedint

uchar code table1[]="JUST DO IT !";

uchar code table2[]="DO YOUR BEST !";

sbit lcden=P2^7;

sbit rd=P2^6;

sbit wr=P2^5;

uchar num,t;

voiddelay(uint z)//延遲函數

{

uint x,y;

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

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

;

}

voidwrite_com(uchar com)//寫指令

{

rd=0;

wr=0;

delay(5);

lcden=1;

P0=com;

delay(5);

lcden=0;

}

voidwrite_date(uchar date)//寫數據

{

rd=1;

wr=0;

delay(5);

lcden=1;

P0=date;

delay(5);

lcden=0;

}

voidinit()//初始化

{

write_com(0x38);

write_com(0x0e);

write_com(0x06);

write_com(0x01);

}

voidmain()

{

init();

write_com(0x80+0x10);

for(num=0;num<12;num++)//分次寫入數據

write_date(table1[num]);

delay(20);

write_com(0x80+0x52);

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

write_date(table2[num]);

delay(20);

for(t=0;t<=2;t++)//來回整屏移動三次

{

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

{write_com(0x18);//整屏左移

delay(200);//移動間隔為ms

}

delay(1000);

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

{write_com(0x 1c);//整屏右移

delay(200);

}

delay(1000);

}

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

{write_com(0x18);

delay(200);

}

while(1);

}



關鍵詞: 1602液晶動態顯

評論


技術專區

關閉