×
单片机 > 单片机程序设计 > 详情

1602液晶动态显示

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

这些程序都是我调试好的,都能正常使用只是可能有些功能我没有写完,不过我都加了注释提醒,也比较简单,有时间的话,我会补全的。

有些地方写的不妥或不简洁,是因为能力所致,知识欠缺,现在正在恶补……

 

下面的程序是控制1602液晶上下两行分别显示JUST DO IT !和DO YOUR BEST!两句话,并整屏左右移动三次,最后静态显示出来

 

#include 

#define uchar unsigned char

#define uint unsigned int

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;

 

void delay(uint z)           // 延迟函数

{

     uint x,y;

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

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

     ;

}

 

void write_com(uchar com)      //写指令

{

     rd=0;

     wr=0;

     delay(5);

 

     lcden=1;

     P0=com;

     delay(5);

     lcden=0;

 

 

}

 

void write_date(uchar date)        //写数据

{

     rd=1;

     wr=0;

     delay(5);

 

     lcden=1;

     P0=date;

     delay(5);

     lcden=0;

 

 

}

 

void init()              //初始化

{

     write_com(0x38);

     write_com(0x0e);

     write_com(0x06);

     write_com(0x01);

}

 

void main()

{

     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液晶  动态显示 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430F5529 上手小例程2