基于C8051F020单片机的液晶显示,LCD1602并口驱动,单片机并口驱动LCD1602

news2025/3/24 18:12:20

一、前言

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不能大于1
	if (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不能大于1
	while (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);


}

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

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

相关文章

miniconda安装保姆级教程|win11|深度学习环境配置

一、官网安装miniconda miniconda官网&#xff1a;Miniconda - Anaconda 点击Download按钮 在红框位置输入邮箱并点击submit&#xff0c;下载链接将会发到邮箱中 邮箱中将会收到如图所示邮件&#xff0c;点击下载 选择windows对应的miniconda安装包 miniconda安装包安装完成如…

Linux shell脚本-概述、语法定义、自定义变量、环境变量、预设变量、变量的特殊用法(转义字符、单双引号、大小括号)的验证

目录 1.shell概述 1.1作为应用程序&#xff1a; 1.2 shell 作为一门语言 2.shell 语法 2.1 shell脚本的定义与执行 &#xff08;1&#xff09;新建文件 &#xff08;2&#xff09;程序开头第一行 必须写shell的类型 &#xff08;3&#xff09;程序编写完后&#xff0c…

数据驱动进化:AI Agent如何重构手机交互范式?

如果说AIGC拉开了内容生成的序幕&#xff0c;那么AI Agent则标志着AI从“工具”向“助手”的跨越式进化。它不再是简单的问答机器&#xff0c;而是一个能够感知环境、规划任务并自主执行的智能体&#xff0c;更像是虚拟世界中的“全能员工”。 正如行业所热议的&#xff1a;“大…

DL学习笔记:穿戴设备上的轻量级人体活动识别方法

Hello&#xff0c;大家好&#xff01;这里是《Dream 的深度学习笔记》,本系列将聚焦三个学习方面&#xff1a; 论文解读&#xff1a;拆解经典论文与最新突破 技术实现&#xff1a;从模型搭建到实际部署 应用案例&#xff1a;涵盖图像识别、深度学习、人工智能等热门方向 让…

windows安装配置FFmpeg教程

1.先访问官网&#xff1a;https://www.gyan.dev/ffmpeg/builds/ 2.选择安装包Windows builds from gyan.dev 3. 下滑找到release bulids部分&#xff0c;选择ffmpeg-7.0.2-essentials_build.zip 4. 然后解压将bin目录添加path系统变量&#xff1a;\ffmpeg-7.0.2-essentials_bui…

Qt/C++项目积累:4.远程升级工具 - 4.1 项目设想

背景&#xff1a; 桌面程序一般都支持远程升级&#xff0c;也是比较常用的场景设计。如酷狗音乐的升级&#xff0c;会提供两个选项&#xff0c;自动帮助安装或是新版本提醒&#xff0c;由用户来决定是否升级&#xff0c;都属于远程升级的应用及策略。 看看经过这块的功能了解及…

同旺科技USB to SPI 适配器 ---- 指令循环发送功能

所需设备&#xff1a; 内附链接 1、同旺科技USB to SPI 适配器 1、周期性的指令一次输入&#xff0c;即可以使用 “单次发送” 功能&#xff0c;也可以使用 “循环发送” 功能&#xff0c;大大减轻发送指令的编辑效率&#xff1b; 2、 “单次发送” 功能&#xff0c;“发送数据…

单表达式倒计时工具:datetime的极度优雅(Kimi)

一个简单表达式&#xff0c;也可以优雅自成工具。 笔记模板由python脚本于2025-03-22 20:25:49创建&#xff0c;本篇笔记适合任意喜欢学习的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;而不仅仅是知识的简单复述。 Pyth…

Linux:基础IO---文件描述符

文章目录 1. 前言1.1 C语言文件知识回顾 2. 文件2.1 文件基础知识 3. 被打开的文件3.1 以C语言为主&#xff0c;先回忆一下C文件接口3.2 过渡到系统&#xff0c;认识文件系统调用3.3 访问文件的本质3.4 重定向&&缓冲区 序&#xff1a;在深入了解了进程的内容后&#xf…

LINUX基础 [二] - 进程概念

