LCD1602液晶屏使用(51单片机七夕特别版)
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单片机七夕特别版)相关推荐
- 通过 I2C 驱动 LCD1602 液晶屏(51单片机)
通过 I2C 驱动 LCD1602 液晶屏(51单片机) 硬件实物 原理图 3.程序 #include <reg51.h> #include <intrins.h>#defin ...
- 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)
目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...
- 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】
文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...
- Proteus仿真-LCD1602液晶屏使用方法(驱动一)
一.硬件链接 在元件库中搜索LM016即可找到LCD1602液晶屏. 按下图方式链接单片机和屏幕. 二.软件驱动代码 //屏幕相关引脚接口定义 #define D P0 sbit E=P2^6; sb ...
- 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏
偶然心血来潮,想要做一个音乐可视化的系列专题.这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累 ...
- 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- proteus仿真里面的LCD1602液晶屏初始化
仿真里面的1602液晶屏跟实际几乎一样,所以使用者很多.不过,仿真里面对于初始化的要求不同. 1.实物中的初始化,一般用 enable(0x01);enable(0x38);enable(0x0c); ...
- 手把手教你学51单片机-c语言版期末考试,手把手从零教你学51单片机
课程简介: 51单片机的教程及开发板真的很多,我曾经也从零学单片机,看过的视频教程及玩过的开发板也比较多,但很多都是为了卖发板而做视频教程.从头到尾的就每个模块做些例子,或者就送些例子,而例子中所涉及 ...
- 51单片机c语言版清华大学,51单片机c语言版.docx
51单片机(呼吸灯)C语言版 基于单片机与PWM的呼吸灯设计 实训指导教师:班级: 设计人姓名:设计日期:设计地点:完成时间: 本设计是基于单片机的原理与接口设计,采用单片机I/O 口,加以C 语言编 ...
最新文章
- 是男人就下100层【第五层】——2048游戏从源代码到公布市场
- Flask 备注一(单元测试,Debugger, Logger)
- Phpcms V9当前栏目及所有二级栏目下内容调用标签
- 微服务网关 Kong 科普
- ajax里拼接标签属性规则,vue 标签属性数据绑定和拼接的实现方法
- linux——关于ip、静态网络、动态网络、网关、DNS的设置
- C++中extern关键字的作用
- js实现向上滚动效果
- 1055 最长等差数列
- 最新性能测试:Kafka、Pulsar 和 Pravega 哪个最强?
- 不知道先学工具还是方法,数据分析入错门,后悔一辈子
- 使用Patch激活CleanMyPC时报错找不到文件
- 小程序页面调用服务器接口授权,小程序的授权和登陆
- 2021-01-01 中国公务员级别
- python 利用matplolib给绘制的地图添加方框,将所需的区域圈出来
- mongoDB——metadata之我见
- JS鼠标放上移开 显示隐藏图标 的代码思路
- [附源码]Nodejs计算机毕业设计基于java学科竞赛管理系统Express(程序+LW)
- 关于http的refer参数
- Windows环境下Nexus的下载与安装