LCD1602简介:

  • 1602字符型液晶也叫1602液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。字符型液晶,能够同时显示16x02即32个字符。

  • 它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

--------------------------





仿真图像:

C语言程序:

/*-----------------------------------------------
内容:通过标准程序静态显示字符
引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<intrins.h>sbit RS = P2^4;   //定义端口
sbit RW = P2^5;
sbit EN = P2^6;#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 P0
/*------------------------------------------------
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()); //忙则等待DelayMs(5);RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR;
}
/*------------------------------------------------
写入数据函数
------------------------------------------------*/
void LCD_Write_Data(unsigned char Data)
{ //while(LCD_Check_Busy()); //忙则等待DelayMs(5);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)
{ LCD_Init(); LCD_Clear();//清屏while (1) {  LCD_Write_Char(7,0,'o');//单引号在C语言中表示取字符的ASCII码,这一行代码也可以写为:  LCD_Write_Char(7,0,0x6F);LCD_Write_Char(8,0,'k');LCD_Write_String(1,1,"I LOVE YOU!");//双引号在C语言中表示取字符串的ASCII码while(1);}
}

PROTEUS仿真工程文件、HEX文件和C语言程序文件:

所有相关文件

单片机控制LCD1602显示英文句子相关推荐

  1. 树莓派3B+控制LCD1602显示英文或数字

    认识一下LCD1602 我手头有两种LCD1602,一种是16个引脚的,一种是4个引脚的. 正面图: 16个引脚的LCD1602: 4个引脚的LCD1602: 这里我使用的是16引脚的,4个引脚的那个 ...

  2. 51单片机控制LCD1602模块

    51单片机控制LCD1602模块 视频播放:LCD1602视频 (1)LCD1602概述 先来看看LCD1602什么意思?Liquid Crystal Display(LCD)表示液晶显示,1602 ...

  3. 利用单片机控制74HC595显示图案

    利用单片机控制74HC595显示图案(单片机型号STC89C52) 此文将介绍如何用74HC595自定义显示图案,需要一定的单片机学习基础,话不多说,上代码 #include "reg51. ...

  4. 基于51单片机的LCD1602显示温湿度

    51单片机基础难点知识理解后,直接通过下面3个小项目可以更好理解51单片机.中断 定时器 串口甚至是基础的IO输入输出都有结合,再加上一些外设模块的学习(如1602显示屏,L298N电机驱动等) 项目 ...

  5. 【Proteus仿真】51单片机+DS1302+lcd1602显示

    [Proteus仿真]51单片机+DS1302+lcd1602显示 Proteus仿真 工程架构 项目工程 文件结构 主程序代码 #include <reg52.h> #include & ...

  6. 【Proteus仿真】STC15单片机 + DS1302 + LCD1602显示时间

    [Proteus仿真]STC15单片机 + DS1302 + LCD1602显示时间 Proteus仿真 本来想通过轮询方式读取DS1302秒时间的变化来刷新LCD1602显示的,但是这种方式在STC ...

  7. 40、基于51单片机收音机 LCD1602显示系统设计

    摘要 本文在具体分析了STC89C52单片机的技术特点与数字FM收音机的基础上,提出了采用单片机控制收音机实现数字调频的方法,并给出了具体的软硬件设计.该系统利主要由STC89C52单片机.液晶显示器 ...

  8. 51单片机使用LCD1602显示DS18B20温度传感器温度

      使用LCD1602显示DS18B20温度传感器温度.关于DS18B20和LCD的原理,我就不再叙述了,大家自行查找,网上可以找到好多.   使用Proteus仿真.(需要仿真和Keil工程文件的可 ...

  9. 【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。

    LCD1602显示字符和时间是最基本的实验,在综合前面所学知识并结合c语言程序设计,就可以通过独立按键,来对时间进行校准,计时等功能.或者通过矩阵键盘的按键进行输入,进而让LCD屏上显示的出我们想要的 ...

最新文章

  1. 浅谈 UC 国际信息流推荐
  2. windows 3.x编程指南_18000 MHz 可编程衰减器
  3. 农商互联农民丰收节交易会-万祥军:产销对接谋定功能农业
  4. Android(Java):jni源代码
  5. thinkphp 删除该表的最后一行
  6. kodi android 键盘,KODI按键映射,看IPTV按键设置
  7. node ajax validator,node/express 4:在ajax post上使用express-validator显示错误
  8. JavaScript使用正则表达
  9. Java设计模式(详细待续)(转)
  10. 一款用了都说好的思维导图软件:Ayoa
  11. GO程序设计语言学习笔记
  12. mysql用户和权限管理总结_【转】mysql 用户及权限管理 小结
  13. hilbert谱 matlab,转 matlab 信号处理——Hilbert变换及谱分析
  14. Java Web-----轮播图的实现
  15. 教小师妹学多线程,看完我写的例子,脸红成那样!
  16. Tomcat-幽灵猫GhostCat漏洞复现
  17. 公众号第三方平台开发 创建公众号第三方平台
  18. hello.s:15: 错误: junk at end of line, first unrecognized character valued 0x8 的解决方法
  19. docker设置开启机自启动
  20. 基于ICP算法的三维点云数据拼接算法的实现

热门文章

  1. 教你用身份证号查社保卡号 个人电脑号
  2. 用dom4j解析xml错误-Content is not allowed in prolog前言中不允许有内容
  3. 酷我音乐mp3歌曲URL地址提取(作背景音乐)
  4. 1-1 一摞有风格的纸牌之一张纸牌
  5. mysql后门_运用Mysql语句生成后门具体办法
  6. oracle 00600 kccpb,【案例】Oracle报错ORA-00600 kccpb_sanity_check_2 恢复控制文件过程
  7. python列表去掉逗号_python – Scrapy crawler,从字符串中删除逗号
  8. 【微信小程序】零基础学 | 小程序语法
  9. 访问www.baidu.com完整过程
  10. Docker系列六EPIC领游戏