LCD1602液晶屏使用(51单片机七夕特别版)

  • LCD1602简介
  • 实现过程
    • 操作时序
    • 指令码
    • 如何改变文本的样式
    • 代码
  • 效果图

今天是七夕节,周围的朋友啊小姐妹(伪)啊都跟对象出去玩了 囧rz,而我·又是一个有理想有追求的男人,所以本弱鸡·决定!!今天更新!!与广大单身朋友们一起过七夕!
声明:为了使代码能更系统阐述过程,我提出了一些库

LCD1602简介

以下为厂商提供信息
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x11的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。


1602液晶屏引脚

1602液晶屏原理图

实现过程

1.初始化
2. 写命令(RS=L),设置显示坐标
3.写数据(RS=H)

操作时序


指令码

初始化

如何改变文本的样式

开关显示及光标设置

代码

//#include<reg52.h> //头文件,包含特殊功能寄存器的定义
#include<intrins.h>sbit RS = P1^0;   //定义端口
sbit RW = P1^1;
sbit EN = P2^5;
sbit DU = P2^0;
sbit WE = P2^1;#define RS_CLR RS=0
#define RS_SET RS=1#define RW_CLR RW=0
#define RW_SET RW=1 #define EN_CLR EN=0
#define EN_SET EN=1#define DataPort P0void cmg88()//关数码管,点阵函数
{DU=1;
P0=0X00;
DU=0;
}
/*------------------------------------------------uS延时函数,含有输入参数 unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编,大致延时长度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   while(--t);
}
/*------------------------------------------------mS延时函数,含有输入参数 unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
{while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}
}
/*------------------------------------------------判忙函数
------------------------------------------------*/bit LCD_Check_Busy(void) { DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET;return (bit)(DataPort & 0x80);}
/*------------------------------------------------写入命令函数
------------------------------------------------*/void LCD_Write_Com(unsigned char com) {  while(LCD_Check_Busy()); //忙则等待RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR;}
/*------------------------------------------------写入数据函数
------------------------------------------------*/void LCD_Write_Data(unsigned char Data) { while(LCD_Check_Busy()); //忙则等待RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_();EN_CLR;}/*------------------------------------------------清屏函数
------------------------------------------------*/void LCD_Clear(void) { LCD_Write_Com(0x01); DelayMs(5);}
/*------------------------------------------------写入字符串函数
------------------------------------------------*/void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) {     if (y == 0) {     LCD_Write_Com(0x80 + x);     //表示第一行}else {      LCD_Write_Com(0xC0 + x);      //表示第二行}        while (*s) {     LCD_Write_Data( *s);     s ++;     }}
/*------------------------------------------------写入字符函数
------------------------------------------------*/void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) {     if (y == 0) {     LCD_Write_Com(0x80 + x);     }    else {     LCD_Write_Com(0xC0 + x);     }        LCD_Write_Data( Data);  }
/*------------------------------------------------初始化函数
------------------------------------------------*/void LCD_Init(void) {LCD_Write_Com(0x38);    /*显示模式设置*/ DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38);  LCD_Write_Com(0x08);    /*显示关闭*/ LCD_Write_Com(0x01);    /*显示清屏*/ LCD_Write_Com(0x06);    /*显示光标移动设置*/ DelayMs(5); LCD_Write_Com(0x0C);    /*显示开及光标设置*/}/*------------------------------------------------主函数
------------------------------------------------*/
void main(void)
{
cmg88();//关数码管,点阵函数
LCD_Init();
LCD_Clear();//清屏
while (1) {  LCD_Write_String(6,0,"happy");LCD_Write_String(1,1,"qixi festival");while(1);}
}

效果图

最后让我们来庆祝七夕这个东方情人节快乐

最后祝广大博友们哪怕一个人也要七夕快乐哦,请相信那个属于你的人现在一定也在等着你!!
还有我是个在七夕更新的博主

LCD1602液晶屏使用(51单片机七夕特别版)相关推荐

  1. 通过 I2C 驱动 LCD1602 液晶屏(51单片机)

    通过 I2C 驱动 LCD1602 液晶屏(51单片机) 硬件实物 原理图 3.程序 #include <reg51.h> #include <intrins.h>#defin ...

  2. 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)

    目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...

  3. 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】

    文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...

  4. Proteus仿真-LCD1602液晶屏使用方法(驱动一)

    一.硬件链接 在元件库中搜索LM016即可找到LCD1602液晶屏. 按下图方式链接单片机和屏幕. 二.软件驱动代码 //屏幕相关引脚接口定义 #define D P0 sbit E=P2^6; sb ...

  5. 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏

    偶然心血来潮,想要做一个音乐可视化的系列专题.这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累 ...

  6. 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  7. proteus仿真里面的LCD1602液晶屏初始化

    仿真里面的1602液晶屏跟实际几乎一样,所以使用者很多.不过,仿真里面对于初始化的要求不同. 1.实物中的初始化,一般用 enable(0x01);enable(0x38);enable(0x0c); ...

  8. 手把手教你学51单片机-c语言版期末考试,手把手从零教你学51单片机

    课程简介: 51单片机的教程及开发板真的很多,我曾经也从零学单片机,看过的视频教程及玩过的开发板也比较多,但很多都是为了卖发板而做视频教程.从头到尾的就每个模块做些例子,或者就送些例子,而例子中所涉及 ...

  9. 51单片机c语言版清华大学,51单片机c语言版.docx

    51单片机(呼吸灯)C语言版 基于单片机与PWM的呼吸灯设计 实训指导教师:班级: 设计人姓名:设计日期:设计地点:完成时间: 本设计是基于单片机的原理与接口设计,采用单片机I/O 口,加以C 语言编 ...

