51单片机笔记[5]-总线扩展模块
作者:互联网
实验目的
掌握总线扩展的协议规范和应用方法
实验内容
1-WIRE总线芯片DS18B20应用
- 通过DS18B20测试温度,通过数码管显示
- 通过键盘设置上下限温度
- 当温度超过上限,通过蜂鸣器报警(单音)
DHT11、24C02芯片应用
- 每5分钟通过DHT11测试温湿度
- 将温湿度(保留一位小数)保存至外部存储器24C02
- 从存储器中取出保存的温湿度值,通过LCD1602显示
原理
LCD1602
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
要显示汉字需要对汉字取字模,汉字只能单排显示。常用取字模软件:PCtoLCD2002(网上一搜就有)
取字模
主要有如下几种取字模的方式:
- 行列式,顺向(高位在前),阳码
- 列行式,顺向(高位在前),阳码
- 逐行式,顺向(高位在前),阳码
- 逐列式,顺向(高位在前),阳码
然后生成c数组
时序图的阅读
(1)时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。
(2)有线交叉状的部分,表示电平在变化,如上所标注。
(3)应该比较容易理解,如上图右上角所示,两条平行线分别对应高低电平,也正好吻合(2)中电平变化的说法。
(4)上图下,密封的菱形部分,注意要密封,表示数据有效,Valid Data这个词也显示了这点。
DS18B20和DHT11测试温湿度
- DS18B20介绍
DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化,低功耗,高性能,抗干扰能力强,易配微处理器等优点,可直接将温度转化成数字信号处理器处理。测量的温度范围是—55125℃,测温误差0.5℃。可编程分辨率912位,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃和0.0625℃。相较热电偶传感器而言可实现高精度测温。
DS18B20控制方法(DS18B20有六条控制命令):
- 温度转换 44H 启动DS18B20进行温度转换
- 读暂存器 BEH 读暂存器9位二进制数字
- 写暂存器 4EH 将数据写入暂存器的TH、TL字节
- 复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中
- 重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节
- 读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU
[https://zhuanlan.zhihu.com/p/396356659]
2. DHT11介绍
DHT11数字温湿度传感器是一款能够检测温湿度的复合传感器,其内置一个测温元件、一个电阻式感湿元件和一个单片机。通信也是使用单线(1-WIRE)方式。通信过程:配对(握手)->51单片机接收数据
当配对成功后,DHT11就会默认发送40个比特位,即一共5个字节,其中包含两个字节的当前温度值、两个字节是当前湿度值和一个校验值。
[https://zhuanlan.zhihu.com/p/483408243]仅供参考,详细说明还请翻阅官方手册。
24C02芯片作为存储器
串行E2PROM是基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。24C02与单片机的接口非常简单,如下图所示。E0,E1,E2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议。
IIC协议(IIC又作I2C)
IIC为两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbs以上。
时钟线SCL:在通信过程起到控制作用。
数据线SDA:用来一位一位的传送数据。
实验过程
原理图
DS18B20应用 | 24C02应用 |
---|---|
标签:DS18B20,51,void,总线,unsigned,char,单片机,LCD1602,Nop 来源: https://www.cnblogs.com/qsbye/p/16653832.html |