lcd刷新慢_LCD1602刷新率很慢的问题

#include"lcd.h"

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

* 函 数 名         : Lcd1602_Delay1ms

* 函数功能                   : 延时函数,延时1ms

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

void Lcd1602_Delay1ms(uint c)   //误差 0us

{

uchar a,b;

for (; c>0; c--)

{

for (b=199;b>0;b--)

{

for(a=1;a>0;a--);

}

}

}

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

* 函 数 名         : LcdWriteCom

* 函数功能                   : 向LCD写入一个字节的命令

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

#ifndef         LCD1602_4PINS         //当没有定义这个LCD1602_4PINS时

void LcdWriteCom(uchar com)          //写入命令

{

LCD1602_E = 0;     //使能

LCD1602_RS = 0;           //选择发送命令

LCD1602_RW = 0;           //选择写入

LCD1602_DATAPINS = com;     //放入命令

Lcd1602_Delay1ms(1);                //等待数据稳定

LCD1602_E = 1;                  //写入时序

Lcd1602_Delay1ms(5);          //保持时间

LCD1602_E = 0;

}

#else

void LcdWriteCom(uchar com)          //写入命令

{

LCD1602_E = 0;         //使能清零

LCD1602_RS = 0;         //选择写入命令

LCD1602_RW = 0;         //选择写入

LCD1602_DATAPINS = com;        //由于4位的接线是接到P0口的高四位,所以传送高四位不用改

Lcd1602_Delay1ms(1);

LCD1602_E = 1;         //写入时序

Lcd1602_Delay1ms(5);

LCD1602_E = 0;

Lcd1602_Delay1ms(1);

LCD1602_DATAPINS = com << 4; //发送低四位

Lcd1602_Delay1ms(1);

LCD1602_E = 1;         //写入时序

Lcd1602_Delay1ms(5);

LCD1602_E = 0;

}

#endif

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

* 函 数 名         : LcdWriteData

* 函数功能                   : 向LCD写入一个字节的数据

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

#ifndef         LCD1602_4PINS

void LcdWriteData(uchar dat)                        //写入数据

{

LCD1602_E = 0;        //使能清零

LCD1602_RS = 1;        //选择输入数据

LCD1602_RW = 0;        //选择写入

LCD1602_DATAPINS = dat; //写入数据

Lcd1602_Delay1ms(1);

LCD1602_E = 1;   //写入时序

Lcd1602_Delay1ms(5);   //保持时间

LCD1602_E = 0;

}

#else

void LcdWriteData(uchar dat)                        //写入数据

{

LCD1602_E = 0;          //使能清零

LCD1602_RS = 1;          //选择写入数据

LCD1602_RW = 0;          //选择写入

LCD1602_DATAPINS = dat;        //由于4位的接线是接到P0口的高四位,所以传送高四位不用改

Lcd1602_Delay1ms(1);

LCD1602_E = 1;          //写入时序

Lcd1602_Delay1ms(5);

LCD1602_E = 0;

LCD1602_DATAPINS = dat << 4; //写入低四位

Lcd1602_Delay1ms(1);

LCD1602_E = 1;          //写入时序

Lcd1602_Delay1ms(5);

LCD1602_E = 0;

}

#endif

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

* 函 数 名       : LcdInit()

* 函数功能                 : 初始化LCD屏

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

#ifndef                LCD1602_4PINS

void LcdInit()                                                  //LCD初始化子程序

{

LcdWriteCom(0x38);  //开显示

LcdWriteCom(0x0c);  //开显示不显示光标

LcdWriteCom(0x06);  //写一个指针加1

LcdWriteCom(0x01);  //清屏

LcdWriteCom(0x80);  //设置数据指针起点

}

#else

void LcdInit()                                                  //LCD初始化子程序

{

LcdWriteCom(0x32);         //将8位总线转为4位总线

LcdWriteCom(0x28);         //在四位线下的初始化

LcdWriteCom(0x0c);  //开显示不显示光标

LcdWriteCom(0x06);  //写一个指针加1

LcdWriteCom(0x01);  //清屏

LcdWriteCom(0x80);  //设置数据指针起点

}

#endif

/*------------------------------------------------

选择写入位置

------------------------------------------------*/

void SelectPosition(unsigned char x,unsigned char y)

{

if (x == 0)

{

LcdWriteCom(0x80 + y);     //表示第一行

}

else

{

LcdWriteCom(0xC0 + y);      //表示第二行

}

}

/*------------------------------------------------

写入字符串函数

------------------------------------------------*/

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)

{

SelectPosition(x,y) ;

while (*s)                                   //*s表示s是一个指针。*s表示s指针指向的相应变量的值

{

LcdWriteData( *s);

s ++;

}

}

//========================================================================

// 函数: void LCD_Write_Char(uchar x,uchar y,uint s,uchar l)

// 应用: LCD_Write_Char(0,1,366,4) ;

// 描述: 在第0行第一个字节位置显示366的后4位,显示结果为 0366

// 参数: x:行,y:列,s:要显示的字,l:显示的位数

