LCD1602温度显示程序设计流程

博主福利:100G+电子设计资料合集icon-default.png?t=N7T8https://dwz.date/fyQa

在温度的显示上,采用LCD1602可以显示两行字符,每行16个,显示容量为162。通过并行接口,可与单片机的I/O口直接相连。

1602的引脚和功能如下:

VSS:电源地

VDD:电源正极,接+5V电源

VL:液晶显示偏压信号

RS: 数据/指令寄存器选择端。高电平时选择数据寄存器,低电平时选择指令寄存器。

R/W: 读/写选择端。高电平时为读操作,低电平时为写操作

E(6): 使能信号,下降沿触发

D0-D7: I/O口数据传输线

BLA: 背光源正极

BLK:背光源负极

当RS及R/W的引脚信号为1且E的引脚由1变成了0时,读取数据:当RS的引脚信号为1时,R/W引脚信号为0,且E的引脚由1变成了0,存入数据。故可以根据设置RS及R/W的高低电平来控制数据的读取,存入。

它具体的指令操作包括清屏,回车,输入模式控制,显示开关控制,以为控制,显示模式控制。如表所示。

在该系统之中,先对LCD进行初始化设置,将AD转换后的数值向LCD发送,LCD读取数据,然后写入函数,最后将采集到的温度值显示在LCD1602的屏幕上。其流程图如图所示。

  • 18
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据提供的引用内容,以下是一个基于C51单片机LCD1602显示屏的温度显示的设计示例: ```c #include <reg52.h> sbit DQ = P2^0; // DS18B20温度传感器数据线连接到P2.0口 sbit RS = P2^1; // LCD1602的RS引脚连接到P2.1口 sbit RW = P2^2; // LCD1602的RW引脚连接到P2.2口 sbit EN = P2^3; // LCD1602的EN引脚连接到P2.3口 void delay(unsigned int t) // 延时函数 { unsigned int i, j; for(i = 0; i < t; i++) for(j = 0; j < 125; j++); } void LcdWriteCom(unsigned char com) // 写命令到LCD1602 { RS = 0; // RS置低,表示写命令 RW = 0; // RW置低,表示写操作 P0 = com; // 将命令写入P0口 EN = 1; // 使能信号置高 delay(5); // 延时一段时间 EN = 0; // 使能信号置低 } void LcdWriteData(unsigned char dat) // 写数据到LCD1602 { RS = 1; // RS置高,表示写数据 RW = 0; // RW置低,表示写操作 P0 = dat; // 将数据写入P0口 EN = 1; // 使能信号置高 delay(5); // 延时一段时间 EN = 0; // 使能信号置低 } void LcdInit() // 初始化LCD1602 { LcdWriteCom(0x38); // 设置显示模式为2行,5x7点阵 LcdWriteCom(0x0c); // 显示开,光标关闭 LcdWriteCom(0x06); // 光标右移,不移动显示 LcdWriteCom(0x01); // 清屏 } void main() { unsigned char temp[5]; // 存储温度值的数组 unsigned char i; while(1) { LcdInit(); // 初始化LCD1602 LcdWriteCom(0x80); // 设置显示位置为第一行第一列 LcdWriteData('T'); // 显示字母T LcdWriteData('e'); // 显示字母e LcdWriteData('m'); // 显示字母m LcdWriteData('p'); // 显示字母p LcdWriteData(':'); // 显示冒号 DQ = 1; // 主机拉高总线 delay(5); // 延时一段时间 DQ = 0; // 主机拉低总线 delay(80); // 延时一段时间 DQ = 1; // 主机释放总线 delay(5); // 延时一段时间 while(!DQ); // 等待DS18B20的应答信号 delay(30); // 延时一段时间 for(i = 0; i < 5; i++) // 读取温度值 { while(DQ); // 等待DS18B20的数据信号 delay(5); // 延时一段时间 temp[i] = DQ; // 读取数据 delay(30); // 延时一段时间 } LcdWriteCom(0x86); // 设置显示位置为第一行第七列 LcdWriteData(temp[0]); // 显示温度值的第一位 LcdWriteData(temp[1]); // 显示温度值的第二位 LcdWriteData('.'); // 显示小数点 LcdWriteData(temp[3]); // 显示温度值的第四位 LcdWriteData(temp[4]); // 显示温度值的第五位 delay(1000); // 延时一段时间 } } ``` 这个示例程序通过C51单片机LCD1602显示屏实现了温度显示。程序首先初始化LCD1602,然后通过DS18B20温度传感器读取温度值,并将温度显示LCD1602上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子开发圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值