当前位置:首页 > DS18B20数字温度计设计实验报告
要,很适合便携手持式产品的设计使用。系统可用两节电池供电。AT89C2051的引脚图如右图所示:
1、VCC:电源电压。 2、GND:地。
3、P1口:P1口是一个8位双向I/O口。口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。P1口输出缓冲器可吸收 20mA电流并能直接驱动LED显示。当P1口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。
4、P3口:P3口的P3.0~P3.5、P3.7是带有内部上拉电阻 的七个双向I/O口引脚。P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。
5、RST:复位输入。RST一旦变成高电平所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。
6、XTAL1:作为振荡器反相器的输入和内部时钟发生器的输入。
7、XTAL2:作为振荡器反相放大器的输出。
总线驱动器 74LS244
74LS244为3态8位缓冲器,一般用作总线驱动器。引脚图见上图。
显示电路
显示电路采用4位共阳极LED数码管,从P1口输出段码,列扫描用P3.0~
P3.3口来实现,列驱动用8055三极管。
温度传感器 DS18B20 DS18B20的性能特点:
1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电。
2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
3、 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
4、DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内。
5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
6、可编程 的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。 7、在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
8、测量结果直接输出数字温度信号,以\一线总线\串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
9、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。DS18B20与单片机的接口电路(引脚图见右图)
DS18B20可以采用电源供电方式,此时DS18B20
的第1 脚接地,第2脚作为信号线,第3脚接电源。
4. 软件设计
系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等。 4.1 主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。温度测量每1s进行一次。主程序流程图如图4.1所示。 4.2 读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节。在读出时必须进行CRC校验,校验有错时不能进行温度数据的改写。读出温度子程序流程图如下图所示:
发温度转换开始命令
读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不进行温度数据的改写。得出温度子程序流程图如下图所示。
发DS18B20复位指令 初始化 调用显示子程序 1s到? 初次上电 读出温度值 温度计酸处理 显示数据刷新 CRC校验正确?
发跳过ROM指令 移入温度暂存器 发读取温度指令 结束 读取操作,CRC校验 9字节完? 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间约为750ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如下图所示。
发DS18B20复位命令
发跳过ROM命令 发温度转换开始命令 结束
计算温度子程序 计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。计算温度子程序流程图如下左图所示.
现实数据刷新子程序 现实数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。现实数据刷新子程序流程图如下右图所示.
开始 温度零下? 温度数据移入显示寄存器 计算小数位温 度BCD值 十位数0? 计算整数位温 度BCD值
共分享92篇相关文档