单片机——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相关推荐

  1. 基于51单片机LCD1602电子时钟实物制作

    之前写了51单片机的LCD1602的程序,现在画了电路图,焊接了电路板,做出了基于51单片机LCD1602电子时钟的实物. 注意事项: 焊接过程中,注意提前布局电路. 对应好端口(避免接线错误),我由 ...

  2. 基于51单片机LCD1602显示

    基于51单片机LCD1602显示 要在1602上显示字符,要大概明白1602液晶显示屏工作原理. 一般的液晶显示器(Liquid Crystal Display, LCD) 的主要原理是以电流刺激液晶 ...

  3. 使用51单片机+lcd1602转接板-iic接口进行显示

    使用51单片机+lcd1602转接板-iic接口进行显示 某宝上有卖lcd1602与iic芯片pcf8574的整合,虽然lcd1602能直接用51单片机使用,不过经过整合之后只需要对SCL和SDA两个 ...

  4. Proteus8仿真:51单片机LCD1602显示

    51单片机LCD1602显示 元器件 原理图部分 代码 main.c 工程文件 元器件 元器件 名称 排阻 RESPACK-8 51单片机 AT89C51 LCD1602 LM016L 按键 BUTT ...

  5. 【Proteus仿真】51单片机+LCD1602驱动模板

    [Proteus仿真]51单片机+LCD1602驱动模板 Proteus仿真 主程序 /*51单片机LCD1602驱动模板 */ #include <REGX52.H> #include ...

  6. 【Proteus仿真】51单片机+LCD1602驱动显示模板程序

    [Proteus仿真]51单片机+LCD1602驱动显示模板程序 Proteus仿真 范例工程架构 LCD1602相关驱动显示函数 //函数或者变量声明 extern void LCD1602_del ...

  7. 51单片机——LCD1602液晶显示屏

    如下图:红框就是LCD1602液晶显示屏,他是可插拔的,插上去后数码管就会乱码无效了,因为他两共用了MCU的8个P0口 LCD1602原理图 从上面两幅图可以看出来 LCD1602的LCD_D0~LC ...

  8. 51单片机LCD1602温度时钟万年历带闹钟DS18B20实践制作DIY- GC0046-出租车计价器

    一.功能说明: 基于51单片机设计-万年历带闹钟 功能介绍: STC89C52最小系统板. LCD1602 .DS1302.DS18B20.4个按键.蜂鸣器. 1.单片机获取DS1302的年月日时分秒 ...

  9. 51单片机LCD1602

    前言 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符.LCD1602主 ...

  10. 51单片机LCD1602 定时器时钟 实现年月日时分秒显示

    实现功能:利用51单片机的定时器原理制作时钟,显示使用LCD1602,可以显示时分秒年月日和星期 ,识别平年闰年,按键可调整时间日期,整点报时. 1.定时器中断实现时钟基本原理 若系统晶振为12MHZ ...

最新文章

  1. ngx_http_lua_inject_socket_tcp_api函数代码注释
  2. xx is not in the sudoers file 问题解决
  3. Delphi中的各种路径
  4. 5G NR Search space和CORESET
  5. 篇二:Eclipse安装配置Maven
  6. 关于ax+by+cz的最大不可表数
  7. spring连接mysql出现问题_使用spring连接mysql数据库出错
  8. 【剑指offer】面试题32 - I:从上到下打印二叉树(Java)
  9. c语言课程设计--拼图游戏,C语言课程设计_拼图游戏.pdf
  10. 人脸关键点: DCNN-Deep Convolutional Network Cascade for Facial Point Detection
  11. 《Ray Tracing in One Weekend》——Chapter 8: Metal
  12. 删除数据所有的表和存储过程
  13. 【TSP】基于matlab模拟退火算法求解旅行商问题【含Matlab源码 136期】
  14. 十分钟快速自制CMSIS_DAP仿真器~将ST-LINK-V2变身DAP仿真器~
  15. 这几天很可能是因为时差倒坏了
  16. 日语常用会话1000句
  17. 文通电脑版车牌识别软件,让违章驾车无处可躲
  18. python的ls是什么意思_谏言给那些想学Python的人,建议收藏后细看!
  19. java课程设计 成绩_Java课程设计—学生成绩管理系统(201521123005 杨雪莹)
  20. 微信公众号都有哪些传播方式吸引粉丝

热门文章

  1. 我的LINUX学习之路之二十一之web服务器简单搭建
  2. 虚拟化之四:虚拟化备份策略已成数据安全的焦点!
  3. shell中sed -i特殊字符
  4. 用计算机弹可惜不是你,可惜不是你 还是幸亏不是你
  5. 机器学习之 朴素贝叶斯、贝叶斯网络
  6. 哈希表思路图解和代码实现
  7. MySQL中外键的定义、作用、添加和删除
  8. Django中object.all
  9. Hbase简介及常用命令相关知识总结
  10. hive遍历_从Hive中的stored as file_foramt看hive调优