网站建设报价模板下载建设银行官方网站app下载

web/2025/9/27 17:51:09/文章来源:
网站建设报价模板下载,建设银行官方网站app下载,建做网站,免费开源分类信息系统内容 在LCD1602液晶上显示字符信息#xff1b; LCD1602介绍 简介 1602液晶也叫1602字符型液晶#xff0c;它能显示2行字符信息#xff0c;每行又能显示16个字符#xff1b; 它是一种专门用来显示字母、数字、符号的点阵型液晶模块#xff1b; 它是由若干个5x7或者5x…内容 在LCD1602液晶上显示字符信息 LCD1602介绍 简介 1602液晶也叫1602字符型液晶它能显示2行字符信息每行又能显示16个字符 它是一种专门用来显示字母、数字、符号的点阵型液晶模块 它是由若干个5x7或者5x10的点阵字符位组成每个点阵字符位都可以用显示一个字符每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用正因为如此所以它不能很好的显示图片 管脚说明 LCD1602有16个管脚孔从左至右管脚编号顺序是1-16 其功能定义如下所示 部分管脚说明 3脚VL液晶显示偏压信号用于调整LCD1602的显示对比度一般会外接电位器用以调整偏压信号注意此脚电压为0时可以得到最强的对比度4脚RS数据/命令选择端当此脚为高电平时可以对1602进行数据字节的传输操作而低电平时则是进行命令字节的传输操作命令字节即是用来对LCD1602的一些工作方式作设置的字节数据字节即使用以在1602上显示的字节LCD1602的数据是8位的5脚R/W读写选择端当此脚为高电平可对LCD1602进行读数据操作反之进行写数据操作6脚E使能信号其实是LCD1602的数据控制时钟信号利用该信号的上升沿实现对LCD1602的数据传输7~14脚8位并行数据口而51单片机一组IO也是8位使得对LCD1602的数据读写大为方便 DDRAM说明 在LCD1602内部含有80个字节的DDRAM它是用来寄存显示字符的 其地址和屏幕的对应关系如下表 从上图可知不是所有的地址都可以直接用来显示字符数据只有第一行中的00-0F第二行中的40-4F才能显示其他地址只能用于存储 要显示字符时要先输入显示字符地址也就是告诉模块在哪里显示字符而且写入显示地址时要求最高位D7恒定为高电平1例如第二行第一个字符的地址是40H所以要写入的数据应该是01000000B(40H)10000000B(80H)11000000B(C0H) 在1602中我们只用前16个地址就行了第二行也一样用前16个地址 常用指令 在使用LCD1602时我们需要掌握一些常用的指令这些指令对于LCD1602初始化是必须的 清屏指令 清除液晶显示器即将DDRAM的内容全部填入空白的ASCII码20H光标归位即将光标撤回液晶显示屏的左上方将地址计数器(AC)的值设为0 模式设置指令 设定每次写入1位数据后光标的移位方向并且设定每次写入的一个字符是否移动I/D0 写入新数据后光标左移1 写入新数据后光标右移S0 写入新数据后显示屏不移动1 写入新数据后显示屏整体右移1个字符 显示开关控制指令 控制显示器开/关、光标显示/关闭以及光标是否闪烁D0 显示功能关1 显示功能开C0 无光标1 有光标B0 光标闪烁1 光标不闪烁 功能设定指令 设定数据总线位数、显示的行数及字型DL0 数据总线为4位1 数据总线为8位N0 显示1行1 显示2行F0 5×7点阵/每字符1 5×10点阵/每字符 使用方法 要使用LCD1602首先需要对其初始化即通过写入一些特定的指令实现 然后选择要在LCD1602的哪个位置显示并将所要显示的数据发送到LCD的DDRAM 使用LCD1602通常都是用于写数据进去很少使用读功能 LCD1602操作步骤如下所示 1 初始化 2 写命令RSL设置显示坐标 3 写数据RSH工作时序 LCD1602一般不需要读出它的数据的状态或者数据本身 所以只需要看两个写时序 当要写指令字设置LCD1602的工作方式时把RS置为低电平RW置为低电平然后将数据送到数据口D0~D7最后E引脚一个高脉冲将数据写入当要写入数据字在LCD1602上实现显示时把RS置为高电平RW置为低电平然后将数据送到数据口D0~D7最后E引脚一个高脉冲将数据写入写指令和写数据差别仅仅在于 RS 的电平不一样而已 LCD1602时序图 从上图可以看到以上给的时间参数全部是ns级别的而51单片机的机器周期是1us指令周期是2-4个机器周期所以即便在程序里不加延时程序也可以很好的配合LCD1602的时序要求 当要写命令字节的时候时间由左往右RS变为低电平R/W变为低电平注意看是RS的状态先变化完成 然后这时DB0~DB7上数据进入有效阶段接着E引脚有一个整脉冲的跳变接着要维持时间最小值为tpw400ns的E脉冲宽度 然后E引脚负跳变RS电平变化R/W电平变化这样便是一个完整的LCD1602写命令的时序 注意这里介绍的是8位LCD1602现在某些公司为简化引脚数使用4位LCD1602使用4位LCD1602时应该多看手册找到不同点对原有程序加以修改 原理图 从线路图中可知LCD1602的8位数据口D0-D7与单片机的P0.0-P0.7管脚连接LCD1602的RS、WR、E脚与单片机的P2.6、P2.5、P2.7管脚连接 RJ1是一个电位器用来调节LCD1602对比度即显示亮度 思路 根据lcd1602的写指令和数据的时序编写相应程序 根据lcd1602的指令格式编写必要的初始化、清屏和显示程序 编码 User main.c /** Description: 使LCD1602上显示字符信息*/ #include public.h #include lcd1602.hvoid main() {lcd1602_init(); // LCD1602初始化lcd1602_show_string(0, 0, Hello World!); // 第一行显示lcd1602_show_string(0, 1, 0123456789); // 第二行显示while (1){} }Public public.h #ifndef _public_H #define _public_H#include reg52.htypedef unsigned int u16; // 对系统默认数据类型进行重定义 typedef unsigned char u8;void delay_10us(u16 ten_us); void delay_ms(u16 ms);#endifpublic.c #include public.h/*** description: 延时函数ten_us1时大约延时10us* param {u16} ten_us 延时倍数* return {*}*/ void delay_10us(u16 ten_us) {while (ten_us--); }/**ms延时函数ms1时大约延时1ms**** param {u16} ms 延时倍数* return {*}*/ void delay_ms(u16 ms) {u16 i, j;for (i ms; i 0; i--)for (j 110; j 0; j--); }App/lcd1602 lcd1602.h #ifndef _lcd1602_H #define _lcd1602_H#include public.h// LCD1602数据口4位和8位定义若为1则为LCD1602四位数据口驱动反之为8位 #define LCD1602_4OR8_DATA_INTERFACE 0 // 默认使用8位数据口LCD1602// 管脚定义 sbit LCD1602_RS P2 ^ 6; // 数据命令选择 sbit LCD1602_RW P2 ^ 5; // 读写选择 sbit LCD1602_E P2 ^ 7; // 使能信号 #define LCD1602_DATAPORT P0 // 宏定义LCD1602数据端口// 函数声明 void lcd1602_init(void); void lcd1602_clear(void); void lcd1602_show_string(u8 x, u8 y, u8 *str);#endiflcd1602.c #include lcd1602.h#if (LCD1602_4OR8_DATA_INTERFACE 0) // 8位LCD /*** description: LCD1602写命令* param {u8} cmd 指令* return {*}*/ void lcd1602_write_cmd(u8 cmd) {LCD1602_RS 0; // 选择命令LCD1602_RW 0; // 选择写LCD1602_E 0;LCD1602_DATAPORT cmd; // 准备命令delay_ms(1);LCD1602_E 1; // 使能脚E先上升沿写入delay_ms(1);LCD1602_E 0; // 使能脚E后负跳变完成写入 } #else // 4位LCD void lcd1602_write_cmd(u8 cmd) {LCD1602_RS 0; // 选择命令LCD1602_RW 0; // 选择写LCD1602_E 0;LCD1602_DATAPORT cmd; // 准备命令delay_ms(1);LCD1602_E 1; // 使能脚E先上升沿写入delay_ms(1);LCD1602_E 0; // 使能脚E后负跳变完成写入LCD1602_DATAPORT cmd 4; // 准备命令delay_ms(1);LCD1602_E 1; // 使能脚E先上升沿写入delay_ms(1);LCD1602_E 0; // 使能脚E后负跳变完成写入 } #endif#if (LCD1602_4OR8_DATA_INTERFACE 0) // 8位LCD /*** description: LCD1602写数据* param {u8} dat 数据* return {*}*/ void lcd1602_write_data(u8 dat) {LCD1602_RS 1; // 选择数据LCD1602_RW 0; // 选择写LCD1602_E 0;LCD1602_DATAPORT dat; // 准备数据delay_ms(1);LCD1602_E 1; // 使能脚E先上升沿写入delay_ms(1);LCD1602_E 0; // 使能脚E后负跳变完成写入 } #else void lcd1602_write_data(u8 dat) {LCD1602_RS 1; // 选择数据LCD1602_RW 0; // 选择写LCD1602_E 0;LCD1602_DATAPORT dat; // 准备数据delay_ms(1);LCD1602_E 1; // 使能脚E先上升沿写入delay_ms(1);LCD1602_E 0; // 使能脚E后负跳变完成写入LCD1602_DATAPORT dat 4; // 准备数据delay_ms(1);LCD1602_E 1; // 使能脚E先上升沿写入delay_ms(1);LCD1602_E 0; // 使能脚E后负跳变完成写入 } #endif#if (LCD1602_4OR8_DATA_INTERFACE 0) // 8位LCD /*** description: LCD1602初始化* return {*}*/ void lcd1602_init(void) {lcd1602_write_cmd(0x38); // 数据总线8位显示2行5*7点阵/字符lcd1602_write_cmd(0x0c); // 显示功能开无光标光标闪烁lcd1602_write_cmd(0x06); // 写入新数据后光标右移显示屏不移动lcd1602_write_cmd(0x01); // 清屏 } #else void lcd1602_init(void) {lcd1602_write_cmd(0x28); // 数据总线4位显示2行5*7点阵/字符lcd1602_write_cmd(0x0c); // 显示功能开无光标光标闪烁lcd1602_write_cmd(0x06); // 写入新数据后光标右移显示屏不移动lcd1602_write_cmd(0x01); // 清屏 } #endif/*** description: LCD1602清屏* return {*}*/ void lcd1602_clear(void) {lcd1602_write_cmd(0x01); }/*** description: LCD1602显示字符* param {u8} x 坐标* param {u8} y 坐标* param {u8} *str 要显示的字符串* return {*}*/ void lcd1602_show_string(u8 x, u8 y, u8 *str) {u8 i 0;if (y 1 || x 15)return; // 行列参数不对则强制退出if (y 1) // 第1行显示{while (*str ! \0) // 字符串是以\0结尾只要前面有内容就显示{if (i 16 - x) // 如果字符长度超过第一行显示范围则在第二行继续显示{lcd1602_write_cmd(0x80 i x); // 第一行显示地址设置}else{lcd1602_write_cmd(0x40 0x80 i x - 16); // 第二行显示地址设置}lcd1602_write_data(*str); // 显示内容str; // 指针递增i;}}else // 第2行显示{while (*str ! \0){if (i 16 - x) // 如果字符长度超过第二行显示范围则在第一行继续显示{lcd1602_write_cmd(0x80 0x40 i x);}else{lcd1602_write_cmd(0x80 i x - 16);}lcd1602_write_data(*str);str;i;}} }编译和结果 按F7编译无错误生成.hex文件使用pz-isp将hex文件下载到单片机 结果lcd液晶屏上正确显示内容

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

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

