需要注意,1602对应xy。x表示对应的列,y对应的行。
共16列,2行。
下标从0开始!
lcd1602.c
#include "config.h"
void LcdWaitReady()
{
u8 sta;
LCD1602_DB = 0xFF;
LCD1602_RS = 0;
LCD1602_RW = 1;
do{
LCD1602_E = 1;
sta = LCD1602_DB;
LCD1602_E = 0;
}while(sta & 0x80);
}
void LcdWriteCmd(u8 cmd)
{
LcdWaitReady();
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_DB = cmd;
LCD1602_E = 1;
LCD1602_E = 0;
}
void LcdWriteDat(u8 dat)
{
LcdWaitReady();
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_DB = dat;
LCD1602_E = 1;
LCD1602_E = 0;
}
void LcdSetCursor(u8 x, u8 y)
{
u8 addr;
if(y == 0)
{
addr = 0x00 + x;
}
else
{
addr = 0x40 + x;
}
LcdWriteCmd(addr | 0x80);
}
//注意x是1602的列,y是1602的行 --- 1602共16列,2行
void LcdShowStr(u8 x, u8 y, u8 *str, u8 len)
{
LcdSetCursor(x, y);
while(len--)
{
LcdWriteDat(*str++);
}
}
void LcdAreaClear(u8 x, u8 y, u8 len)
{
LcdSetCursor(x, y);
while(len--)
{
LcdWriteDat(' ');
}
}
void LcdFullClear()
{
LcdWriteCmd(0x01);
}
void InitLcd1602()
{
LcdWriteCmd(0x38);
LcdWriteCmd(0x0C);
LcdWriteCmd(0x06);
LcdWriteCmd(0x01);
}
lcd1602.h
#ifndef LCD1602_H
#define LCD1602_H
void InitLcd1602();
void LcdShowStr(u8 x, u8 y, u8 *str, u8 len);
void LcdAreaClear(u8 x, u8 y, u8 len);
void LcdFullClear();
#endif
关键字:LCD1602
引用地址:
LCD1602例程
推荐阅读最新更新时间:2024-03-16 16:19
新型Littelfuse 150520直列保险丝座系列令安装更加轻松,同时节省PC电路板空间
包括一体成型模制本体,带有预剥引线,便于快速组装 中国北京,2023年5月23日讯 – Littelfuse公司 最新的150520系列直列保险丝座额定电压为600VAC/VDC,电流为20A,尺寸为5x20mm 。这些便捷的直列保险丝非常适合需要补充电路保护的应用,包括数据中心、工业HVAC和电源。 150520提供八英寸预剥引线和预装保险丝夹,便于快速安装。 Littelfuse 150520直列保险丝座系列 最新的150520系列直列保险丝座非常适合许多应用,包括: 数据中心和云 工业HVAC 消费电子产品 LED照明镇流器 家电 Littelfuse全球产品经
[电源管理]
英特尔至强处理器路线图泄露:HPC,CSP,存储悉数在列
据外媒报道,英特尔至强处理器CPU的大规模路线图已在网上泄露,该路线图显示了已知的英特尔至强ice lake、Sapphire Rapids以及英特尔正在开发的一些未知处理器未来两年的发展规划,概述了已经上市、正在开发、正在规划中以及正处于概念阶段的至强处理器,所涉及的行业包括HPC(高性能计算)、CSP(云服务提供商)、存储服务以及其他可扩展行业。 Ice Lake和Sapphire Rapids仅间隔两个季度 根据此路线图,Ice Lake将于2021年第一季度末着陆,而Sapphire Rapids将在2021年第四季度接管,这将是有史以来间隔时间最短的英特尔至强处理器产品,但这会是英特尔保持竞争力的正确选择
[嵌入式]
51单片机学习笔记———14.LCD1602工业显示屏
LCD1602工业显示屏 LCD工业显示屏解读: 共有16个引脚,其中D0~D7为收发数据引脚,为双向并行数据接口。 16代表每一行能够显示16个空格 2代表总共两行 因为每一个字节能够显示0和1,有两种可能,所以要将32位全部显示完全的话,至少需要2^5,也就是5位,所以我们可以设置8位,也就是一个字节来发送数据,这样比较方便 其中第四脚比较特殊,用来决定是用来确定位置还是发送我们想要显示的数据 RS=0确定位置 RS=1确认数据 显示数据的步骤: 初始化LCD1602 发送指令(RS=0) ----确定位置 发送数据(RS=1)-----确认数据 `RS`为低电平时为发送指令 指令:决定
[单片机]
LCD1602屏幕显示邮箱手机号(滚动和闪烁显示程序Proteus仿真)
学习了LCD用来显示两行邮箱和手机号 三种显示方式: 直接显示 滚动显示 闪烁显示 仿真原理图如下 单片机源程序如下: #include reg51.h sbit rs=P2^0; sbit rw=P2^1; sbit en=P2^2; #define uint unsigned int #define uchar unsigned char uchar code tab1 ={ 123456@163.com }; uchar code tab2 ={ tel:1234567891 }; void delay(unsigned int xms); void write_com(uchar com) { rw=0; r
[单片机]
热列庆祝Avedia成都分部成立
Avedia一直致力于数字标牌产品的设计与研发,是数字标牌领域的领导品牌。 Avedia自2007年成立至今,得到了众多合作伙伴的支持与越来越多用户的肯定。为了促进西南区域的数字标牌行业发展,也更贴近区域内的客户,公司于今年5月,在成都正式成立了办事机构。成都是西南的核心商务阵地、物流中心,拥有着得天独厚的地理优势。 成都分部主要提供样品测试、产品展示、维修服务、技术方案咨询。 目前,Avedia已在国内设立了北京、上海、惠州、成都四大分部。今后,Avedia会秉持创新的理念,一如既往的优质服务精神,把最好的数字标牌解决方案带给广大用户。 办事处地址:成都市锦秀路34号棕北国际一期1716
[安防电子]
单片机控制LCD1602显示屏动态显示字符串
仿真电路图: 仿真实验结果: C语言程序代码: //------------------------------------------------*/ #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include intrins.h sbit RS = P2^4; //定义端口 sbit RW = P2^5; sbit EN = P2^6; #define RS_CLR RS=0 #define RS_SET RS=1 #define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0
[单片机]
51单片机简单的驱动LCD1602
【LCD1602】 什么是LCD1602 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字
[单片机]
报告称二季度宽带网速上海江苏北京列前三
7月15日消息,根据互联网内容传送服务商蓝汛近日发布的2013年第二季度全国互联网感知数据报告的详细情况,上海蝉联了感知网速的冠军,达到5.10Mb/s,环比快了18.06%。江苏和北京分列第二;三大运营商宽带感知网速排名则为电信最快、联通其次。 上海感知网速蝉联第一 统计数据显示,2M以上感知带宽达到53.96%,但城市之间的差距较大,其中上海一枝独秀,是唯一一个感知网速超过5Mb/s的地区,江苏排名第二,但与上海仍有一定差距,感知网速为3.64Mb/s。 迄今为止,上海电信已完成第五次宽带大提速,60余万上海铜缆用户得以免费升速,升速后可达铜缆宽带的最高速率6M。这标志着,历时2年多,上海电信通过免费光纤改造
[手机便携]