目录 前言 什么是进程 如何管理进程 描述进程 组织进程 如何查看进程 通过 ps 命令查看进程 通过 ls / proc 命令查看进程 通过系统调用 获取进程标示符 前言 在学习了【Linux系统编程】中的 ​ 操作系统 和 冯诺依曼体系结构 之后&#xff0c;我们已经对系统应该有…

浏览器自动携带cookie注意事项

文章目录 浏览器自动携带与目标域相关的 cookie 是由 HTTP 协议规范和浏览器设计共同决定的一、Cookie 携带的基本规则同源策略下的自动携带跨域请求的受限携带一、服务器端配置二、客户端配置三、 常见错误及注意事项 二、Cookie 属性的筛选逻辑 三、浏览器携带cookie的准则1.…

同旺科技USB to I2C 适配器 ---- 指令循环发送功能

所需设备&#xff1a; 内附链接 1、同旺科技USB to I2C 适配器 1、周期性的指令一次输入&#xff0c;即可以使用 “单次发送” 功能&#xff0c;也可以使用 “循环发送” 功能&#xff0c;大大减轻发送指令的编辑效率&#xff1b; 2、 “单次发送” 功能&#xff0c;“发送数据…

关于VSCode使用过程中的一些问题记录(持续更新)

1. VSCode更新拒绝访问 VSCode安装更新的时候出现&#xff1a; D:\Program Files\Microsoft VS Code\tools\inno_updater.exe 尝试在目标目录创建文件时发生一个错误&#xff1a;拒绝访问。 解决方法&#xff1a; 1. 禁止VSCode的自动检查更新&#xff0c;操作方法&#xff…

重新复活的(手机端)一站式应用管理与下载平台

应用乐园&#xff08;安卓&#xff09; 应用乐园作者去年3月表示&#xff0c;由于精力问题&#xff0c;要停止维护奇妙搜索、应用乐园、奇妙影视这些软件了。 然而最近&#xff0c;令人意外的是&#xff0c;应用乐园竟然“复活”了&#xff01;更准确地说&#xff0c;它进行了…

Vue3前端开发:组件化设计与状态管理

Vue3前端开发&#xff1a;组件化设计与状态管理 一、Vue3组件化设计 组件基本概念与特点 是一款流行的JavaScript框架&#xff0c;它支持组件化设计&#xff0c;这意味着我们可以将页面分解成多个独立的组件&#xff0c;每个组件负责一部分功能&#xff0c;通过组件的嵌套和复用…

失物招领|校园失物招领系统|基于Springboot的校园失物招领系统设计与实现(源码+数据库+文档)

校园失物招领系统目录 目录 基于Springboot的校园失物招领系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、 管理员功能实现 (1) 失物招领管理 (2) 寻物启事管理 (3) 公告管理 (4) 公告类型管理 2、用户功能实现 (1) 失物招领 (2) 寻物启事 (3) 公告 …

Pear Admin Flask 开发问题

下载代码请复制以下命令到终端执行 git clone https://gitee.com/pear-admin/pear-admin-flask 于是我下载git 完成安装后&#xff1a; 安装 Git 后出现的页面是 “Git for Windows 的版本发布说明&#xff08;Release Notes&#xff09;”&#xff0c;通常会在安装完成后自动弹…

1996-2023年各省公路里程数据(无缺失)

1996-2023年各省公路里程数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;1996-2023年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;公路里程&#xff08;万公里&#xff09; 4、范围&#xff1a;31省 5、指标解释&#xff1a;公路里程指报告期末…

量化研究---可转债量化交易系统上线快速服务器

现在可转债交易系统使用的人多&#xff0c;服务器比较小&#xff0c;今天对服务器进行了升级&#xff0c;提供快速的数据支持&#xff0c;同时我也给了服务器的源代码&#xff0c;支持自定义服务器数据支持&#xff0c;不通过我服务器&#xff0c;可以挂在服务器上面24小时快速…

用ArcGIS做一张符合环评要求的植被类型图

植被类型图是环境影响评价&#xff08;环评&#xff09;中的重要图件&#xff0c;需满足数据准确性、制图规范性和信息完整性等要求。本教程将基于ArcMap平台&#xff0c;从数据准备到成果输出&#xff0c;详细讲解如何制作符合环评技术规范的植被类型图。 ArcGIS遥感解译土地…