0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机2个IO口驱动LCD1602案例

CHANBAEK 来源: LYQ电子工作室 作者: LYQ电子工作室 2023-10-31 15:24 次阅读

LCD1602作为常见的并口数据屏幕,因为驱动简单,相较数码管可以显示更多的内容,所以应用很多,当然了,不及LCD单色液晶屏和彩色LCD屏,可以操控每个像素点。

这里分享的是2个IO口驱动LCD1602,当前市面上是有这样的方案的,不过用的是IIC芯片扩展IO口,本质上还是增加了IO口数量。当然了,移位寄存器也是扩展IO口,这里扩展的是输出类型。

回归正题,原理图,时序图如下,具体的原理分析,可以阅读原文,观看视频

图片

主要函数代码,此代码用于STC8单片机,其他单片机可能需要修改部分内容,尤其是延时部分,LCD1602数据处理需要时间,延时不够,是会出问题的。

底层驱动函数

//LCD1602写入数据或指令
//0指令,1数据
void LCD1602_Write_Data(bit CD,u8 dat)
{
  u8 i;
  //先传输高4位
  //第一步,低电平
  for(i=0;i< 6;i++)
  {
    HC164_CP=0;
    HC164_DI=0;//先传输最高位;
    HC164_CP=1;
  }

  HC164_CP=0;
  HC164_DI=1;//E高电平
  HC164_CP=1;

  HC164_CP=0;
  HC164_DI=CD;//传输命令位
  HC164_CP=1;

  for(i=0;i< 4;i++)//传输数据高4位
  {
    HC164_CP=0;
    HC164_DI=dat&0x80;//先传输最高位;
    HC164_CP=1;
    dat<  <=1;//次高位左移到最高位
  }
  HC164_DI=1;HC164_DI=0;//LCD1602吸收数据
  //如果DI=0;那么此时DI=1;DI=0即可
  //如果DI=1;那么DI=0即可


  //传输低4位数据,操作同上
  for(i=0;i< 6;i++)
  {
    HC164_CP=0;
    HC164_DI=0;
    HC164_CP=1;
  }

  HC164_CP=0;
  HC164_DI=1;//E高电平
  HC164_CP=1;

  HC164_CP=0;
  HC164_DI=CD;//传输命令位
  HC164_CP=1;

  //这里的移位可以接着传输
  for(i=0;i< 4;i++)//传输低4位数据
  {
    HC164_CP=0;
    HC164_DI=dat&0x80;//先传输高位;
    HC164_CP=1;
    dat<  <=1;//次高位左移到最高位
  }
  HC164_DI=1;HC164_DI=0;//LCD1602吸收数据
}

延时函数

void Delay100us()    //@24.000MHz
{
  unsigned char i, j;


  i = 4;
  j = 27;
  do
  {
    while (--j);
  } while (--i);
}
//测试600us延时能用
void LCD1602_Delay()
{
  Delay100us();Delay100us();
  Delay100us();Delay100us();
  Delay100us();Delay100us();
  Delay100us();Delay100us();
}

初始化代码

void LCD1602_Init()//LCD1602初始化
{
  LCD1602_Write_Data(0,0x02);//光标复位
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x28);//四位总线,双行显示
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x01);//清除显示
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x06);//光标移动方向
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x0c);//整体显示开,无光标
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x14);//光标随着字右移
  LCD1602_Delay();
}

以上代码差不多了,工程代码分享到粉丝群了,公众号后台可以加粉丝群下载

PCB工程分享,此工程本人没有测试打样。

图片

图片

总结:使用74HC164+与门,2个IO口就能控制LCD1602了,但是驱动效率低一些。没有74HC595的3线控制快。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44528

    浏览量

    633606
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4416

    浏览量

    167221
  • 数码管
    +关注

    关注

    32

    文章

    1878

    浏览量

    91007
  • LCD1602
    +关注

    关注

    14

    文章

    607

    浏览量

    52534
  • IO口
    +关注

    关注

    3

    文章

    169

    浏览量

    24004