相关文章

盘州电子商务网站建设兰州今天发生的重大新闻

哈哈,不同版本字体的问题。运行下边的命令:bdclose all; set_param(0,CharacterEncoding, ISO-8859-1)如果不行再换一下字体。可以参照一下命令的介绍,能够使用联机帮助,这是很关键的。另外,不同的版本还会出现模型问题…

账号权重查询关键词优化公司排名

好久没有写博客了,这次带着TigerDLNA for ios 跟大家见面 什么都不说先上图 1.优点 优点由于libTigerDLNA使用uiview封装,所以大家可以很方便的集成到自己的项目中。由于集成了tlplayer当然也可以只是作为一个播放器来使用,支持各种网络协议。…

定制型网站建设服务天津平台网站建设费用

题目描述:将一句话的单词进行倒置,标点不倒置。比如 “I like beijing.”,经过处理后变为:“beijing. like I”。 文章目录 原题目题目描述:输入描述:输出描述:题目链接: 整体思路分…

网站后台打不开了怎么办dede可以做商城网站吗

1.有时你希望运行一个程序时再传递给它消息,这要靠传递命令行参数给main()函数实现 2.选中文件右键找到如图选项并打开 3.在文件地址下输入cmd空格符号,再按回车调出命令窗口 4.如图一步步进行编译,在向其传入参数&…

