LCD1602液晶显示屏的字符显示
仿真图:
以下是代码:
//主函数#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液晶显示屏的字符显示相关推荐
- 和12岁小同志搞创客开发:如何驱动LCD1602液晶显示屏?
目录 1.简介和驱动原理 2.实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/cate ...
- STC89C52单片机 LCD1602液晶显示屏
LCD1602显示 VVcat #include <reg52.h>typedef unsigned char uchar; typedef unsigned int uint;sbit ...
- 51单片机——LCD1602液晶显示屏
如下图:红框就是LCD1602液晶显示屏,他是可插拔的,插上去后数码管就会乱码无效了,因为他两共用了MCU的8个P0口 LCD1602原理图 从上面两幅图可以看出来 LCD1602的LCD_D0~LC ...
- 外设驱动库开发笔记33:LCD1602液晶显示屏驱动
LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形.在这一章我们就来讨论LCD ...
- STM32通过(软/硬IIC)控制LCD1602液晶显示屏(IIC转8位并口的PCF8574转接板的使用)原创
STM32通过(软/硬IIC)控制LCD1602液晶显示屏(IIC转8位并口的PCF8574转接板的使用)原创 A0,A1,A2全部悬空,那么PCF8574的IIC地址为0x4e.(具体原因,看PCF ...
- 51单片机用c语言在液晶1602上显示汉字,lcd1602与单片机连接图,基于51单片机的lcd1602液晶显示屏连接电路图...
描述 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示, ...
- LCD1602液晶显示屏模块资料
模块实例https://blog.csdn.net/qq_38393591/article/details/108643827 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符. ...
- LCD1602液晶显示屏的工作原理图是什么呢?
本文重点是由深圳市兴宇合电子技术人员为大家介绍LCD1602液晶显示屏的工作原理以及原理图,希望对大家有所帮助. (1)LCD1602液晶显示屏工作原理如下: LCD1602液晶显示屏通过电压来改变填 ...
- 51单片机LCD1602液晶显示屏
一.LCD1602介绍 LCD1602 (Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字 ...
最新文章
- AVAudioPlayer音频播放器-备用
- Bootstrap系列 -- 38. 基础导航条
- git fetch -p 获取远程仓库的新分支以及删除远程仓库已删除的分支
- 利用MS17-010渗透win7(64位)
- java程序结构_java程序结构
- java怎么实现日程提醒_如何用java和xml实现日程提醒
- ipad无法充电怎么办_哈尔滨Ipad死机了维修费用价目表_京宏通讯器材维修培训学校...
- java队列类_用Java编写一个队列类
- c++ map的存储结构_深度解密Go语言之sync.map
- 计算机工具栏文件夹选项在哪里,windows10系统下工具栏里找不到文件夹选项如何解决...
- 2021mathor cup钢材制造业中钢材切割
- 14种最佳的PHP帮助台脚本和5种免费选项
- 红黑联盟 php相关资讯
- 滑铁卢大学开发了一套AI工具,教泥瓦匠初学者搬砖诀窍
- 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障
- Android开发工具系列 --Hosts映射
- 世界人工智能大会阿里巴巴专场论坛《数字时代的技术责任》来了
- 微服务学习总结4(网关和consul结合)
- 计算机网络原理知识点及考点整理(谢希仁第七版)
- 小程序访问本地服务器注意点