仿真图:

以下是代码:

//主函数#include <REGX51.H>       //包含单片机寄存器的头文件
#include "lcd1602.h"
#include "delay.h"void main(void)
{lcd1602_init();      //LCD初始化while(1){lcd1602_char(1,3,'f');lcd1602_string(2,1,"dshal");}
}

LCD1602子程序:

//显示字符过程:读状态--写指令--写数据--自动显示#include <REGX51.H>
#include "delay.h"#define uchar unsigned char        //无符号字符型类型数据
#define uint unsigned int       //无符号整型数据
#define IODATA  P0                //D0-D7引脚sbit RS=P2^0;   //定义rs端口        寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P2^1;  //定义rw端口        读写选择位,将RW位定义为P2.1引脚
sbit E=P2^2;   //定义en端口        使能信号位,将E位定义为P2.2引脚/********************************************************************
* 功能 : 1602命令函数
***********************************************************************/
void lcd1602_write_cmd(uchar del)
{RS = 0;Delay30us();RW = 0;Delay30us();E = 0;Delay30us();IODATA  = del;Delay30us();E = 1;Delay30us();E = 0;                 //E 1->0,rs=0,rw=0, 将指令代码写入指令寄存器中
}/********************************************************************
* 功能 : 1602写数据函数
***********************************************************************/void lcd1602_write_data(uchar del)
{  Delay30us();RS = 1;Delay30us();RW = 0;Delay30us();E = 0;Delay30us();IODATA  = del;Delay30us();E = 1;Delay30us();E = 0;                   //E 1->0,rs=1,rw=0, 数据写入数据寄存器中
}/********************************************************************
* 功能 : 1602初始化
***********************************************************************/
void lcd1602_init(void)
{Delay20ms();               //尚未工作无需判忙lcd1602_write_cmd(0x38);        //8位数据,双列,5*7字形Delay20ms();lcd1602_write_cmd(0x38);Delay20ms();lcd1602_write_cmd(0x38);     //连续设置3次确保设置成功lcd1602_write_cmd(0x0c);        //开启显示屏,关光标,光标不闪烁lcd1602_write_cmd(0x06);       //显示地址递增,即写一个数据后,显示位置右移一位lcd1602_write_cmd(0x01);        //清屏}/********************************************************************
* 功能 : 显示单个字符
***********************************************************************/
void lcd1602_char(uchar hang,uchar lie,char sign)
{uchar a;if(hang == 1){a = 0x80;}if(hang == 2){a = 0xc0;}a = a + lie - 1;lcd1602_write_cmd(a);      //置数据存贮器地址lcd1602_write_data(sign);
}/********************************************************************
* 功能 :显示字符串
***********************************************************************/
void lcd1602_string(uchar hang,uchar lie,uchar *p)
{uchar a;if(hang == 1){a = 0x80;}if(hang == 2){a = 0xc0;}a = a + lie - 1;while(1){lcd1602_write_cmd(a);lcd1602_write_data(*p);a++;    p++;   if((*p == '\0')||(a==0x90)||(a==0xd0)) //字符结束或每行最后一个字符{break;}}
}

延时子程序:

#include <intrins.h>/****延时30us****/
void Delay30us()                //@11.0592MHz-40
{unsigned char i;i = 11;while (--i);
}/****延时20ms****/
void Delay20ms()                //@11.0592MHz
{unsigned char i, j;i = 36;j = 217;do{while (--j);} while (--i);
}/****延时1s****/
void Delay1s()                //@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}/****延时zs****/
void delay(unsigned int z)
{                                                                                              unsigned int i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);
}

Proteus仿真中,LCD1602的第三引脚VEE可以不加电位器即可显示字符,如果实物中不能显示可以尝试加一个电位器。

说明:以上代码仅供参考。(有部分代码是在做作品的过程中网上找的,如有侵权,联系删除。)

LCD1602液晶显示屏的字符显示相关推荐

  1. 和12岁小同志搞创客开发:如何驱动LCD1602液晶显示屏?

     目录 1.简介和驱动原理 2.实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/cate ...

  2. STC89C52单片机 LCD1602液晶显示屏

    LCD1602显示 VVcat #include <reg52.h>typedef unsigned char uchar; typedef unsigned int uint;sbit ...

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

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

  4. 外设驱动库开发笔记33:LCD1602液晶显示屏驱动

      LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形.在这一章我们就来讨论LCD ...

  5. STM32通过(软/硬IIC)控制LCD1602液晶显示屏(IIC转8位并口的PCF8574转接板的使用)原创

    STM32通过(软/硬IIC)控制LCD1602液晶显示屏(IIC转8位并口的PCF8574转接板的使用)原创 A0,A1,A2全部悬空,那么PCF8574的IIC地址为0x4e.(具体原因,看PCF ...

  6. 51单片机用c语言在液晶1602上显示汉字,lcd1602与单片机连接图,基于51单片机的lcd1602液晶显示屏连接电路图...

    描述 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示, ...

  7. LCD1602液晶显示屏模块资料

    模块实例https://blog.csdn.net/qq_38393591/article/details/108643827 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符. ...

  8. LCD1602液晶显示屏的工作原理图是什么呢?

    本文重点是由深圳市兴宇合电子技术人员为大家介绍LCD1602液晶显示屏的工作原理以及原理图,希望对大家有所帮助. (1)LCD1602液晶显示屏工作原理如下: LCD1602液晶显示屏通过电压来改变填 ...

  9. 51单片机LCD1602液晶显示屏

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

最新文章

  1. AVAudioPlayer音频播放器-备用
  2. Bootstrap系列 -- 38. 基础导航条
  3. git fetch -p 获取远程仓库的新分支以及删除远程仓库已删除的分支
  4. 利用MS17-010渗透win7(64位)
  5. java程序结构_java程序结构
  6. java怎么实现日程提醒_如何用java和xml实现日程提醒
  7. ipad无法充电怎么办_哈尔滨Ipad死机了维修费用价目表_京宏通讯器材维修培训学校...
  8. java队列类_用Java编写一个队列类
  9. c++ map的存储结构_深度解密Go语言之sync.map
  10. 计算机工具栏文件夹选项在哪里,windows10系统下工具栏里找不到文件夹选项如何解决...
  11. 2021mathor cup钢材制造业中钢材切割
  12. 14种最佳的PHP帮助台脚本和5种免费选项
  13. 红黑联盟 php相关资讯
  14. 滑铁卢大学开发了一套AI工具,教泥瓦匠初学者搬砖诀窍
  15. 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障
  16. Android开发工具系列 --Hosts映射
  17. 世界人工智能大会阿里巴巴专场论坛《数字时代的技术责任》来了
  18. 微服务学习总结4(网关和consul结合)
  19. 计算机网络原理知识点及考点整理(谢希仁第七版)
  20. 小程序访问本地服务器注意点

热门文章

  1. Cadence 计算器使用——settling time
  2. oracle数据类型和Java类型之间的映射关系
  3. MySQL 升级--1
  4. eclipse安装c语言开发linux,在linux下安装eclipse 开发c语言程序
  5. 水墨风的山水大坝3d可视化场景
  6. 构造Gray码(格雷码)
  7. 运行浏览器无痕模式报错
  8. 论文中可以让代码变得非常好看的工具
  9. 【python标准库】sys模块全解
  10. 计算机中f4的应用,电脑键盘中功能区的F2键F4键如何使用 电脑键盘中功能区的F2键F4键怎么使用...