网站页眉尺寸网站开发的架构

1. ArrayList 与 数组的区别 ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。 …

哪里建网站最好博纳网络科技有限公司

建议的Java记录的工作仍在继续。 Brian Goetz 昨天在OpenJDK amber-spec-experts邮件列表上启动了三个新线程,其中两个专注于Java Records。 这两个面向记录的线程之一讨论了Java记录是否应支持varargs 。 另一个线程为提议的类java.lang.Record提供了初始草案规范&…

济南一哥网站建设公司网页升级紧急大通知拿笔记本记好

大家好,给大家分享一下用python编写一个小程序,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1、python可以写手机应用程序吗? 我想有人曲解意思了,人家说用python开发渣蔽一个手机app,不是…

信息服务平台网站名称企业所得税税前扣除项目有哪些

164. 最大间距 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 示例 1: 输入: [3,6,9,1] 输出: 3 解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差…

网站建设贴吧wordpress基础教程

2000年微软公司收购同名公司后,Visio成为微软公司的产品。Microsoft Visio是Windows 操作系统下运行的流程图软件,它现在是Microsoft Office软件的一个部分。Visio可以制作的图表范围十分广泛,有些人利用Visio的强大绘图功能绘制地图、企业标…

织梦5.7cms照明灯具能源电子产品企业网站源码企业模板带后台餐厅网站源码

