基于51单片机LCD1602显示

要在1602上显示字符,要大概明白1602液晶显示屏工作原理。
一般的液晶显示器(Liquid Crystal Display, LCD) 的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。1602LCD是指显示的内容16×2,即最多只能显示32个字符。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。5X7点阵可以看做5行7列等间距分布的led灯,每一个灯相当于一个像素点,你要表达的字母或者数字都是由这些像素点组成的。只需控制灯的亮灭就可以了。
一般1602一共有16位引脚。(引脚作用如下表)

编号 符号 引脚作用 编号 符号 引脚作用
1 VSS 电源正级 9 D2 数据口
2 VDD 电源地 10 D3 数据口
3 VO 液晶显示对比度调节(即亮度需要接滑动电阻) 11 D4 数据口
4 RS 数据命令选择端(H\L) 12 D5 数据口
5 RW 读写选择端(H\L) 13 D6 数据口
6 E 使能端 14 D7 数据口
7 D0 数据口 15 BLA 背光电源正极
8 D1 数据口 16 BLK 背光电源负极

明白了引脚后,就可以将引脚链接到单片机用单片机I\O口来控制每一个引脚来让1602显示字符。编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号);编程便主要围绕这三个管脚展开按照时序进行初始化,写命令,写数据。基本操作如下:
(1) 读状态:输入:RS=L, RW=H,E=H 输出:D0-D7=状态字。
(2) 写指令:输入:RS=L, RW=L,D0-D7=指令码,E=H,输出:无。
(3) 读数据:输入:RS=H, RW=H,E=H 输出:D0~D7=数据。
(4) 写数据:输入:RS=L,RW=H,D0-D7=数据,E=高脉冲,输出:无。

由于此次是让1602显示我们让1602显示的字符所以使用向1602写指令,写数据具体操做代码如下:

//写指令代码
void write_com(uint com){E=0;RS=0;P0=com;delay_ms(5);//软件延时E=1;delay_ms(5);E=0;
}
//写数据代码
void write_date(uint date){E=0;RS=1;P0=date;delay_ms(5);//软件延时E=1;delay_ms(5);E=0;
}

写指令就是向1602发送设置指令,如在那一行显示,从这一行的什么位置开始,显示时是滚动显示还是静态显示。
写数据就是将我们想要显示的字符用循环的方式写入1602。
显示指令设置(具体如下表)

指令码 功能
0 0 1 1 1 0 0 0 设置16X2显示,5X7点阵,8位数据口
0 0 0 0 1 D C B D=1开显示: D=0关显示;
C=1显示光标: C=0不显示光标
B=1光标闪烁; B=0 光标不显示
0 0 0 0 0 1 N S N=1当读或写一个字符后地址指针加1,且光标加1
N=0当读或写一个字符后地址指针减1,且光标减1
S=1,当写一个字符时,整屏显示左移(N=1)或右移(N=0), 以得到光标不移动而屏幕移动的效果
S=0,当写一个字符时,整屏显示不移动
0 0 0 1 0 0 0 0 光标左移
0 0 0 1 0 1 0 0 光标右移
0 0 0 1 1 0 0 0 整屏左移,同时光标跟随移动
0 0 0 1 1 1 0 0 整屏右移,同时光标跟随移动

将以上所需要的指令通过写指令函数写入1602来设置1602就是1602初始化,这次我们要让1602显示一行字符,初始化代码为:

void write_init(){E = 0;write_com(0x38);//开显示write_com(0x0c);//开显示不显示光标write_com(0x06);//写一个字符指针加1write_com(0x01);//清屏write_com(0x80);//设置数据指针起点
}