最新文章

  1. 是男人就下100层【第五层】——2048游戏从源代码到公布市场
  2. Flask 备注一(单元测试,Debugger, Logger)
  3. Phpcms V9当前栏目及所有二级栏目下内容调用标签
  4. 微服务网关 Kong 科普
  5. ajax里拼接标签属性规则,vue 标签属性数据绑定和拼接的实现方法
  6. linux——关于ip、静态网络、动态网络、网关、DNS的设置
  7. C++中extern关键字的作用
  8. js实现向上滚动效果
  9. 1055 最长等差数列
  10. 最新性能测试:Kafka、Pulsar 和 Pravega 哪个最强?
  11. 不知道先学工具还是方法,数据分析入错门,后悔一辈子
  12. 使用Patch激活CleanMyPC时报错找不到文件
  13. 小程序页面调用服务器接口授权,小程序的授权和登陆
  14. 2021-01-01 中国公务员级别
  15. python 利用matplolib给绘制的地图添加方框,将所需的区域圈出来
  16. mongoDB——metadata之我见
  17. JS鼠标放上移开 显示隐藏图标 的代码思路
  18. [附源码]Nodejs计算机毕业设计基于java学科竞赛管理系统Express(程序+LW)
  19. 关于http的refer参数
  20. Windows环境下Nexus的下载与安装

热门文章

  1. 群晖DSM7实现Docker的macvlan
  2. 如何判断选择专业数字功放芯片
  3. 最左前缀 mysql优化器_mysql查询优化之索引类型、最左前缀
  4. APP上传APP Store遇到的各种问题
  5. 读书笔记:《学会提问》
  6. windows查看本机的mac地址
  7. 《自控力》第四章读书笔记
  8. 面对职场“毕业”,PMPMO应该如何从容的应对?如何跳槽能够大幅度升职加薪?【大海午餐】
  9. 计算机运行很卡很慢,电脑运行慢很卡怎么办 电脑运行卡的解决方法
  10. 知识问答(KBQA)两种主流方法:基于语义解析和基于信息检索的方法介绍