收藏 人收藏

    评论

    相关推荐

    51单片机是怎样驱动LCD1602

    51单片机驱动LCD1602显示原理及例程1.LCD1602A介绍2.LCD1602A中文手册 下载3.
    发表于 11-17 07:51

    基于单片机虚拟串口驱动LCD1602的电路仿真

    基于M ult isim 10 仿真软件, 设计单片机的虚拟串口驱动LCD1602 液晶电路。实现了虚拟串口扩展并行输出的功能。该设计适用单片机UART 串口被占用时, 以最少的
    发表于 08-16 17:28 116次下载

    基于单片机LCD1602矩阵键盘显示【汇编版】

    基于单片机LCD1602矩阵键盘显示【汇编版】
    发表于 12-29 18:19 0次下载

    LCD1602驱动程序

    写了一LCD1602驱动程序,分享给大家参考(基于51单片机)。
    发表于 03-10 14:49 15次下载

    单片机原理及应用LCD1602显示原理

    单片机原理及应用LCD1602显示原理,为了让你们更快掌握1602的使用
    发表于 06-15 15:53 19次下载

    基于51单片机LCD1602四数据线驱动程序,LCD1602单片机驱动程序

    基于51单片机LCD1602四数据线驱动程序,LCD1602单片机驱动程序
    的头像 发表于 09-20 19:43 1853次阅读

    使用单片机进行LCD1602读写驱动函数的例程免费下载

    本文档的主要内容详细介绍的是使用单片机进行LCD1602读写驱动函数的例程免费下载。
    发表于 06-03 08:00 3次下载
    使用<b class='flag-5'>单片机</b>进行<b class='flag-5'>LCD1602</b>读写<b class='flag-5'>驱动</b>函数的例程免费下载

    STM32单片机驱动LCD1602的源代码免费下载

    本文档的主要内容详细介绍的是STM32单片机驱动LCD1602的源代码免费下载。
    发表于 12-30 08:00 110次下载
    STM32<b class='flag-5'>单片机</b><b class='flag-5'>驱动</b><b class='flag-5'>LCD1602</b>的源代码免费下载

    基于51单片机LCD1602显示proteus实验

    基于51单片机LCD1602显示proteus实验
    发表于 04-30 10:14 38次下载

    51单片机驱动LCD1602显示原理及例程

    51单片机驱动LCD1602显示原理及例程1.LCD1602A介绍2.LCD1602A中文手册 下载3.
    发表于 11-10 19:51 149次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>驱动</b><b class='flag-5'>LCD1602</b>显示原理及例程

    单片机LCD1602 的应用实验

    一、实验目的:(一)熟悉 LCD1602单片机的电路连接;(二)熟悉 LCD1602 的引脚功能;(三)掌握 LCD1602 的时序;(四)掌握
    发表于 11-11 15:21 17次下载
    <b class='flag-5'>单片机</b>:<b class='flag-5'>LCD1602</b> 的应用实验

    51单片机驱动——LCD1602

    51单片机驱动——LCD16021.描述51单片机控制LCD1602屏幕显示测量数据、固定字符串等,大家复制过去可以直接使用,相关注释我已标
    发表于 11-21 09:06 22次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>驱动</b>——<b class='flag-5'>LCD1602</b>

    单片机学习(五)LCD1602和矩阵键盘的使用

    单片机学习(五)LCD1602和矩阵键盘的使用
    发表于 12-04 09:06 12次下载
    <b class='flag-5'>单片机</b>学习(五)<b class='flag-5'>LCD1602</b>和矩阵键盘的使用

    LCD1602液晶显示屏驱动文件

    1、LCD1602.h文件,进行管脚定义和函数声明#ifndef _LCD1602_H_#define _LCD1602_H_#include /* 定义单片机的管脚
    发表于 01-13 16:41 10次下载
    <b class='flag-5'>LCD1602</b>液晶显示屏<b class='flag-5'>驱动</b>文件

    基于单片机LCD1602显示按键位置

    单片机课程设计题二:LCD1602显示按键位置
    的头像 发表于 07-14 15:11 3264次阅读
    基于<b class='flag-5'>单片机</b>的<b class='flag-5'>LCD1602</b>显示按键位置