51单片机1602液晶显示移动显示

发布者:温暖的微风最新更新时间:2018-06-25 来源: eefocus关键字:51单片机  1602液晶  移动显示 手机看文章 扫描二维码
随时随地手机看文章

#include  

#include  

#define uchar unsigned char  

#define uint unsigned int  

sbit RS=P2^0;//寄存器选择位  

sbit RW=P2^1;//读写选择位  

sbit E=P2^2; //使能信号位  

sbit BF=P0^7;//忙碌标志位  

uchar table1[]={"  HELLOW WORLD"};  

/************** 

函数功能:延时函数1秒 

*******************/  

void delaylms()  

{  

 uchar i,j;  

 for(i=0;i<10;i++)  

  for(j=0;j<33;j++);  

}  

/********* 

函数功能:延时若干秒*** 

*******入口参数:n 

*****************/  

void delay(uchar n)  

{  

 uchar  i;  

 for(i=0;i

  delaylms();  

}  

/****** 

函数功能;判断液晶模块的忙碌状态 

返回值:result。result=1,忙碌;result=0,不忙碌**********/  

uchar busytest(void)  

{  

 bit result;  

 RS=0;  //RS为低电平RW为高电平,可以读状态  

 RW=1;  

 E=1;   //E=1允许写  

 _nop_();  

 _nop_();  

 _nop_();  

 _nop_();  

 result=BF;  

 E=0;  

 return result;  

}  

/********* 

函数功能:将模式设置指令或显示地址写入液晶模块 

入口参数:dictate******************/  

void writeinstruction(uchar dictate)  

{  

 while(busytest()==1);  

 RS=0; //RS,RW同时为0时,可以写入指令  

 RW=0;  

 E=0; //写指令时E为高脉冲,写指令就是让脉冲从0到1发生跳变  

 _nop_();  

 _nop_();  

 P0=dictate;//将数据写入P0口,即写入指令或地址  

 _nop_();  

 _nop_();  

 _nop_();  

 _nop_();//四个空周期,给机器足够的反应时间  

 E=1;  

 _nop_();  

 _nop_();  

 _nop_();  

 _nop_();  

 E=0; //当E由1到0时液晶模块开始执行命令  

}  

/********函数功能:指定字符显示的实际地址 

入口参数:x**************/  

void writeaddress(uchar x)  

{  

  writeinstruction(x|0x80);  

}  

/********函数功能:将数据(字符的ASCII码)写入字符模块 

入口函数:y*******************/  

void writedate(uchar y)  

{  

 while(busytest()==1);  

 RS=1;//RS为高电平,RW为低电平可以写入数据  

 RW=0;  

 E=0;    

 P0=y;//将数据写入液晶模块  

 _nop_();  

 _nop_();  

 _nop_();  

 _nop_();  

 E=1;  

 _nop_();  

 _nop_();  

 _nop_();  

 _nop_();  

 E=0;  

  

}  

/********函数的功能:对液晶的显示功能进行初始化设置**************/  

void lcdinitate()  

{  

 delay(15);//延时15秒  

 writeinstruction(0x38);//设置显示模式16*2显示,5*7点阵,8位数据接口  

 delay(5);  

 writeinstruction(0x38);//设置显示模式16*2显示,5*7点阵,8位数据接口  

 delay(5);  

 writeinstruction(0x38);//设置显示模式16*2显示,5*7点阵,8位数据接口  

 delay(5);  

 writeinstruction(0x0f);//设置显示模式:显示开有光标光标闪烁  

 writeinstruction(0x06);//设置显示模式:光标右移字符不移  

 delay(5);  

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

 delay(5);  

}  

void main(void)  

{  

 uchar i;  

 lcdinitate();  

 delay(10);  

 while(1)  

 {  

  writeinstruction(0x01);  

  writeaddress(0x00);//设置显示位置为第一行的第五个字  

  i=0;  

  while(table1[i]!='\0')  

  {  

   writedate(table1[i]);  

     

   i++;  

   delay(150);  

  }  

  for(i=0;i<4;i++)  

   delay(250);  

    

 }  

}  


关键字:51单片机  1602液晶  移动显示 引用地址:51单片机1602液晶显示移动显示

上一篇:51单片机配合超声波测距以及用1602液晶进行显示
下一篇:如何编写51单片机超声波测距SR04_lcd1602显示程序

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

温度测量DSB1820 lcd1602液晶显示
程序中要用到LCD1602display.h头文件 可以在我的另一篇文章中取得: http://www.51hei.com/mcu/3292.html 为同一个文件 #include reg52.h #include intrins.h #include LCD1602display.h sbit DQ=P2^0; //ds18b20 uint wendu=0; uchar num,num1; uint temperature=0; uchar code range = ===TEMPERTURE=== ; uchar code ASCII = 0123456789. ; uchar code table0 = ROME TE
[单片机]
51单片机W77E58的存储器访问
增强型51系列 单片机 W77E58可与标准的8052兼容,它内含4个8位I/O口、3个16位计数器和全双工串行通信接口。由于W77E58对处理器内核进行了重新设计,因而其性能较之于标准的8052有了很大提高。 W77E58改进了传统处理器的时序。机器周期与时钟之比可以由软件来控制,最快时一个机器周期仅需4个时钟,最慢时一个机器周期需1024个时钟。在同样的时钟频率下,当时钟/机器周期等于4时,W77E58的指令速度比传统的51 单片机 提高了1.5~3倍(平均2.5倍)。如果以时钟/机器周期等于4 为正常工作方式,那么时钟/机器周期等于1024就可以认为是经济模式了。W77E58为全静态CMOS设计,其工作时钟最高为40M
[单片机]
<font color='red'>51单片机</font>W77E58的存储器访问
AT89C2051单片机对足浴器温度控制系统的设计
足浴器的设计难点在于成本控制和温度控制系统的设计。近年来,开关电源技术的逐渐成熟,为小功率电源供电提供了一个高效率且低成本的方案,摒弃了传统的变压器降压、整流、三端稳压的低效率供电方式。而通过软件算法完善,例如PID算法的运用,可减少部分硬件开销,降低成本及系统复杂度,提高系统的稳定性。设计结合以上技术,着眼于成本最小化,性能最大化,实现了LED温度显示,双按键目标温度调节,高精度温控功能。由于主控芯片AT89C2051只有两组共16个IO引脚,2 kB的内存,因此需合理运用IO资源,程序设计简洁,合理分配内存空间。 1 系统结构设计 系统由供电、采样、按键、显示及单片机部分组成。 传感器负责采集温度值,传递给MCU,目标
[单片机]
AT89C20<font color='red'>51单片机</font>对足浴器温度控制系统的设计
51单片机运算器(ALU)的主要功能
A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。 B)加、减、乘、除、加1、减1、比较等算术运算。 C)与、或、异或、求补、循环等逻辑运算。 D)位处理功能(即布尔处理器)。 由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。 例如:执行指令 ADD A,B 执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回到累加器A。
[单片机]
51单片机入门——控制LED灯
1. LED 1.1.什么是LED? LED(light-emitting diode),即发光二极管,俗称LED小灯,是一种由磷化镓(GaP)等半导体材料制成的、能直接将电能转变成光能的发光显示件。当LED内部有一 定电流通过时,它就会发光,不同LED能发出不同颜色的光,常见的有红色、黄色等,如图: 关于LED外形特征主要说明下列几点。 (1)单色LED的外壳颜色表示了它的发光颜色。LED的外壳是透明的。 (2)单色LED只有两根引脚,这两根引脚有正、负极之分。多色的LED为 3 根引脚。 (3)LED外形很有特色,所以可以方便地识别出LED。 1.2.LED的种类 1.3.LED的主要参数 电参数: (1)正向工
[单片机]
<font color='red'>51单片机</font>入门——控制LED灯
基于51单片机多功能太阳能路灯的设计与实现
随着社会发展的步伐日益加快,人们对新型能源地开发利用程度不断加大,太阳能作为一种新型能源,越来越受到人们的重视,合理有效的利用好太阳能,已逐步成为节能环保的一种趋势。西藏太阳能资源居中国首位,也是世界上最丰富的地区之一,全年平均日照时数在3 000小时左右。因此为了更环保、更加节能,合理有效地利用太阳能,我们设计出一款多功能太阳能路灯。文中采用C8051F020作为主控芯片,通过51单片机控制片内高速AD对紫外线传感器、温度传感器、光照度传感器等进行采样,对拉萨环境进行监测(特别是紫外线强度的监测),相关数据参数经过LCD显示,用户可通过需要显示广告信息,如进行公益广告,商业广告相关信息的宣传;同时利用具有高效节能的LED灯作为
[单片机]
基于<font color='red'>51单片机</font>多功能太阳能路灯的设计与实现
MCS-51单片机访问超大容量存储器的实现
1 引言 MCS-51系列单片机有着优越的性价比,因此应用面宽,使用量也非常大;然而它只有16位地址线,最大能访问的存储空间为64K,且扩展接口与存储器统一编址,扩展接口会占用大量的地址空间,致使该系列单片机在数据量大的数据采集系统中,存储空间明显不足。 笔者最近在开发一数据采集系统时,经分析、探索,找到了解决的办法。 2 使用大容量存储器的原理 2.1 使扩展接口不占用单片机的存储地址空间 由于MCS-51单片机的扩展接口与存储器统一编址,采用常规的方法扩展接口时会占用大量的地址空间,而多数应用系统均会要求扩展接口(本例有七段LED的段输出口、位输出口、键盘口各一个),为此,使扩展接口不占用单片机的存储地址
[单片机]
MCS-<font color='red'>51单片机</font>访问超大容量存储器的实现
51单片机控制步进电机-让电机转起来
摘要: 本节介绍用简单的方式,让步进电机转起来。其目的之一是对电机转动有直观的感受,二是熟悉整个开发流程 本系列教程必要的51单片机基础包括IO口操作、中断、定时器三个部分,相关基础教程网上很多,可以自行学习 一、软件清单 需要用到的软件有keil5编译软件、STC程序烧录软件 二、控制原理 根据TB6600驱动器原理,向PUL口发送脉冲,每发送一个脉冲,电机就转一步。通过单片机延时的方式,切换PUL口电平产生脉冲,从而控制电机转动。 三、程序代码 //毫秒延时函数 void delay(unsigned int z) { unsigned int x,y; for(x=z;x 0;x--) for(y
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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