您的位置 首页 分销

1602液晶动态显示

学了一段时间的51单片机,自己编了一些简单的程序,实现了一些比较简单的功能,我会把这些程序在后面几篇博客中贴上,供需要的人参考。这些

学了一段时间的51单片机,自己编了一些简略的程序,完成了一些比较简略的功用,我会把这些程序在后面几篇博客中贴上,供需求的人参阅。

这些程序都是我调试好的,都能正常运用仅仅或许有些功用我没有写完,不过我都加了注释提示,也比较简略,有时间的话,我会补全的。

有些当地写的不当或不简练,是因为才能所造成的,常识短缺,现在正在恶补……

下面的程序是操控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);

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/256226.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部