51单片机与DS1820温度传感器的交互

需积分: 0 1 下载量 48 浏览量 更新于2024-07-13 收藏 1.85MB PPT 举报
"这篇资料是关于C51单片机如何读取DS1820温度传感器序列号的课程讲解,涵盖了DS1820的主要特性、内部结构、工作原理以及读取序列号的代码实现。" 在51系列单片机的应用中,温度传感器是一个重要的组成部分,尤其在环境监测、设备控制等领域。本课件主要讨论的是DS1820温度传感器,它是由Dallas公司生产的一款数字温度传感器,采用独特的单总线接口,仅需连接到单片机的一个端口就能实现双向通信。这种设计极大地简化了硬件连接,使得在同一总线上挂载多个传感器成为可能,适合于远距离多点温度检测。 DS1820的主要特点包括: 1. 温度测量范围广泛,可以从-55℃到+125℃。 2. 测量精度高,在-10℃到+85℃范围内误差为±0.5℃。 3. 转换温度为数字信号的时间大约为200毫秒。 4. 电源管理灵活,可利用信号线高电平充电,供低电平时使用。 5. 芯片具有一定的反接保护能力,即使电源极性接反也不会立即损坏。 DS18B20的外部有三个引脚,分别是VDD(电源)、GND(地)和DQ(数据线)。其内部结构包括64位ROM(包含唯一地址)、单线端口、电源检测、存储器和控制逻辑、温度传感器、上限和下限触发器,以及用于温度测量的电路。内部工作原理依赖于两个温度系数不同的振荡器,通过比较它们的计数差异来计算温度变化。 在程序实现上,如`ds1820getcode()`函数所示,首先对传感器进行复位,然后发送读序列号的命令(0x33),接着连续读取8个字节的数据,存入数组`fCode[]`中,这就是DS1820的序列号。序列号包含了产品类型标号、序列号和CRC校验码,确保了每个DS18B20芯片的唯一性。 DS1820因其独特的单总线接口和较高的测量精度,常被用于各种需要精确温度监控的场合。通过C51单片机的编程,可以方便地获取和处理这些温度数据,实现智能化的温度控制系统。