//========================================================================

void LCD_Write_Char(uchar x,uchar y,uint s,uchar l)

{

SelectPosition(x,y) ;

if(l>=5)

LcdWriteData(0x30+s/10000%10);        //万位

if(l>=4)

LcdWriteData(0x30+s/1000%10);                //千位

if(l>=3)

LcdWriteData(0x30+s/100%10);                //百位

if(l>=2)

LcdWriteData(0x30+s/10%10);                        //十位

if(l>=1)

LcdWriteData(0x30+s%10);                //个位

}

/*显示函数1*/

void Display1(wendu,yanwu,pm25,jiaquan) //温度,烟雾,PM2.5,甲醛

{

//时时温度

LCD_Write_Char(0,6,wendu/10,2);

LcdWriteData('.');

LCD_Write_Char(0,9,wendu%10,1);

//时时烟雾

LCD_Write_Char(0,13,yanwu,3);

//时时pm25

LCD_Write_Char(1,6,pm25,3);

//时时甲醛

LCD_Write_Char(1,13,jiaquan,3);

}

/*显示函数2*/

void Display2(yushe_wendu,yushe_yanwu,yushe_pm25,yushe_jiaquan)

{

//显示预设温度

LCD_Write_Char(0,6,yushe_wendu,2);

//显示预设烟雾

LCD_Write_Char(0,13,yushe_yanwu,3);

//显示预设PM2.5

LCD_Write_Char(1,6,yushe_pm25,3);

//显示预设甲醛

LCD_Write_Char(1,13,yushe_jiaquan,3);

}

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

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

相关文章

【朝夕技术专刊】Core3.1WebApi_Filter-Authorize详解

欢迎大家阅读《朝夕Net社区技术专刊》第6期我们致力于.NetCore的推广和落地&#xff0c;为更好的帮助大家学习&#xff0c;方便分享干货&#xff0c;特创此刊&#xff01;很高兴你能成为忠实读者&#xff0c;文末福利不要错过哦&#xff01;前言&#xff1a;本部分文档将详细给…

2019年第十届蓝桥杯国赛B组试题D-求值-枚举

【问题描述】 学习了约数后&#xff0c;小明对于约数很好奇&#xff0c;他发现&#xff0c;给定一个正整数 t&#xff0c;总是可以找到含有 t 个约数的整数。 小明对于含有 t 个约数的最小数非常感兴趣&#xff0c;并把它定义为 St 。 例如 S1 1, S2 2, S3 4, S4 6&#…

pythonimport是拷贝_02Python学习笔记之二.一【import、==和is、深浅拷贝】2019-08-17

章节号内容1图片格式(png)宽度大于620px,保持高宽第1章节  import模块1-1 import模块—sys.path↓import导入模块的搜索路径&#xff1a;In [1]: import sysIn [2]: sys.pathOut[2]:#第一个为当前路径[,/usr/lib/python36.zip,/usr/lib/python3.6,/usr/lib/python3.6/lib-dyn…

以正确的方式下载和配置 ASP.NET Core 官方源码

我们可以在Github上面直接查看ASP.NETCore 3.x的源代码&#xff0c;但是我们也可以把源代码下载下来进行查看。而下载源代码进行查看有很多好处&#xff1a;任意的导航源代码内置了一个示例项目直接调试源代码下载源代码想下载并配置好源码&#xff0c;你需要&#xff1a;最新版…

2017年第八届蓝桥杯国赛B组试题A-36进制-进制转换

【问题描述】 对于16进制&#xff0c;我们使用字母A-F来表示10及以上的数字。 如法炮制&#xff0c;一直用到字母Z&#xff0c;就可以表示36进制。 36进制中&#xff0c;A表示10&#xff0c;Z表示35&#xff0c;AA表示370 你能算出 MANY 表示的数字用10进制表示是多少吗?【答…

h5应用 vue 钉钉_uniapp开发一个小视频应用(一)

“uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;是一种终极的跨平台解决方案&#xff0c;这里的平台&#xff0c;主要指的是App平台(android、ios)、小程序平台、H5平台。开发者编写一套代码&#xff0c;可发布到iOS、Android、H5、以及各种小程序(微信/支付宝…

Blazor入门

&#xff2e;&#xff2f;&#xff37;现在行动&#xff01;Blazor是一个基于C#&#xff0c; Razor和 HTML的新的Web UI框架。它通过WebAssembly运行在浏览器中。有利于使用C#而不是JavaScript构建交互式的Web UI。这篇文章演示了如何使用Blazor构建SPA应用。Blazor简化了可在任…

第七届蓝桥杯(国赛)——随意组合-dfs,next_permutation

【问题描述】 小明被绑架到X星球的巫师W那里。 其时&#xff0c;W正在玩弄两组数据 (2 3 5 8) 和 (1 4 6 7) 他命令小明从一组数据中分别取数与另一组中的数配对&#xff0c;共配成4对&#xff08;组中的每个数必被用到&#xff09;。 小明的配法是&#xff1a;{(8,7),(5,6),(…

