操作步骤:

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

1602的指令码

初始化

开关显示及光标设置

数据指针设置

其他设置

//写入命令:
RS=0;
RW=0;
...//命令写入
EN=1;
//delay();
EN=0;//写入数据:
RS=1;
RW=0;
...//数据写入
EN=1;
//delay();
EN=0;

/**********************BST-V51实验开发板例程************************
*  平台:BST-V51 + Keil U3 + STC89C52
*  名称:LCD1602模块实验
******************************************************************/
//实验目的:
/*-----------------------------------------------名称:LCD1602内容:通过标准程序静态显示字符引脚定义如下: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 = P1^0;   //定义端口
sbit RW = P1^1;
sbit EN = P2^5;
sbit DU = P2^0;
sbit WE = P2^1;#define RS_CLR RS=0 //RS清零
#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//D0~D7void 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;//读取到的数据在DataPort里面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_Char(7,0,'o');LCD_Write_Char(8,0,'k');LCD_Write_String(1,1,"hello world");while(1);}
}

嵌入式学习笔记7——LCD1602液晶屏相关推荐

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

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

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

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

  3. 嵌入式学习笔记——ADC模数转换器

    ADC模数转换器 前言 ADC介绍 ADC概述 ADC的数量 ADC的特性 ADC框图 芯片外部框图 芯片内部框图 转换部分框图 状态输出部分 条件触发框图 寄存器介绍 编程思路 模式选择 规则通道的 ...

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

    LCD1602液晶屏使用(51单片机七夕特别版) LCD1602简介 实现过程 操作时序 指令码 如何改变文本的样式 代码 效果图 今天是七夕节,周围的朋友啊小姐妹(伪)啊都跟对象出去玩了 囧rz,而 ...

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

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

  6. cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断)

    cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断) https://blog.csdn.net/qq_16255321/article/details/43086 ...

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

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

  8. 嵌入式学习笔记——STM32的USART通信概述

    文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...

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

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

  10. 嵌入式学习笔记--jlink 工具RTT使用笔记

    嵌入式学习笔记–jlink 工具RTT 使用笔记 最近有调试一个ethcat板卡的需求,板卡设计的很简洁,没有多余的调试串口,正准备飞线到单片机针脚上的时候发现了RTT 的这个工具,记录一下使用的方法 ...

最新文章

  1. 北航与西安交大计算机专业对比,北航和西安交大,谁的工科实力更强,该上哪一所大学呢?...
  2. 基于SfM计算相机姿态
  3. Scrapy框架的入门使用
  4. 特斯拉放弃SAP,仅25个人4个月就开发了整套ERP!就问你服不服?
  5. tensorflow1.14.0  包含了1.x和2.x内容,此后版本要求兼容该版本
  6. 新冠疫苗厂商科兴成立房地产公司?网友:准备打疫苗送房子了?
  7. 小程序 - 学习笔记
  8. C/C++面试题—旋转数组的最小数字
  9. 【BZOJ 1036】 树的统计count
  10. HTML关联两个标签事件,javascript – 交换2个html元素并保留事件侦听器
  11. 澳洲java待遇_2018年澳洲IT薪资一览,最新IT薪水Salary,给学IT的同学打一针鸡血...
  12. 数字化转型中平台思维的十大要素-《数字化转型的道与术》
  13. Byond Compare软件
  14. 电脑预装Office2016打开Word时点击保存弹出“word无法启动转换器RECOVR32.CNV”对话框问题的修复方法
  15. 数学建模【规划模型--线性规划(整数规划、0-1规划)、非线性规划-附:案例分析、奶制品的生产和销售(详细求解过程)】
  16. 冒泡排序【Java】
  17. 直播软件开发Android直播悬浮窗实现
  18. 武汉理工校训计算机工程学,"厚德博学,追求卓越"武汉理工大学校训
  19. NewBlue Titler Pro 7不能预览 预览黑屏
  20. 区块链如何保护版权?

热门文章

  1. ThingJS:探索3D信息技术发展应用之3D城市地图搭建
  2. html使用视频给网页做背景
  3. 技术干货 | MindSpore AI科学计算系列(三):SciML分析
  4. 如何学计算机打字,电脑如何快速学会打字
  5. x5650服务器装系统,笔记本处理器天梯图,小猪教您最新笔记本显卡天梯图
  6. (数据分析)网课评论分析
  7. 计算机操作系统存在的意义,电脑操作系统的作用
  8. 【代码段】动态生成页面heading
  9. SpringBoot入门之SpringBoot热部署,什么是热部署 04
  10. 开源机器人库orocos KDL 学习笔记(三):Kinematric Chain