51单片机怎么显示当前时间_51单片机玩转物联网基础篇06-LCD1602液晶显示器

85f005faa160826f9166bce9bc42aa1a.png

前言

本节我们开始学习LCD1602,LCD1602是字符型液晶显示屏,在实际项目中应用非常广泛,学完本节就可以逐步开发一些好玩的应用了。

一、基础知识

1.LCD1602简介

LCD1602是字符型液晶显示模块,专门用于显示字母、数字、符号等点阵式LCD,顾名思义,LCD1602一共可以显示两行,每一行能够显示16个字符数据,采用5V供电,具有低功耗、长寿面、搞可靠性等特性,实物图如下:

ba3a2b440eaee61cfca16ecaf4498150.png

(1) 引脚说明

1a5decc001f29d5ebc50a7c443425f03.png

在 LCD1602 内部含有 80 个字节的 DDRAM,它是用来寄存显示字符的。其地址

和屏幕的对应关系如下

06eb8f3d180ac9c092e677b097da656a.png

从上图可知,LCD1602中80个字节并不是所有的都用来显示数据,只有第一行的00~0F,第二行的40~4F用来显示,其他地址只能用来存储

(2) 指令表

463137daa8ab4f35fe2928bc07ff2f13.png

(3) 常用指令说明

  • 清屏指令

8c9ceba6e59e82c3bf3475af2dff4984.png

功能:清楚屏幕,置AC为0

  • 模式设置指令

b5aa31849c58c56e3d052cb1788a13cf.png

功能:光标和显示模式设置

设定每次输入1位数据后光标的移位方向,并且设定每次写入后的字符是否移动。

I/D(光标移动方向): 1:右移 0:左移

S(显示屏整体是否移动): 1 :有效右移 0:无效

  • 显示开关控制指令

edfbb012ea6069673cf0eee12758b2ee.png

功能:控制显示器开/关,光标开/关,光标是否闪烁

D:1,开启显示功能; 0,关闭显示功能

C:1,有光标;0,无光标

B:1,光标闪烁;0,光标不闪烁

  • 功能设定指令

939a9f3dc5f695e7130ace1b151b4f44.png

功能:设置数据总线位数、显示行数、字型

DL:1,数据总线为8位; 0,数据总线为4位

N:1,显示2行;0,显示1行

F:1,5X7点阵;0,5X10点阵

2.硬件设计

打开硬件设计电路,LCD相关电路如下

74aa82f397c6e4918afd1b8a02a95fe7.png

注意:R7控制LCD1602驱动电压,可调,一般设计需要10K可调电阻,也可以字型调试OK后,焊接固定电阻。

二、实例

1.创建工程

将上一节工程复制出来,并修改名字为05-lcd1602

ab68a7e4b1b99ad3a87cfb21bd8d6d32.png

2.修改程序

/*------------------------------------------------------
*店铺网址:https://shop321633213.taobao.com/?spm=a1z10.3-c.0.0.33816af5iLgN2F
*适用于A08开发板
*实验现象:驱动LCD1602
*QQ群:906015840
* ------------------------------------------------------*/ #include<reg51.h> //头文件
#include <intrins.h> 
#define uchar unsigned char
#define uint unsigned int 
uchar code table_xiaoyi[]="XIAOYI IOT";         //
uchar code table_xiaoyi_welcome[]="Welcome!";                                 
sbit LCD_EN=P3^7;   //液晶使能信号
sbit LCD_RS=P3^5;   //数据/命令选择端
sbit LCD_WR=P3^6;void delay_ms(uint ms)
{uint x,y;for(x=ms;x>0;x--)for(y=110;y>0;y--);
}void write_com(uchar com) //命令
{LCD_RS=0;        //选择写命令P0=com;delay_ms(5);LCD_EN=1;        //使能信号LCD_EN=0;         //关闭使能
}void write_data(uchar date) //数据
{LCD_RS=1;        //选择写数据P0=date;delay_ms(5);LCD_EN=1;LCD_EN=0;
}void init()
{LCD_EN=0;write_com(0x38);         //00111000        设置16*2显示,5*7点阵 8为数据接口write_com(0x0c);   //00001100        设置开显示,不显示光标write_com(0x06);         // 00000110        写一个字符后地址指针加 1write_com(0x01);         //00000001        显示清0,数据指针清零        
}void main(void) //主函数
{uchar i;LCD_WR=0;init();// 写第一行数据write_com(0x80); for(i=0;i<10;i++){write_data(table_xiaoyi[i]);delay_ms(5);}// 写第二行数据write_com(0x80+0x40);        for(i=0;i<8;i++){write_data(table_xiaoyi_welcome[i]);delay_ms(5);}while(1);
}

