1602液晶动态显示

发布者:雷电狂舞最新更新时间:2015-08-19 来源: eefocus关键字:1602液晶  动态显示 手机看文章 扫描二维码
随时随地手机看文章
学了一段时间的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液晶  动态显示 引用地址:1602液晶动态显示

上一篇:用51单片机定时器中断设计电子钟
下一篇:基于超声波传感器的车载超重监控报警系统

推荐阅读最新更新时间:2024-03-16 14:29

AVR六个IO口驱动液晶LCD1602
液晶LCD1602比中文大液晶12864较容易驱动,这个驱动程序只用六个单片机IO口驱动,可以减少四个IO口,套用也方便... //LCD1602.h /*--------------------------------------------------------------- 要使用本驱动,改变下面配置信息即可 注意:RW要接地 -----------------------------------------------------------------*/ #define LCD_EN_PORT PORTD //以下2个要设为同一个口 #define LCD_EN_DDR DDRD #define LCD_R
[单片机]
51单片机:6位数码管动态显示,从600000开始,每0.5秒加1
原理图 ##//源码 #include reg52.h #include stdlib.h #define uint unsigned long #define uchar unsigned char sbit N1 = P1^0; sbit N2 = P1^1; sbit N3 = P1^2; sbit N4 = P1^3; sbit N5 = P1^4; sbit N6 = P1^5; uchar code table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uint num; int a,t1=0; void delayms(uint
[单片机]
51单片机:6位数码管<font color='red'>动态显示</font>,从600000开始,每0.5秒加1
51单片机配合超声波测距以及用1602液晶进行显示
/*超声波测距程序,利用51单片机的外部中断,如果有时候发现不好使,建议直接使用杜邦线连接引脚*/ #include reg52.h #include intrins.h typedef unsigned char uchar; typedef unsigned int uint; /*超声波模块为HC-SR04,触发信号给一个至少10us的高电平,之后模块会自动发送8个40kHz的方波信号, 一旦模块收到回响信号,Echo引脚便输出高电平,直到接收不到。这里有个问题是关于时间计算的问题,说明书上说的是 按Echo引脚的高电平持续时间计算,但是声波的路程,不应该是从声波发出的时候就已经开始了吗?这个程序使按照
[单片机]
LCD1602液晶显示DS1302实时时钟Proteus仿真
Proteus仿真图: 仿真程序: #include reg52.h #include intrins.h #include string.h #define uint unsigned int #define uchar unsigned char //*******LCD******* sbit LCDRS=P2^0; //LCD数据/命令选择端 sbit LCDRW=P2^1; sbit LCDEN=P2^2; //LCD使能新号端 //******DS1302****** sbit IO=P1^0; //1302数据线 sbit SCLK=P1^1; //1302时钟线 sbit
[单片机]
LCD<font color='red'>1602</font><font color='red'>液晶</font>显示DS1302实时时钟Proteus仿真
单片机DHT11温湿度+1602液晶显示程序
DHT11驱动程序参考 http://www.51hei.com/bbs/dpj-112282-1.html http://www.51hei.com/bbs/dpj-38067-1.html 1602驱动程序参考 http://www.51hei.com/bbs/dpj-24671-1.html /********************************************************************************************* 程序名:    DHT11-1602 编写人:    fby 编写时间:  2019年3月21日 硬件支持:  STC89C52RC D
[单片机]
单片机DHT11温湿度+<font color='red'>1602</font><font color='red'>液晶</font>显示程序
LCD1602液晶显示汉字显示程序带仿真
//建立 工 字字模并在第一行第一列显示 //P155 参考程序: GONG_ZI() //单片机仿真文件下载: http://www.51hei.com/bbs/dpj-23789-1.html #include reg51.h #include intrins.h //库函数头文件,代码中引用了_nop_()函数 sbit RS=0xb0; //P3.0 sbit RW=0xb1; //P3.1 sbit E= 0xb2; //P3.2 void lcd_w_cmd(unsigned char com); void lcd_w_dat(unsigned char dat); unsigned char
[单片机]
AVR单片机ATMEGA16 1602液晶驱动程序及心得
我自己研发的AVR微控制器芯片开发板,1602液晶屏实验成功!我很欣慰.写了一整天的程序,反复实验,最终在凌晨0点.终于成功了. 在此过程中,最大的问题莫过于那个所谓配套的1602液晶屏数据手册!这个手册简直是误人子弟,里面资料写的很含糊.并且有错误,而导致我反复试验失败,最终,我使用了通用的1602液晶屏数据手册,才得以成功. 我自制的AVR开发板尺寸和我买的51开发板差不多大小,ATmega16最小系统,8位数码管,蓝光流水灯,isp编程接口.过载保护保险丝,两个74hc573锁存器.1602液晶屏都已焊接完成,万用板是12X18cm的单孔玻纤板(质量不太好,便宜没好货).现在我才发现不够用,模块数量相同的两块实验板
[单片机]
51单片机驱动1602液晶汇编语言程序
LCMRS EQU P2.4 LCMRW EQU P2.5 LCMEN EQU P2.6 LCMDATA EQU P0 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP,#60H LCALL LCMSET LCALL LCMCLR MOV A,#80H LCALL LCMWR0 MOV DPTR,#TAB0 LCALL LCMWR2 MOV A,#0C0H LCALL LCMWR0 MOV DPTR,#TAB1 LCALL LCMWR2 SJMP $ TAB0: DB I AM YUAN MING ,00H TAB1: DB NICE TO MEET YOU ,00H LCMLAY:
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved