51单片机——LCD1602
单片机——1602液晶
宗旨:技术的学习是有限的,分享的精神是无限的。
1、1602液晶读写时序
(1)、读状态
RS=L,R/W=H,E=H。(判断忙完毕后释放总线)
(2)、读数据
RS=H,R/W=H,E=H。
(3)、写指令
RS=L,R/W=L,D0~D7=指令码,E=高脉冲
(4)、写数据
RS=H,R/W=L,D0~D7=数据,E=高脉冲
2、液晶显示驱动文件
#include <reg52.h>#define LCD1602_DB P0
sbit LCD1602_RS = P1 ^ 0;
sbit LCD1602_RW = P1 ^ 1;
sbit LCD1602_E = P1 ^ 5;/* 等待液晶准备好 */
void LcdWaitReady()
{unsigned char sta;LCD1602_DB = 0xFF;LCD1602_RS = 0;LCD1602_RW = 1;do{LCD1602_E = 1;sta = LCD1602_DB; //读取状态字LCD1602_E = 0;}while (sta & 0x80); //bit7等于1表示液晶正忙,重复检测直到其等于0为止
}
/* 向LCD1602液晶写入一字节命令,cmd-待写入命令值 */
void LcdWriteCmd(unsigned char cmd)
{LcdWaitReady();LCD1602_RS = 0;LCD1602_RW = 0;LCD1602_DB = cmd;LCD1602_E = 1;LCD1602_E = 0;
}
/* 向LCD1602液晶写入一字节数据,dat-待写入数据值 */
void LcdWriteDat(unsigned char dat)
{LcdWaitReady();LCD1602_RS = 1;LCD1602_RW = 0;LCD1602_DB = dat;LCD1602_E = 1;LCD1602_E = 0;
}
/* 设置显示RAM起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标 */
void LcdSetCursor(unsigned char x, unsigned char y)
{unsigned char addr;if (y == 0) //由输入的屏幕坐标计算显示RAM的地址{addr = 0x00 + x; //第一行字符地址从0x00起始}else{addr = 0x40 + x; //第二行字符地址从0x40起始}LcdWriteCmd(addr | 0x80); //设置RAM地址
}
/* 在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针 */
void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)
{LcdSetCursor(x, y); //设置起始地址while (*str != '\0') //连续写入字符串数据,直到检测到结束符{LcdWriteDat(*str++);}
}
/* 初始化1602液晶 */
void InitLcd1602()
{LcdWriteCmd(0x38); //16*2显示,5*7点阵,8位数据接口LcdWriteCmd(0x0C); //显示器开,光标关闭LcdWriteCmd(0x06); //文字不动,地址自动+1LcdWriteCmd(0x01); //清屏
}
51单片机——LCD1602相关推荐
- 基于51单片机LCD1602电子时钟实物制作
之前写了51单片机的LCD1602的程序,现在画了电路图,焊接了电路板,做出了基于51单片机LCD1602电子时钟的实物. 注意事项: 焊接过程中,注意提前布局电路. 对应好端口(避免接线错误),我由 ...
- 基于51单片机LCD1602显示
基于51单片机LCD1602显示 要在1602上显示字符,要大概明白1602液晶显示屏工作原理. 一般的液晶显示器(Liquid Crystal Display, LCD) 的主要原理是以电流刺激液晶 ...
- 使用51单片机+lcd1602转接板-iic接口进行显示
使用51单片机+lcd1602转接板-iic接口进行显示 某宝上有卖lcd1602与iic芯片pcf8574的整合,虽然lcd1602能直接用51单片机使用,不过经过整合之后只需要对SCL和SDA两个 ...
- Proteus8仿真:51单片机LCD1602显示
51单片机LCD1602显示 元器件 原理图部分 代码 main.c 工程文件 元器件 元器件 名称 排阻 RESPACK-8 51单片机 AT89C51 LCD1602 LM016L 按键 BUTT ...
- 【Proteus仿真】51单片机+LCD1602驱动模板
[Proteus仿真]51单片机+LCD1602驱动模板 Proteus仿真 主程序 /*51单片机LCD1602驱动模板 */ #include <REGX52.H> #include ...
- 【Proteus仿真】51单片机+LCD1602驱动显示模板程序
[Proteus仿真]51单片机+LCD1602驱动显示模板程序 Proteus仿真 范例工程架构 LCD1602相关驱动显示函数 //函数或者变量声明 extern void LCD1602_del ...
- 51单片机——LCD1602液晶显示屏
如下图:红框就是LCD1602液晶显示屏,他是可插拔的,插上去后数码管就会乱码无效了,因为他两共用了MCU的8个P0口 LCD1602原理图 从上面两幅图可以看出来 LCD1602的LCD_D0~LC ...
- 51单片机LCD1602温度时钟万年历带闹钟DS18B20实践制作DIY- GC0046-出租车计价器
一.功能说明: 基于51单片机设计-万年历带闹钟 功能介绍: STC89C52最小系统板. LCD1602 .DS1302.DS18B20.4个按键.蜂鸣器. 1.单片机获取DS1302的年月日时分秒 ...
- 51单片机LCD1602
前言 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符.LCD1602主 ...
- 51单片机LCD1602 定时器时钟 实现年月日时分秒显示
实现功能:利用51单片机的定时器原理制作时钟,显示使用LCD1602,可以显示时分秒年月日和星期 ,识别平年闰年,按键可调整时间日期,整点报时. 1.定时器中断实现时钟基本原理 若系统晶振为12MHZ ...
最新文章
- ngx_http_lua_inject_socket_tcp_api函数代码注释
- xx is not in the sudoers file 问题解决
- Delphi中的各种路径
- 5G NR Search space和CORESET
- 篇二:Eclipse安装配置Maven
- 关于ax+by+cz的最大不可表数
- spring连接mysql出现问题_使用spring连接mysql数据库出错
- 【剑指offer】面试题32 - I:从上到下打印二叉树(Java)
- c语言课程设计--拼图游戏,C语言课程设计_拼图游戏.pdf
- 人脸关键点: DCNN-Deep Convolutional Network Cascade for Facial Point Detection
- 《Ray Tracing in One Weekend》——Chapter 8: Metal
- 删除数据所有的表和存储过程
- 【TSP】基于matlab模拟退火算法求解旅行商问题【含Matlab源码 136期】
- 十分钟快速自制CMSIS_DAP仿真器~将ST-LINK-V2变身DAP仿真器~
- 这几天很可能是因为时差倒坏了
- 日语常用会话1000句
- 文通电脑版车牌识别软件,让违章驾车无处可躲
- python的ls是什么意思_谏言给那些想学Python的人,建议收藏后细看!
- java课程设计 成绩_Java课程设计—学生成绩管理系统(201521123005 杨雪莹)
- 微信公众号都有哪些传播方式吸引粉丝