基于C8051F020单片机的液晶显示,LCD1602并口驱动,单片机并口驱动LCD1602
一、前言
LCD1602是一种广泛使用的字符型液晶显示模块,有8根数据线和3根控制线E,RS和R/W,8根数据线与单片机P6连接,3根控制线与使用P1口的P1.4、P1.5、P1.6连接,VO连接了P1.7,通过给P1.7赋值0或1,让LCD最亮或最暗。
二、程序展示
1、头文件部分
#include <c8051f020.h> sbit LCD_VO=P1^7;
sbit LCD_RS=P1^6;
sbit LCD_RW=P1^5;
sbit LCD_EN=P1^4;
sbit LED=P3^4;unsigned char code List1[] = "LCD-1602";
unsigned char code List2[] = "C8051F020";
unsigned char ch1,ch2;
2、端口初始化
void PORT_Init (void)
{XBR2 = 0x40; /*使能交叉开关*/P1MDOUT =0xff;P3MDOUT =0xff;P74OUT |= 0xff; /*推挽输出*/
}
3、延时子程序
void delay(uint s)
{uint x,y;for(x=0;x<s;x++)for(y=0;y<121;y++);
}
4、写命令子程序
void WriteCmdLCD(unsigned char CMD)
{ LCD_RS=0;LCD_RW=0;P6=CMD;LCD_EN=1;delay(50);LCD_EN=0;
}
5、写数据子程序
void WriteDataLCD(unsigned char Wdata)
{ LCD_RS=1;LCD_RW=0;P6=Wdata;LCD_EN=1;delay(50);LCD_EN=0;
}
6、显示单个字符子程序
void DisplayOneChar(unsigned char M, unsigned char N, unsigned char Data)
{N &= 0x1;M &= 0xF; //X不能大于15,Y不能大于1if (N) M |= 0x40; //显示第二行时地址码 0x40;M |= 0x80; // 计算指令码WriteCmdLCD(M); //发送地址码WriteDataLCD(Data);
}
7、显示字符串子程序
void Lcd_Init()
{ WriteCmdLCD(0x38); //初始化为8位数据,双行显示,5X7字型 WriteCmdLCD(0x08); // WriteCmdLCD(0x01); // WriteCmdLCD(0x06); // WriteCmdLCD(0x0c); //
}
8、显示字符串子程序
void Display_List(unsigned char M, unsigned char N, unsigned char code *Data)
{unsigned char Length_List;Length_List = 0;N &= 0x1;M &= 0xF; //M不能大于15,N不能大于1while (Data[Length_List]>0x20) //到达字串尾则退出{if (M <= 0xF) //M应小于0xF{DisplayOneChar(M, N, Data[Length_List]); //显示单个字符Length_List++;M++;}}
}
9、主程序
void main (void)
{WDTCN = 0xde;WDTCN = 0xad; //关闭看门狗PORT_Init ();OSCICN |= 0x01;delay(5000);LCD_VO=0;Lcd_Init ();ch1=0x41;for(ch2=0;ch2<26;ch2++){LED=0;delay(500);WriteDataLCD(ch1);ch1++;if(ch1==0x51){WriteCmdLCD(0xc0);}if(ch1==0x5b){break;}LED=1;delay(500);}delay(2000);WriteCmdLCD(0x01);for(ch2=0;ch2<10;ch2++){LED=0;delay(500);Display_List(3, 0, List1);Display_List(2, 1, List2); LED=1;delay(500);}delay(5000);}
相关文章:
基于C8051F020单片机的液晶显示,LCD1602并口驱动,单片机并口驱动LCD1602
一、前言 LCD1602是一种广泛使用的字符型液晶显示模块,有8根数据线和3根控制线E,RS和R/W,8根数据线与单片机P6连接,3根控制线与使用P1口的P1.4、P1.5、P1.6连接,VO连接了P1.7,通过给P1.7赋值0或1ÿ…...
miniconda安装保姆级教程|win11|深度学习环境配置
一、官网安装miniconda miniconda官网:Miniconda - Anaconda 点击Download按钮 在红框位置输入邮箱并点击submit,下载链接将会发到邮箱中 邮箱中将会收到如图所示邮件,点击下载 选择windows对应的miniconda安装包 miniconda安装包安装完成如…...
算力100问☞第92问:为什么各地热衷建设算力中心?
目录 1、宏观分析 2、政府角度分析 3、投资者角度分析 在数字化浪潮中,各地对算力中心建设的热情高涨,这一现象背后潜藏着诸多深层次的原因,涵盖了经济、科技、社会等多个维度,且彼此交织,共同驱动着这一发展趋势。 1、宏观分析 从经济结构转型的底层逻辑来看,全球经…...
HTML字符实体笔记
一、概述 在HTML中,某些字符具有特殊含义,不能直接用于网页内容显示,需要使用字符实体来代替。字符实体分为两类:字符实体名称和字符实体编号。字符实体名称由&开头,后跟实体名称,以分号;结束…...
Linux shell脚本-概述、语法定义、自定义变量、环境变量、预设变量、变量的特殊用法(转义字符、单双引号、大小括号)的验证
目录 1.shell概述 1.1作为应用程序: 1.2 shell 作为一门语言 2.shell 语法 2.1 shell脚本的定义与执行 (1)新建文件 (2)程序开头第一行 必须写shell的类型 (3)程序编写完后,…...
数据驱动进化:AI Agent如何重构手机交互范式?
如果说AIGC拉开了内容生成的序幕,那么AI Agent则标志着AI从“工具”向“助手”的跨越式进化。它不再是简单的问答机器,而是一个能够感知环境、规划任务并自主执行的智能体,更像是虚拟世界中的“全能员工”。 正如行业所热议的:“大…...
DL学习笔记:穿戴设备上的轻量级人体活动识别方法
Hello,大家好!这里是《Dream 的深度学习笔记》,本系列将聚焦三个学习方面: 论文解读:拆解经典论文与最新突破 技术实现:从模型搭建到实际部署 应用案例:涵盖图像识别、深度学习、人工智能等热门方向 让…...
拓展知识三:编码学及密码学
编码和密码的区别 研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。 编码和密码是两个不同的概念,它们的区别如下:…...
windows安装配置FFmpeg教程
1.先访问官网:https://www.gyan.dev/ffmpeg/builds/ 2.选择安装包Windows builds from gyan.dev 3. 下滑找到release bulids部分,选择ffmpeg-7.0.2-essentials_build.zip 4. 然后解压将bin目录添加path系统变量:\ffmpeg-7.0.2-essentials_bui…...
Qt/C++项目积累:4.远程升级工具 - 4.1 项目设想
背景: 桌面程序一般都支持远程升级,也是比较常用的场景设计。如酷狗音乐的升级,会提供两个选项,自动帮助安装或是新版本提醒,由用户来决定是否升级,都属于远程升级的应用及策略。 看看经过这块的功能了解及…...
同旺科技USB to SPI 适配器 ---- 指令循环发送功能
所需设备: 内附链接 1、同旺科技USB to SPI 适配器 1、周期性的指令一次输入,即可以使用 “单次发送” 功能,也可以使用 “循环发送” 功能,大大减轻发送指令的编辑效率; 2、 “单次发送” 功能,“发送数据…...
用 Pinia 点燃 Vue 3 应用:状态管理革新之旅
一、状态管理的范式转移:从 Flux 到 Composition ### 1.1 Vuex 的辉煌与局限 - **核心架构**:基于Flux模式的state/mutations/actions三件套 - **痛点显现**: - 类型推导困难:TypeScript支持需复杂配置 - 模块嵌套陷阱&#…...
单表达式倒计时工具:datetime的极度优雅(Kimi)
一个简单表达式,也可以优雅自成工具。 笔记模板由python脚本于2025-03-22 20:25:49创建,本篇笔记适合任意喜欢学习的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。 Pyth…...
Linux:基础IO---文件描述符
文章目录 1. 前言1.1 C语言文件知识回顾 2. 文件2.1 文件基础知识 3. 被打开的文件3.1 以C语言为主,先回忆一下C文件接口3.2 过渡到系统,认识文件系统调用3.3 访问文件的本质3.4 重定向&&缓冲区 序:在深入了解了进程的内容后…...
15:视图
1. 什么是视图? 视图是sql查询的虚拟表,他并不直接存储数据,而是基于单表/多表查询的结果创建的一张虚拟表,主要是为了提高查询速率、简化复杂查询。 视图的数据基于原始表,如果原始表中的数据发生了改变,…...
附——教6
审核较严格!审核较严格!审核较严格! 完整内容参见: https://zhuanlan.zhihu.com/p/32050040665 注解: 1. 投机本质论:市场本质是投机,投资仅是表象; 2. 安全G点法则:精…...
使用 CA 证书进行签名的步骤
使用 CA 证书进行签名通常涉及以下步骤: 生成私钥和证书签名请求(CSR):你需要生成一个私钥,并基于该私钥创建一个 CSR 文件。使用 CA 证书签名 CSR:使用 CA 的私钥对 CSR 进行签名,生成最终的证…...
LINUX基础 [二] - 进程概念
目录 前言 什么是进程 如何管理进程 描述进程 组织进程 如何查看进程 通过 ps 命令查看进程 通过 ls / proc 命令查看进程 通过系统调用 获取进程标示符 前言 在学习了【Linux系统编程】中的 操作系统 和 冯诺依曼体系结构 之后,我们已经对系统应该有…...
浏览器自动携带cookie注意事项
文章目录 浏览器自动携带与目标域相关的 cookie 是由 HTTP 协议规范和浏览器设计共同决定的一、Cookie 携带的基本规则同源策略下的自动携带跨域请求的受限携带一、服务器端配置二、客户端配置三、 常见错误及注意事项 二、Cookie 属性的筛选逻辑 三、浏览器携带cookie的准则1.…...
同旺科技USB to I2C 适配器 ---- 指令循环发送功能
所需设备: 内附链接 1、同旺科技USB to I2C 适配器 1、周期性的指令一次输入,即可以使用 “单次发送” 功能,也可以使用 “循环发送” 功能,大大减轻发送指令的编辑效率; 2、 “单次发送” 功能,“发送数据…...
算法及数据结构系列 - 滑动窗口
系列文章目录 算法及数据结构系列 - 二分查找 算法及数据结构系列 - BFS算法 算法及数据结构系列 - 动态规划 算法及数据结构系列 - 双指针 算法及数据结构系列 - 回溯算法 算法及数据结构系列 - 树 文章目录 滑动窗口框架思路经典题型76. 最小覆盖子串567. 字符串的排列438. …...
AI密码学
嗯,用户给了一个需要破译的密码文档:“Uif qjh jt po uif usff.”,提示是用字母往前推移1的凯撒密码。首先,我得确认自己是否正确理解提示。凯撒密码通常是将字母按照一定位移来替换,这里的提示是往前推1位,…...
关于VSCode使用过程中的一些问题记录(持续更新)
1. VSCode更新拒绝访问 VSCode安装更新的时候出现: D:\Program Files\Microsoft VS Code\tools\inno_updater.exe 尝试在目标目录创建文件时发生一个错误:拒绝访问。 解决方法: 1. 禁止VSCode的自动检查更新,操作方法ÿ…...
重新复活的(手机端)一站式应用管理与下载平台
应用乐园(安卓) 应用乐园作者去年3月表示,由于精力问题,要停止维护奇妙搜索、应用乐园、奇妙影视这些软件了。 然而最近,令人意外的是,应用乐园竟然“复活”了!更准确地说,它进行了…...
Vue3前端开发:组件化设计与状态管理
Vue3前端开发:组件化设计与状态管理 一、Vue3组件化设计 组件基本概念与特点 是一款流行的JavaScript框架,它支持组件化设计,这意味着我们可以将页面分解成多个独立的组件,每个组件负责一部分功能,通过组件的嵌套和复用…...
失物招领|校园失物招领系统|基于Springboot的校园失物招领系统设计与实现(源码+数据库+文档)
校园失物招领系统目录 目录 基于Springboot的校园失物招领系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、 管理员功能实现 (1) 失物招领管理 (2) 寻物启事管理 (3) 公告管理 (4) 公告类型管理 2、用户功能实现 (1) 失物招领 (2) 寻物启事 (3) 公告 …...
嵌入式硬件工程师从小白到入门-原理图(三)
原理图绘制从小白到入门:知识点速通与注意事项 一、原理图绘制基础概念 什么是原理图? 原理图(Schematic)是电子电路的图形化表示,展示元器件之间的电气连接关系,是硬件设计的蓝图。 核心元素 元器件符号&…...
Pear Admin Flask 开发问题
下载代码请复制以下命令到终端执行 git clone https://gitee.com/pear-admin/pear-admin-flask 于是我下载git 完成安装后: 安装 Git 后出现的页面是 “Git for Windows 的版本发布说明(Release Notes)”,通常会在安装完成后自动弹…...
Collectors.toMap / list 转 map
前言 略 Collectors.toMap List<User> userList ...; Map<Long, User> userMap userList.stream().collect(Collectors.toMap(User::getUserId, Function.identity()));假如id存在重复值,则会报错Duplicate key xxx, 解决方案 两个重复id中&#…...
1996-2023年各省公路里程数据(无缺失)
1996-2023年各省公路里程数据(无缺失) 1、时间:1996-2023年 2、来源:国家统计局、统计年鉴 3、指标:公路里程(万公里) 4、范围:31省 5、指标解释:公路里程指报告期末…...
