操作步骤:

初始化
写命令(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. pythonsys模块介绍_sys 模块介绍 - Clarkhedi的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. 批量设置word文档的页面格式 word vba代码注释
  3. go 项目 cmd目录_Golang 项目布局浅析
  4. Human centered design and design thinking
  5. 我的blog开张了,希望大家能多多赏光啊
  6. 使用线程——创建线程
  7. Dom4j完整教程~Document对象相关
  8. 网页编辑PHP变量,编辑文件中的php代码和变量
  9. 评分卡模型开发(五)--定性指标筛选
  10. 365Key今天不能用了,感觉不爽
  11. excel之快速输入带方块的对号和错号
  12. Exploring Simple Siamese Representation Learning
  13. php exif信息,显示照片exif信息PHP代码
  14. 洛克菲勒写给儿子的38封信
  15. LeetCode Count Complete Tree Nodes(二分法)
  16. 实时监测文件内容变化,Python
  17. 细数 TS 中那些奇怪的符号
  18. Charmer--viv
  19. 低首付网上购车平台申请条件,你了解吗?
  20. 宏碁Acer K50-20-55Z3拆机 +取下主板CMOS电池放电重新进入BIOS成功

热门文章

  1. office word 使用快捷键ctrl c ctrl v提示文件未找到:MathPage.WLL
  2. python多张子图画在一张画布上,显示图例和标题,并保存。
  3. python读取word指定内容_Python操作word
  4. AI插画设计,用AI制作一个只可爱的短腿柯基插画
  5. 编写程序求解百鸡百钱问题。公鸡5元一只,母鸡3元一只,小鸡一元3只,问100元钱买100只鸡,可买公鸡、母鸡、小鸡各多少只?
  6. C语言:利用指针编写程序,将一个一维数组a[10]中的最大元素与第一个元素互换、将最小元素与最后一个元素互换
  7. css pseudo elements,css伪元素(Pseudo-elements)各种使用类型
  8. 输出边长为n的正六边形(c语言)
  9. Xara3Dnbsp;6.0动画文字软件教程(一)
  10. Format oracle 用法,oracle sqlplus中column格式化命令之heading用法