1.使用Spring Initializer快速创建Spring Boot项目 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目; 选择我们需要的模块; 向导会联网创建Spring Boot项目; 默认生成的Spring Boot项目; 主程序已经生成好了&#…

网站建设验收书做资讯网站

目录 1 前言2 本地代码上传2.1 命令行方法2.2 图形界面法2.3 结果 1 前言 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub 。开发者常常将github作为代码管理平台,方便代码存储、版本…

深圳品牌网站策划seo广州工作好吗

前言 作为一名IT从业人员,无论你是开发,测试还是运维,在面试的过程中,我们经常会被数据库,数据库中最经常被问到就是MySql。当面试官问MySql的时候经常会问道一个问题,”MySQL中有哪些锁?“当我…

dedecms妇科医院wap网站模板 v1.0在做网站编代码网页导航条中的文字出现在导航条的下方怎莫解决

上周更新完了之前vue3的shopping项目,接下来,将会开启一个新的项目,效果是类似于移动端的一个伙伴匹配项目,今天这篇文章从需求分析到架构设计再到项目初始化,基本框架搭建几个部分来为大家详细介绍。 从这个项目开始…

成都 php 网站恋家网邯郸房产

解决Android studio 2.3升级到Android studio 3.0 后apt报错问题发布时间:2020-09-16 19:59:42来源:脚本之家阅读:62作者:哈特中尉1.现象描述原来项目在Android studio 2.3一切正常,升级3.0之后报如下错误:…

做网站代码保密协议欧莱雅采用了哪些网络营销方式

起因 最近要搞groovy介绍,准备做成一系列的东西,参考github上的计划。https://github.com/javahub/groovy_hello spock没有找到翻译文档,动手把最重要的一章primer翻译下,想起了c primer。就当作翻译练习了。 目前项目大使用spock…

沈阳网站建设哪里好网站效果图用什么做

工欲善其事,必先利其器。Chrome 可能是前端开发中使用最多的浏览器。在日常开发中,下列几款 Chrome 扩展也许能让你的开发工作事半功倍 🚀 Vue.js devtools ⚙️ vue 官方专为 vue 应用开发的调试工具。 通过使用它,你可以快速查看…

效果图网站推荐大全可以做天猫代码的网站

1. 简介 Vue 在插入、更新或移除 DOM 时&#xff0c;提供多种不同方式的过渡效果&#xff0c;并提供 transition 组件来实现动画效果&#xff08;用 transition 组件将需执行过渡效果的元素包裹&#xff09; 语法&#xff1a;<transition name””>元素或组件&#xff…

网站开发需要大学吗中企动力网站建设 长春

Linux怎么读Linux是一种操作系统&#xff0c;不过很多朋友都不知道Linux怎么读?Linux正确读法 “哩呐克斯”&#xff0c;音标&#xff1a;[li:nэks] 重音在“哩”上。由于大多数的电脑都是安装Windows&#xff0c;其实也可以安装Linux&#xff0c;不过大家都习惯了Windwos&am…

太原模板建站定制微信可以上网

java插入排序Java程序插入示例的排序。 显示了示例仿真以及时间复杂度。 插入排序是一种简单的排序算法&#xff0c;可以一次构建一个最终的排序数组&#xff08;或列表&#xff09;。 它比冒泡排序有效得多&#xff0c;并且在大型列表上的效率比快速排序 &#xff0c;堆排序或…

网站源码推荐伊犁网站制作

一、各种税的计算方式增值税1、一般纳税人应纳税额销项税额—进项税销项税额销售额税率组成计税价格成本(1成本利润率)组成计税价格成本(1成本利润率)(1-消费税税率)2、进口货物应纳税额组成计税价格税率组成计税价格关税完税价格关税(消费税)3、小规模纳税人应纳税额销售额征收…