程序中将字符串"XIAOYI IOT"显示在第一行,"Welcome"显示在第二行。

三、运行

将上述程序生成的hex文件烧录到板子中,板子显示如下:

15e0a4d85a6758ba0eaaa59e886c0486.png

硬件获取:

51单片机物联网开发板 STC89C52RC实验板支持连云​item.taobao.com
b1969614a71f8369b3e3d565308810ab.png

一叶孤沙出品:一沙一世界,一叶一菩提

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在JavaScript中以Hours24:Minutes:Seconds格式获取当前时间

使用JavaScript获取当前时间 (Getting current time in JavaScript) To get the current time in JavaScript, we need to use three library functions of Date class, 要获取JavaScript中的当前时间 &#xff0c;我们需要使用Date类的三个库函数&#xff0c; Date getHours(…

联想服务器如何u盘启动盘装系统,联想如何设置u盘启动

相信有不少网友都在使用联想电脑&#xff0c;它的性价比一直受到不少消费者的青睐。接下来教大家联想如何设置u盘启动&#xff0c;希望大家能喜欢。联想如何设置u盘启动步骤阅读1、按快捷键弹出启动选项&#xff0c;联想笔记本一般是F12或者F22、按TAB键切换App Menu菜单&#…

c语言负数左移右移_C语言 位运算符的运算规则

位运算是指按照二进制进行的运算&#xff0c;在C语言中&#xff0c;提供了6种的位运算符&#xff0c;他们分别是按位与&#xff08;&&#xff09;&#xff0c;按位或&#xff08;|&#xff09;&#xff0c;按位异或&#xff08;^&#xff09;&#xff0c;按位取反&#xff…

Android 带着用户名的SharedPreferences

