鍩轰簬鍗曠墖鏈虹殑鏅鸿兘鐏伨鎶ヨ绯荤粺澶у璁烘枃 - 鐧惧害鏂囧簱 联系客服

发布时间 : 星期五 文章鍩轰簬鍗曠墖鏈虹殑鏅鸿兘鐏伨鎶ヨ绯荤粺澶у璁烘枃 - 鐧惧害鏂囧簱更新完毕开始阅读1b021026ce84b9d528ea81c758f5f61fb73628d9

进制补码形式储存在高速暂存存储器的第l,2字节。DSl8B20温度传感器之中我们在计算对应的温度的时候:当符号位S为0时,我们便可以直接把二进制位转换为十进制;当符号位S为1时,我们首先会将二进制位补码变换为二进制位原码,然后再将二进制位原码转换成十进制数值。

表3 码制转换

温度低位 温度高位 TH TL 配置 保留 保留 保留 8位CRC

3.8.2 18B20接口电路

如下图所示为18B20的接口电路。

图12温度传感器接口电路图

(1) DS18B20控制方法

DS18B20温度控制器有六条控制命令:

44H可以表示为温度转换控制此时我们将系统之中的数据通常情况下会通过启动DS18B20进行温度转换;

BEH可以表示为读暂存器读暂存器中包括九个字节的内容;

4EH可以表示为写暂存器其作用就是将系统之中复制暂存器的数据通常情况下写

入暂存器的TH和TL字节之中;

48H可以表示为复制暂存器将系统之中的数据这个暂存器的作用就是那TH和TL中的字节写到E2RAM中 ;

B8H可以表示为重新调E2RAM其作用就是把E2RAM中的TH和TL中的字节写到暂存器TH和TL字节之中;

B4H可以表示问读电源供电方式其作用就是启动DS18B20温度传感器并向主CPU传送供电方式的信号。

(2) DS18B20温度传感器的供电方式

通常情况下DS18B20温度传感器可以使用两种方式对系统进行供电,其中的一种供电方式为电源供电方式,在这种供电方法的情况下DS18B20温度传感器的1号引脚接地,2号引脚通常情况下会当做信号线,3号引脚通常情况下接供电电源。另一种供电方法为寄生电源的供电方法,通常情况下我们为了保证在有效的DS18B20温度传感器周期内向单片机系统提供足够的电流,这个时候我们就可以用到三极管用其来完成对总线的上拉过程。为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。本文的设计我们就是针对供电方式应用电源供电方式,STC89C52单片机中的P2.3端口接单线总线为了保证在有效的DS18B20温度传感器周期内向单片机系统提供足够的电流,P2.3口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,这个时候我们就可以用到一个上拉电阻和STC89C52单片机中的P2.3端口用他们来完成对单片机系统总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉提位,上拉开启时间最大为10 μs。并采用现在最先进的寄生电源供电方式VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三状态的。通常情况下如果我们使用寄生电源供电的方法就必须保证VDD引脚和GND引脚均接地。通过主机控制的DS18B20单片机系统如果需要完成温度转换过程就必须经过3个步骤:

? 初始化。 ? ROM操作指令。

? 存储器操作指令。

4 系统软件的设计及流程图

主程序流程图如下图所示。首先要给传感器预热,因为MQ-2型半导体电阻式烟雾传感器在不通电存放一段时间后,再次通电时,传感器不能立即正常采集烟雾信息,需要一段时间预热。程序初始化结束后,系统进入监控状态。在整个报警系统工作中,烟雾浓度信息经ADC0832转换处理后,由单片机进行分析处理,判断系统是否启动报警。主程序还包括LED八段式数码管浓度字符显示功能、手动报警功能、报警浓度设定功能,中断子程序等,使报警器功能更加完善,给用户带来便利。

图13 主程序流程图

5 硬件调试及电路调试中遇到的问题

第一步为目测,单片机应用系统电路全部手工焊接在洞洞板上,因此对每一个焊点都要进行仔细的检查。检查它是否有虚焊、是否有毛剌等。

第二步为万用表测试,先用万用表复核目测中认为可疑的连线或接点,查看它们的通断状态是否与设计规定相符,再检查各种电源线与地线之间是否有短路现象。

第三步为加电检查。当系统加电时,首先检查所有插座或器件引脚的电源端是否有符合要求的电压值,接地端电压值是否接近零,接固定电平的引脚端是否电平正确。

第四步是联机检查。

在对硬件电路调试过程中,还遇到了不少问题,第一次把所有的元件都焊上去后,都准备调试了,才发现正负极的插针离得太近了,不容易接电源,本不该犯的错误,这些都是由于自己的粗心大意造成的,所以说,做任何事情都必需经过“三思而后行”,来不得半点的马虎,否则浪费了时间和精力。

在电路的调试的过程之中,首先我们应该输入单片机系统的显示程序,看一看显示手否正常。其次当我们在调试系统程序的时候,如果我们发现指令用的不是很正确,从而导致调试电路无法达到我们所需要的目的,另外软件程序中的延时有的过长、有的过短。