将以上设置好然后就可以用写数据将想要显示的显示在1602上了
代码如下

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit    RS=P3^1;
sbit    E=P3^2;
uchar code table[]="Welcome to china";
void delay(ms){uint i,j;for(i=0;i<ms;i++){for(j=0;j<123;j++){}}
}
void write_com(uchar com){E=0;RS=0;P0=com;delay(5);E=1;delay(5);E=0;
}void write_data(uchar dat){E=0;RS=1;P0=dat;delay(5);E=1;delay(5);E=0;
}void init(){write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);
}void main(){uint i;init();write_com(0x80+0x40);for(i=0;i<16;i++){write_data(table[i]);delay(5);     }while(1);//这里是防止1602一闪一闪的显示就让代码跑一边在显示完后就停在那}

仿真结果如下

基于51单片机LCD1602显示相关推荐

  1. 基于51单片机LCD1602温度显示(DS18B20测温)

    基于51单片机DS18B20测温 要在1602上显示温度先要了解1602是如何显示的.详情可以参考我之前的文章基于51单片机1602显示 DS18B20是美国DALLAS半导体公司推出的第一片支持&q ...

  2. 基于51单片机LCD1602电子时钟实物制作

    之前写了51单片机的LCD1602的程序,现在画了电路图,焊接了电路板,做出了基于51单片机LCD1602电子时钟的实物. 注意事项: 焊接过程中,注意提前布局电路. 对应好端口(避免接线错误),我由 ...

  3. Proteus8仿真:51单片机LCD1602显示

    51单片机LCD1602显示 元器件 原理图部分 代码 main.c 工程文件 元器件 元器件 名称 排阻 RESPACK-8 51单片机 AT89C51 LCD1602 LM016L 按键 BUTT ...

  4. 基于51单片机LCD1602的简易矩阵键盘密码锁

    写在前面 初次开始写博客,表达方面也许会有很多不足,希望自己能通过这种方式巩固自己的学习和锻炼表达能力,同时也是对于自己学习的记录. 一.功能介绍 四位密码锁,密码可更改,输入仅四次以内有效 矩阵键盘 ...

  5. 60、基于51单片机1602显示智能台灯坐姿定时+光线+红外+人体感应系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Protues仿真 七.程序 八.资料包括 摘要 社会在不断进步,人类在 ...

  6. 【优秀课设】51单片机LCD1602显示的温度控制系统设计 包括时间显示 校时、设置最值温度报警功能

    1.将DS18B20温度传感器的温度读出来,并在LCD1602上显示出来. 2.在LCD上分别切换显示,软件设计时钟(时.分.秒),和当前温度值,和温度上下控制值.并可以通过按键进行修改设置,温度高于 ...

  7. 基于51单片机LCD1602的简易数字钟

    LCD1602简易数字钟 选用芯片:AT89S52 此函数功能为:用定时器的中断方式实现数字钟功能,然后在LCD1602上显示,能校时和校分,具有整点报时功能(四低一高). 博主才疏学浅,可能会出现设 ...

  8. 51单片机LCD1602显示电子时钟 带按键设置和星期显示

    当时看书看到lcd那章,就想利用定时器做一个电子时钟,当时也不知道有时钟模块的,以为都是定时器定时产生的时间,也是一个main文件从头到尾的版本,注释倒不少,不要说什么模块化编程和代码优化,想到什么就 ...

  9. 简单易懂的51单片机LCD1602显示protues仿真程序

    时序图  仿真效果  #include"AT89X51.h" typedef unsigned char u8; typedef unsigned int u16;#define ...

最新文章

  1. java 注解继承注解_Java注解合并,注解继承
  2. 凸现三围的健身运动法
  3. matlab红外图像温度提取,一种基于红外热图的温度提取方法.pdf
  4. php autoload用法,php自动加载__autoload()函数用法
  5. groovy 字符串截取最后一个_python数据类型总结——数字和字符串
  6. Excel数据分析实用小技巧【过坑】
  7. C++字节存储方式和reinterpret_cast
  8. jqAutoComplete 和 knockout
  9. Android应用程序开发入门
  10. matlab,python 写kml文件(点,线,多边形)
  11. 计算机编程 常用术语英语词汇大全 记忆
  12. Guice依赖注入(接口多实现)
  13. 《Using OpenRefine》翻译~2
  14. Android 7.0 APN 拨号上网流程分析
  15. 英语入门造句专用形容词表(116个)
  16. android平板电脑怎么才能连接电脑,平板电脑怎么连接电脑 最有效方法【图解】...
  17. 新签约和新开业酒店 | 华中首家美高梅、广州奥园喜来登、苏州裸心泊度假村、南昌八一广场格雷斯精选等酒店陆续签约和开业...
  18. 以太坊开发入门-第一个程序
  19. 隐私政策--Walkermi
  20. 微信小程序组件所在页面的生命周期

热门文章

  1. stm32g4 下载算法_手把手教你制作基于IAR、STM32H7的下载算法
  2. python 文件锁 portalocker
  3. 酸爽,最近又帮业务方制作了一个数据看板(附源码)
  4. mmWave EVMs Deep Dive(mmWave EVMs深入理解)
  5. 零成本也能打造多媒体服务器?!分享资源还能这么玩!
  6. Paragon Hard Disk Manager 17 Business中文版
  7. android app防止锁屏_触控禁止!Touch Protector 锁定屏幕触控功能,避免意外操作(Android)...
  8. React面试题最全
  9. 实用网站软文美化编辑与网站图片链接限位代码
  10. 精选提高开发效率的20个idea插件