资源描述
通信课程设计计划
G14组 王军 饶磊 王健
1 设计题目
数字温度计设计
2.总体设计方案
2.1数字温度计设计方案论证
2.1.1方案一
因为本设计是测温电路, 能够使用热敏电阻之类器件利用其感温效应, 进行A/D转换后, 就能够用单片机进行数据处理, 在显示电路上, 就能够将被测温度显示出来, 这种设计需要用到A/D转换电路, 感温电路比较麻烦。
2.1.2 方案二
进而考虑到用温度传感器, 在单片机电路设计中, 大多都是使用传感器, 所以这是非常轻易想到, 所以能够采取一只温度传感器DS18B20, 此传感器, 能够很轻易直接读取被测温度值, 进行转换, 就能够满足设计要求。
依据单片机课程设计要求与学习目, 学习A/D转换器应用与实现和单片机接口连接, 故采取方案一来实现数字温度计控制。
2.2方案一总体设计框图
温度计电路设计总体设计方框图如图1所表示, 控制器采取单片机AT89S51, A/D转换器采取0809传输, 温度传感器采取DS18B20, 用3位LED数码管以串口传送数据实现温度显示, 并用蜂鸣报警器来监视温度值不超出量程范围。
主 控 制 器
LED显 示
温 度 传 感 器
单片机复位
时钟振荡
报警点按键调整
图1 总体设计方框图
2.2.1 主控制器
单片机AT89S51含有低电压供电和体积小等特点, 四个端口只需要两个口就能满足电路系统设计需要, 很适合便携手持式产品设计使用系统可用二节电池供电。
2.2.2 显示电路
显示电路采取3位共阳LED数码管, 从P3口RXD,TXD串口输出段码。
2.2.3温度传感器
DS18B20温度传感器是美国DALLAS半导体企业最新推出一个改善型智能温度传感器, 与传统热敏电阻等测温元件相比, 它能直接读出被测温度, 而且可依据实际要求经过简单编程实现9~12位数字值读数方法。DS18B20性能特点以下:
(1)独特单线接口仅需要一个端口引脚进行通信;
(2)多个DS18B20能够并联在惟一三线上, 实现多点组网功效;
(3)无须外部器件;
(4)可经过数据线供电, 电压范围为3.0~5.5V;
(5)零待机功耗;
(6)温度以9或12位数字;
(7)用户可定义报警设置;
(8)报警搜索命令识别并标志超出程序限定温度(温度报警条件)器件;
(9)负电压特征, 电源极性接反时, 温度计不会因发烧而烧毁, 但不能正常工作;
DS18B20采取3脚PR-35封装或8脚SOIC封装, 其内部结构框图如图2所表示。
C
64
位
ROM
和
单
线
接
口
高速缓存
存放器与控制逻辑
温度传感器
高温触发器TH
低温触发器TL
配置寄存器
8位CRC发生器
Vdd
I/O
图2 DS18B20内部结构
64位ROM结构开始8位是产品类型编号, 接着是每个器件惟一序号, 共有48位, 最终8位是前面56位CRC检验码, 这也是多个DS18B20能够采取一线进行通信原因。温度报警触发器TH和TL, 可经过软件写入户报警上下限。
DS18B20温度传感器内部存放器还包含一个高速暂存RAM和一个非易失性可电擦除EERAM。高速暂存RAM结构为8字节存放器, 结构如图3所表示。头2个字节包含测得温度信息, 第3和第4字节TH和TL拷贝, 是易失, 每次上电复位时被刷新。第5个字节, 为配置寄存器, 它内容用于确定温度值数字转换分辨率。DS18B20工作时寄存器中分辨率转换为对应精度温度数值。该字节各位定义如图3所表示。低5位一直为1, TM是工作模式位, 用于设置DS18B20在工作模式还是在测试模式, DS18B20出厂时该位被设置为0, 用户要去改动, R1和R0决定温度转换精度位数, 来设置分辨率。
由表1可见, DS18B20温度转换时间比较长, 而且分辨率越高, 所需要温度数据转换时间越长。所以, 在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM第6、 7、 8字节保留未用, 表现为全逻辑1。第9字节读出前面全部8字节CRC码, 可用来检验数据, 从而确保通信数据正确性。
当DS18B20接收到温度转换命令后, 开始开启转换。转换完成后温度值就以16位带符号扩展二进制补码形式存放在高速暂存存放器第1、 2字节。单片机能够经过单线接口读出该数据, 读数据时低位在先, 高位在后, 数据格式以0.0625℃/LSB形式表示。
当符号位S=0时, 表示测得温度值为正值, 能够直接将二进制位转换为十进制; 当符号位S=1时, 表示测得温度值为负值, 要先将补码变成原码, 再计算十进制数值。表2是一部分温度值对应二进制温度数据。
表1 DS18B20温度转换时间表
DS18B20完成温度转换后, 就把测得温度值与RAM中TH、 TL字节内容作比较。若T>TH或T<TL, 则将该器件内报警标志位置位, 并对主机发出报警搜索命令作出响应。所以, 可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM最高有效字节中存放有循环冗余检验码(CRC)。主机ROM前56位来计算CRC值, 并和存入DS18B20CRC值作比较, 以判定主机收到ROM数据是否正确。
DS18B20测温原理是这这么,器件中低温度系数晶振振荡频率受温度影响很小, 用于产生固定频率脉冲信号送给减法计数器1; 高温度系数晶振随温度改变其振荡频率显著改变, 所产生信号作为减法计数器2脉冲输入。器件中还有一个计数门, 当计数门打开时, DS18B20就对低温度系数振荡器产生时钟脉冲进行计数进而完成温度测量。计数门开启时间由高温度系数振荡器来决定, 每次测量前, 首先将-55℃所对应一个基数分别置入减法计数器1、 温度寄存器中, 计数器1和温度寄存器被预置在-55℃所对应一个基数值。
减法计数器1对低温度系数晶振产生脉冲信号进行减法计数, 当减法计数器1预置值减到0时, 温度寄存器值将加1, 减法计数器1预置将重新被装入, 减法计数器1重新开始对低温度系数晶振产生脉冲信号进行计数, 如此循环直到减法计数器计数到0时, 停止温度寄存器累加, 此时温度寄存器中数值就是所测温度值。其输出用于修正减法计数器预置值, 只要计数器门仍未关闭就反复上述过程, 直到温度寄存器值大致被测温度值。
另外, 因为DS18B20单线通信功效是分时完成, 它有严格时隙概念, 所以读写时序很关键。系统对DS18B20多种操作按协议进行。操作协议为: 初使化DS18B20(发复位脉冲)→发ROM功效命令→发存放器操作命令→处理数据。
图4 DS18B20与单片机接口电路
2.3 DS18B20温度传感器与单片机接口电路
DS18B20能够采取两种方法供电, 一个是采取电源供电方法, 此时DS18B201脚接地, 2脚作为信号线, 3脚接电源。另一个是寄生电源供电方法, 如图4 所表示单片机端口接单线总线, 为确保在有效DS18B20时钟周期内提供足够电流, 可用一个MOSFET管来完成对总线上拉。
当DS18B20处于写存放器操作和温度A/D转换操作时, 总线上必需有强上拉, 上拉开启时间最大为10us。采取寄生电源供电方法时VDD端接地。
2.4 系统整体硬件电路
2.4.1 主板电路
系统整体硬件电路包含, 传感器数据采集电路, 温度显示电路, 上下限报警调整电路, 单片机主板电路, A/D转换器等,
(1)单片机8051
(2)直流稳压电源
按设计要求需加直流稳压电源用来对温度控制系统进行供电。
如图:
图5.1 直流稳压电源
(3)A/D转换部分
A/D转换部分采取ADC0809, A/D转换器0809任务是将模拟量转换成数字量,它是模拟信号和数字仪器接口。
2.4.2 显示电路
显示电路是使用串口显示, 这种显示最大优点就是使用口资源比较少, 只用p3口RXD,和TXD,串口发送和接收, 四只数码管采取74LS164右移寄存器驱动, 显示比较清楚。
2.5系统软件算法分析
系统程序关键包含主程序, 读出温度子程序, 温度转换命令子程序, 计算温度子程序, 显示数据刷新子程序等。
2.5.1主程序
初始化
调用显示子程序
1S到?
首次上电
读出温度值温度计算处理显示数据刷新
发温度转换开始命令
N
Y
N
Y
主程序关键功效是负责温度实时显示、 读出并处理DS18B20测量目前温度值, 温度测量每1s进行一次。这么能够在一秒之内测量一次被测温度, 其程序步骤见图7所表示。
2.6读出温度子程序
2.7温度转换命令子程序
2.8 计算温度子程序
2.9 显示数据刷新子程序
3.设计器件
单片机AT89S51, A/D转换器ADC0809, 温度传感器DS18B20, 3位LED数码管, 蜂鸣报警器, 二节电池, 直流稳压电源, 单片机8051, 74LS164寄存器驱动, 编程软件, 电容、 三极管、 电阻、 电线若干。
展开阅读全文