温度监测报警系统设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、设计任务与设计要求 (1)
二、设计原理 (1)
2.1 主要硬件介绍 (1)
2.1.1 DS18B20数字温度传感器 (1)
2.1.2 AT89C51单片机芯片 (3)
2.2 系统原理结构 (3)
三、设计方案 (4)
3.1 硬件部分 (4)
3.1.1 温度测量模块 (4)
3.1.2 LED数码管显示模块 (4)
3.1.3 按键模块 (5)
3.1.4 系统整体结构仿真图 (5)
3.2 软件部分 (5)
3.2.1DS18B20传感器程序 (5)
3.2.2键盘读取及确认程序 (7)
3.2.3DS18B20操作流程图 (8)
四、调试与性能分析 (9)
4.1 proteus仿真结果 (9)
4.2实物测试 (9)
4.2.1正常情况 (9)
4.2.2报警状态 (10)
五、心得体会 (10)
六、成品展示 (11)
七、附录部分 (12)
附件一、电路设计原理图 (12)
附件二、系统设计原始代码程序 (13)
一、设计任务与设计要求
本设计主要利用单片机AT89C51 芯片和以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20相结合来实现装置周围温度的采集,其中以单片机AT89C51 芯片为核心,辅以温度传感器DS18B20和LED数码管及必要的外围电路,构成一个结构简单、测温准确、具有一定控制功能的温度监视警报装系统。
功能要求:
添加温度报警功能,通过4个按键来设置温度的上下限值,当用DS18B20
测得的温度不在所设置的温度范围内,蜂鸣器开始鸣报。
二、设计原理
2.1 主要硬件介绍
2.1.1 DS18B20数字温度传感器
DS18B20 数字温度传感器提供9~12 位摄氏温度的测量,拥有非易失性用户可编程最高与最低触发点告警功能。DS18B20 通过单总线实现通信,单总线通常是DS18B20连接到中央微控制器的一条数据线(和地)。它能够感应温度的范围为-55℃~+125℃,在-10℃~+85℃的测量的精度是±0.5℃,而且DS18B20 可以直接从数据线上获取供电(寄生电源)而不需要一个额外的外部电源。
DS18B20 使用DALLAS 独有的单总线(1—wire)协议使得总线通信只需要一根控制线,控制线需要一个较小的上拉电阻,因为所有的期间都是通过三态或开路端口连接在总线上的(DS18B20 是这种情况)。在这种总线系统中,微控制器(主器件)识别和寻址挂接在总线上具有独特64 位序列号的器件。因为每个器件拥有独特的序列号,因此挂接到总线上的器件在理论上是不受限制的,单总线(1-wire)协议包括指令的详细解释和“时隙”。这个数据表包含在单总线系统(1-WIRE BUS SYSTEM)部分。DS18B20 的另外一个特征是能够在没有外部供电的情况下工作。当总线为高的时候,电源有上拉电阻通过DQ 引脚提供,高总线信号给内部电容(Cpp)充电,这就使得总线为的时候给器件提供电源,这种从单总线上移除电源的方法跟寄生电源有关,作为一种选择,DS8B20 也可以采用引脚VDD 通过外部电源给器件供电。
DS18B20 引脚定义:
(1) GND为电源地;
(2) DQ为数字信号输入/输出端;
(3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地)
图2.1.1 DS18B20 引脚排列图
DS18B20温度测量
DS18B20 测温原理如图2.1.2所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2 的脉冲输入。计数器1 和温度寄存器被预置在-55℃所对应的一个基数值。计数器1 对低温度系数晶振产生的脉冲信号进行减法计数,当
计数器1 的预置值减到0 时,温度
寄存器的值将加1,计数器1 的预
置将重新被装入,计数器1 重新开
始对低温度系数晶振产生的脉冲信
号进行计数,如此循环直到计数器
2 计数到0 时,停止温度寄存器值
的累加,此时温度寄存器中的数值
即为所测温度。图2.1.2 中的斜率
累加器用于补偿和修正测温过程中
的非线性,其输出用于修正计数器
图2.1.2 DS18B20 测温原理框图
1 的预置值。
DS18B20工作时序
DS18B20需要严格的单总线协议以确保数据的完整性。协议包括集中单总线信号类型:复位脉冲、存在脉冲、写0、写1、读0 和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。和DS18B20间的任何通讯都需要以初始化序列开始。一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX)。单总线由5K上拉电阻拉到高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15-60us,然后发出一个由60-240us低电平信号构成的存在脉冲DS18B20的数据读写是通过时序处理位来确认信息交换的。有两种写时序:写1时序和写0时序。总线控制器通过写1时序写逻辑1到DS18B20,写0时序写逻辑0到DS18B20。所有写时序必须最少持续60us,包括两个写周期之间至少1us的恢复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始。总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开始后的15us释放总线。当总线被释放的时候,5K的上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。总线控制器初始化写时序后,DS18B20在一个15us到60us的窗口内对I/O线采样。如果线上是高电平,就是写1。如果线上是低电平,就是写0。总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令[BEh]或读电源模式指令[B4H]后必须立刻开始读时序,DS18B20可以提供请求信息。除此之外,总线控制器在发出发送温度转换指令[44h]或召回EEPROM指令[B8h]之后读时序。所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放在总线控制器发出读时序后,DS18B20 通过拉高或拉低总线上来传输1或0。当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据在读时序的下降沿出现后15us 内有效。因