当前位置:首页 > 行业资料 > 其它行业文档 > 温度监控系统课程设计
课程设计单片机原理与应用题目及要求一.题目二.要求温度检测与告警系统设计与实现1.完成对温度传感器DS18B20的分析2.完成传感器与单片机的接口设计3.实现温度检测、显示、告警硬件结构TemperaturesensorDS18B20特点:①、单总线结构。②、在DS18B20中的每个器件上都有独一无二的序列号。③、实际应用中不需要外部任何元器件即可实现测温。④、测量温度范围在-55°C到+125°C之间。⑤、数字温度计的分辨率用户可以从9位到12位选择。⑥、内部有温度上、下限告警设置。可通过报警搜索命令识别哪片DS18B20超越了上、下限。DS18B20的引脚及封装DS18B20采用TO-92封装,外观看起来像一只三极管。引脚名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源时,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。321Vcc单片机DS18B20中的高速暂存器序号暂存器字节地址1温度值低位02温度值高位13温度上限TH24温度下限TL35配置寄存器46reserved57reserved68reserved79CRC校验8第1、2字节为被测温度值。第3、4、5字节分别为TH、TL与配置寄存器的复制,每一次上电复位时被重写。配置寄存器有R0、R1组成,其值决定温度转换的精度位数、转换时间等。第6~8字节为保留字节。第9字节读出的是前8个字节的CRC校验码,通过此码,可判断通讯是否正确。DS18B20中的温度值温度低8位D7D6D5D4D3D2D1D0温度高8位SSSSSD10D9D8温度值二进制十六进制+5500000011011100000370H+10.125000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1251111111101011110FF5EH-551111110010010000FC90H数据格式:数据举例:DS18B20中的TL与TH用于设置低温、高温的报警数值。DS18B20完成一个周期的温度测量后,将测得的温度值和TL、TH相比较,如果小于TL,或大于TH,则表示温度越限,将该器件内的告警标志位置位,并对主机发出的告警搜索命令作出响应。需要修改上、下限温度值时,只需使用一个功能命令即可对TL、TH写入。DS18B20中的配置寄存器0R1R011111MSBLSBR1R0转换精度温度分辨率转换时间(Ms)0090.593.7501100.25187.510110.12537511120.0625750配置寄存器:R0、R1的设置:DS18B20的读写操作究竟如何使用DS18B20?单片机18B20118B20218B20N-1在系统控制中,单片机是主机。DS18B20是从设备。所以,系统所有的操作都由单片机发起。1)、ROM操作命令①、读命令(33H):通过该命令主机可以读出DS18B20的ROM中的8位系列产品代码、48位产品序列号和8位CRC校验码。该命令仅限于单个DS18B20在线的情况。②、选择定位命令(55H):当多片DS18B20在线时,主机发出该命令和一个64位数,DS18B20内部ROM与主机一致者,才响应命令。该命令也可用于单个DS18B20的情况。③、查询命令(0F0H):该命令可查询总线上DS18B20的数目及其64位序列号。④、跳过ROM序列号检测命令(OCCH):该命令允许主机跳过ROM序列号检测而直接对寄存器操作,该命令仅限于单个DS18B20在线的情况。⑤、报警查询命令(0ECH):只有报警标志置位后,DS18B20才响应该命令。在DS18B20ROM中存放了表明自己身份的代码。2)、寄存器操作命令①、写入命令(4EH):该命令可写入寄存器的第2、3、4字节,即高低温寄存器和配置寄存器。复位信号发出之前,三个字节必须写完。②、读出命令(0BEH):该命令可读出寄存器中的内容,复位命令可终止读出。③、开始转换命令(44H):该命令使DS18B20立即开始温度转换,当温度转换正在进行时,主机这时读总线将收到0;当温度转换结束时,主机这时读总线将收到1。若用信号线给DS18B20供电,则主机发出转换命令后,必须提供至少相应于分辨率的温度转换时间的上拉电平。④、回调命令(088H):该命令把EEROM中的内容写到寄存器TH、TL及配置寄存器中。DS18B20上电时能自动写入。⑤、复制命令(48H):该命令把寄存器TH、TL及配置寄存器中的内容写到EEROM中。⑥、读电源标志命令(084H):主机发出该命令后,DS18B2将进行响应,发送电源标志,信号线供电发0,外接电源发1。系统如果有多个DS18B20存在,如果只对某DS18B20寄存器操作,必须在确认了DS18B20身份后,才能进行。DS18B20的使用方法DS18B20的复位时序DS18B20的读时序DS18B20的写时序DS18B20是在单片机指使下进行各种操作的。这些命令如何传递个DS18B20?我们必须掌握下述3个时序:1)、DS18B20的初始化时序总线上的所有操作都从初始化开始,对DS18B20操作之前,首先要将其初始化。复位时序为:①、主机首先将信号线置为低电平,时间为480~960μS。②、主机再将信号线置为高电平(或称释放总线),时间为15~60μS,准备接收DS18B20应答。③、之后,DS18B20发出60~240μS的低电平作为应答信号。证实自己的存在。主机收到此信号后,才能对DS18B20作其它操作。如果单片机读不到低电平,则说明DS18B20不存在,或故障。;-----DS18B20初始化程序------rst18b20:SETBP3.3NOPCLRP3.3MOVR0,#200dsr1:NOPDJNZR0,dsr1;延时600uSSETBP3.3;单片机释放总线,将总线交给DS18B20MOVR0,#0dsr2:JNBP3.3,reply;等待DS18B20响应DJNZR0,dsr2;计时LJMPno_reply;超时(已过60uS),没有响应reply:JBP3.3,reply;等待DS18B20释放总线SETBF0;置标志位,表示DS18B20存在LJMPdsr5no_reply:CLRF0;清标志位,表示DS18B20不存在dsr5:SETBP3.3;总线复位RET2)、DS18B20的读时序主机将信号线从高电平拉低至低电平1μS以上,再使数据线升为高电平,向DS18B20表示要读操作。从主机将信号线从高电平拉低至低电平起15~60μS的时间内,DS18B20将数据放到信号线上,这期间,是主机读取DS18B20数据的时间。从而完成了一个读周期。在开始另一个读周期前,必须有1μS以上的高电平恢复期。rd01:CLRC;清数据缓冲SETBP3.4;在第二次进入时1μS以上的高电平恢复NOPNOPCLRP3.4;启动读DS18B20操作,时序要求低1μS以上NOPNOPNOPSETBP3.4;单片机释放总线,准备接收DS18B20数据MOVR3,#9;1μSrd10:DJNZR3,rd10;18μS左右MOVC,P3.4;读DS18B20位MOVR3,#23rd20:DJNZR3,rd20;延时46uS,消耗读周期的剩余时间RRCA;读入的数据比特移入A3)、DS18B20的写时序主机将信号线从高电平拉至低电平1μS以上,产生写起始信号。1μS之后单片机就可以将输出数据放在总线上。从信号线的下降沿开始,在15~60μS的时间内DS18B20对信号线检测,如信号线为高电平,则写1,如信号线为0,则写0,从而完成了一个写周期。在开始另一个写周期前,必须有1μS以上的高电平恢复期。写“0”写“1”2、温度显示器及接口显示可采用静态的5位数码管显示器。这样尽管硬件电路稍微复杂,但程序控制简单。三位整数,一位小数,最高位显示温度符号。零上,此位不显示。零下,显示负号锁存锁存8位数据S1S2锁存S2锁存S2锁存S23、高温告警及接口电路高温告警,采用打开蜂鸣器告警均可。蜂鸣器LED发光二极管
本文标题:温度监控系统课程设计
链接地址:https://www.777doc.com/doc-3185444 .html