方框加对勾怎么输入_对号“√”怎么输入到方框“□”-空格对号

对号”√”怎么输入到方框”□”内啊&#xff1f;&#xff1f;是这样的&#xff0c;我在做一个表格例如&#xff1a;1&#xff0c;是否完成。□2&#xff0c;是否已经准备好资料。□如果“是”就在方框内打对号“√”&#xff0c;不是就打错号“X”但是怎么打在方框内阿&#x…

C#桌面开发的未来WebWindow

WebWindowWebWindow是跨平台的库。Web Window的当前实验实现可在以下平台上运行&#xff1a;Windows – 需要基于Chromium的EdgeLinux – 使用WebKitMac – 需要Safari源码https://github.com/SteveSandersonMS/WebWindow.gitZeje Fork的分支&#xff1a;https://github.com/ze…

第七届蓝桥杯决赛真题 - 凑平方数-全排列+dfs+set去重

题目&#xff1a; 凑平方数 把0~9这10个数字&#xff0c;分成多个组&#xff0c;每个组恰好是一个平方数&#xff0c;这是能够 办到的。比如&#xff1a;0, 36, 5948721再比如&#xff1a; 1098524736 1, 25, 6390784 0, 4, 289, 15376 等等…注意&#xff0c;0可以作为独立的…

计算标准差分母是n还是n-1?

概述 提问&#xff1a;在我们计算某些数据标准差&#xff08;或者方差&#xff09;的时候&#xff0c;会发现有些公式分母是n&#xff0c;而有些公式的分母却是&#xff08;n-1&#xff09;&#xff0c;那么到底哪个公式才是正确的呢&#xff1f; 答案&#xff1a; 如果是算…

三调 图斑地类面积_三调对于最小上图图斑面积的要求是:

【单选题】设二维数组 A[1...m,1...n] (即 m 行 n 列)按行存储在 B[1...m*n] 中,则二维数组元素 A[i,j] 在一位数组 B 中的下标为( )【单选题】二维数组 a[1..N , 1..N] 可以按行存储或按列存储。对于数组元素 a[i,j] ( 1<i,j<N ),当( )时,在按行和按列两种存储方式下,其…

C#小游戏—钢铁侠VS太空侵略者

身为漫威迷&#xff0c;最近又把《钢铁侠》和《复仇者联盟》系列又重温了一遍&#xff0c;真的是印证了那句话&#xff1a;“读书百遍&#xff0c;其意自现”。看电影一个道理&#xff0c;每看一遍&#xff0c;都有不懂的感受~ 不知道大伙是不是也有同样的感受&#xff0c;对于…

受检异常 非受检异常_这样设计 Java 异常更优雅,赶紧学

来源&#xff1a;Lrwinlrwinx.github.io/2016/04/28/如何优雅的设计java异常/导语异常处理是程序开发中必不可少操作之一&#xff0c;但如何正确优雅的对异常进行处理确是一门学问&#xff0c;笔者根据自己的开发经验来谈一谈我是如何对异常进行处理的。由于本文只作一些经验之…

[蓝桥杯][2018年第九届真题]调手表-bfs

小明买了块高端大气上档次的电子手表&#xff0c;他正准备调时间呢。在 M78 星云&#xff0c;时间的计量单位和地球上不同&#xff0c;M78 星云的一个小时有 n 分钟。大家都知道&#xff0c;手表只有一个按钮可以把当前的数加一。在调分钟的时候&#xff0c;如果当前显示的数是…

.NET Core开发实战(第23课:静态文件中间件:前后端分离开发合并部署骚操作)--学习笔记(上)...

23 | 静态文件中间件&#xff1a;前后端分离开发合并部署骚操作我们先来看一下静态文件中间件有哪些能力1、支持指定相对路径2、支持目录的浏览3、支持设置默认文档4、支持多目录映射源码链接&#xff1a;https://github.com/witskeeper/geektime/tree/master/samples/StaticFi…

src获取同级目录中的图片_一个简单的Python爬虫实例:百度贴吧页面下载图片

本文主要实现一个简单的爬虫&#xff0c;目的是从一个百度贴吧页面下载图片。1. 概述本文主要实现一个简单的爬虫&#xff0c;目的是从一个百度贴吧页面下载图片。下载图片的步骤如下&#xff1a;获取网页html文本内容&#xff1b;分析html中图片的html标签特征&#xff0c;用正…

C++并查集的实现

编号代表每一个元素。数组par表示的是父亲的编号&#xff0c;也就是前驱。par[x] x时&#xff0c;x是所在的树的根。 代码如下&#xff1a; #include <iostream> using namespace std; const int N 100010; int par[N], ranks[N];void init(int n) { //初始化n个元素…

十问十答 Apache 许可证

Apache 许可证由 Apache Software Foundation&#xff08;ASF&#xff09;发行&#xff0c;是一个由强大社区支持的流行的被广泛部署的许可证。Apache 许可证允许你自由地使用、修改和分发任何 Apache 许可的产品&#xff0c;前提是遵循 Apache 许可的条款。01Apache 许可证的条…