/*** 设置当前用户的签到信息* account&info;account&info** param context* param sign* author jrjin* time 2016-1-5 下午2:27:47*/public static void setSignInfo(Context context, String sign) {String account getAccount(context);if (TextUtils.isEmpty(acc…

python数据分析与可视化-Python数据分析与数据可视化

数据分析、数据挖掘与数据可视化是一个古老的话题&#xff0c;并非什么新生事物。近些年来&#xff0c;借助于计算机软硬件的飞速发展&#xff0c;数据分析、挖掘、可视化相关理论和技术在各领域的应用更是有了质的飞跃。饭店选址、公交路线与站牌规划、物流规划、春运加班车次…

c语言 函数的参数传递示例_C-用户定义的函数示例,没有参数,没有返回类型...

c语言 函数的参数传递示例Define a function with no argument and no return type in C language. 用C语言定义一个没有参数且没有返回类型的函数。 In the program, we have function named fun1 which has no argument and no return type (void is the return type - that…

的标题形状工具在哪里_自媒体如何搜集素材?标题、文章、图片素材收集3大途径!...

文&#xff1a;老彭自媒体大家好&#xff0c;我是老彭&#xff0c;很多人觉得做自媒体写内容很难&#xff0c;每天想写点东西又感觉无从下手&#xff0c;那么到底是什么原因造成的呢&#xff1f;其实最主要的原因还是自己平时看的太少&#xff0c;和素材储备不足所导致的。大家…

Python中的条件语句(if,if ... else,if ... elif ... else和嵌套的if)

Conditional statements decide the flow of program execution. In programming whenever we need to make execute any special blocks based on the decision then we use the conditional statements. 条件语句决定程序执行的流程。 在编程中&#xff0c;只要我们需要根据决…

控制台应用和空项目有什么区别_在公司做的项目和自己在学校做的有什么区别?...

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家还是学生的时候有没有这个问题:公司做的项目和自己在学校练手的项目有多大的区别。我以前在学校跟着视频做一些项目练手,总感觉公司做的东西会要难很多,不知…

小样本点云深度学习库_合成鲁棒的对抗样本来欺骗深度学习分类器

本期一诺sec关注深度学习系统安全问题&#xff0c;推荐一篇来自ICML 2018会议论文Synthesizing Robust Adversarial Examples。论文链接http://proceedings.mlr.press/v80/athalye18b.html。深度模型对于对抗样本具有高度的脆弱性&#xff0c;这已经是得到大家印证的事实。自从…

stl字符串去除空格_在列表中推送字符并在C ++ STL中将它们打印为空格

stl字符串去除空格In this example, we are declaring a character list and pushing the characters from A to Z using a for loop and push_back() function then printing the value of the vector separated by space. 在此示例中&#xff0c;我们声明了一个字符列表&…

java数据类型_JAVA基础篇(数据类型)

首先请大家想想这几个问题&#xff1a;1.java数据类型是什么&#xff1f;2.Java数据类型有什么用&#xff1f;上一节&#xff08;JAVA基础篇&#xff08;函数&#xff09;&#xff09;有个add函数&#xff0c;里面有两个int类型&#xff0c;int类型就是整数的意思&#xff0c;这…

SharePoint CAML In Action——Part I

阅读目录 CAML In Action接下来在SharePoint中&#xff0c;我们经常要对List进行操作&#xff0c;比如要从List中取出相应的ListItem&#xff0c;利用CAML是个好办法。在没了解CAML之前&#xff0c;我是这样取数据的&#xff1a; MyList.Items.Cast<SPListItem>().ToList…

地图统计_博客 城市访问量统计并且通过Echarts+百度地图展示

本篇讲解一下 如何在Vue 中使用 Echarts 百度地图 统计 博客访问量 并且通过QQWry 解析 ip 地址 利用Echarts 展示出来效果图如下&#xff1a;1.纯真Ip地址库 QQWry这是我在github上找的 java版本的 解析 qqwry的1.1 maven 引入 qqwry<dependency> <grou…

修改console缓存大小_更改缓存的行大小将如何影响其他参数?

修改console缓存大小Prerequisites: Memory mapping and its types 先决条件&#xff1a; 内存映射及其类型 While designing a cache system of a PC, the size of cache lines is an important parameter. 在设计PC的缓存系统时&#xff0c;缓存行的大小是重要的参数。 In …

win10必须禁用的服务_Win10系统中这3个无用的设置,奉劝你还是早点关闭吧!

在PC端所有的操作系统中&#xff0c;占据市场份额最大的莫过于微软发布的windows系统。其中最经典的莫过于XP和win7&#xff0c;无奈微软已经停更了这两个操作系统&#xff0c;所以为了电脑的安全着想&#xff0c;很多人都直接升级更新至最新版的win10系统&#xff0c;目前win1…

Android 布局练习

要求&#xff1a;使用多种布局完成以下练习。 1.要求效果 完成效果 代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <…

有危害吗_涂料漆对身体有害吗?涂料漆危害怎么预防

目前很多人都会通过涂料漆来进行墙面装饰&#xff0c;用它来对墙面进行装饰是可以马上的改善墙壁的状态&#xff0c;但有些人也担心它会对身体有害&#xff0c;涂料漆对身体有害吗?由于担心涂料漆会给健康带来危害&#xff0c;很多人都想要预防&#xff0c;那涂料漆危害怎么预…

小写大写转换_小写到大写转换器JavaScript工具| 网络应用项目

小写大写转换Hi! At times, beginners always find it hard getting the application of the theory they learn in programming or a particular language. 嗨&#xff01; 有时&#xff0c;初学者总是很​​难在编程或特定语言中应用他们学到的理论。 In this article, well…

inventor扳手制作视频_弱电工程视频监控系统施工方案,可作施工组织设计

1 工程概况 1.1 编制《工程总体实施方案》 主要包括&#xff1a;结合高清监控系统设计方案作配套的深化设计&#xff0c;编制高清监控系统实施计划&#xff0c;并提出相关的配合要求。根据总体方案&#xff0c;对高清监控系统工程的技术设计作必要的补充。并提出相关的实施技术…