基于单片机下的数字温度计(ds18b20)内容摘要:

器中的数值即为 所测温度值。 图中的斜率累加器用于补偿和修正测温过程中的非线性其输出,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就 是 DS18B20 的测温原理。 9 DS18B20 测温原理图 图 3 显示器选择 LED 数码管显示器 : LED数码管显示器按用途可分为通用 7段 LED 数码管显示器和专用 LED 数码管显示器,试验中用通用 7段 LED 数码管显示器。 数码管由 8 个 LED(发光二极管) a、 b、 c、 d、 e、 f、 g 构成,按结构可分为共阴极和共阳极两种。 本设计中使用共阳极数码管,共阳极数码管的 8个 LED的阳极连接在一起,通常,公共阳极接高电平(一般接电源),其它引脚接 LED 驱动电路输出端。 当某个 LED 驱动电路的输出端为低电平时,则该端所连接的 LED 导通并点亮。 根据发光字段的不同组合可以显示出各种数字或字符。 要使 LED 数码管显示出相应的数字或字符,必须向其数据口输入相应的字型码。 LED数码管显示器的外形结构 图 4 10 本设计由 DS18B20 温度传感器芯片测量当前的温度并将转换后的结果送入单片机。 然后通过 A89S51 单片机驱动两位共阳极 7 段 LED 数码管显示测量温度值。 如附录中本设计硬件电路图所示,本电路主要有 DS18B20 温度传感器芯片,两位共阳极数码管, AT89S51 单片机及相应外围电路组成。 其中 DS18B20 采用“一线制”与单片机相 连。 、温度检测电路 DS18B20 最大的特点是单总线数据传输方式, DS18B20 的数据 I/O 均由同一条线来完成。 DS18B20 的电源供电方式有 2 种 : 外部供电方式和寄生电源方式。 工作于寄生电源方式时 , VDD 和 GND 均接地 , 他在需要远程温度探测和空间受限的场合特别有用 , 原理是当 1 W ire 总线的信号线 DQ 为高电平时 , 窃取信号能量给DS18B20 供电 , 同时一部分能量给内部电容充电 , 当 DQ 为低电平时释放能量为DS18B20 供电。 但寄生电源方式需要强上拉电路 , 软件控制变 得复杂 (特别是在完成温度转换和拷贝数据到 E2PROM 时 ) , 同时芯片的性能也有所降低。 外部电源供电方式是 DS18B20 最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。 因此本设计采用外部供电方式。 如下图所示: 温度传感器 DS18B20 的测量范围为 55℃~ +125℃,在 10℃~ +85℃时精度为177。 ℃。 因为本设计只用于测量环境温度,所以只显示 0℃~ +85℃。 、显示电路 本设计显示电路采用两位共阳极 LED数 码管来显示测量得到的温度值。 LED 数码管能在低电压下工作,而且体积小、重量轻、使用寿命长,因次本设计选用此数码管作为显示器件。 DS18B20 +5V +5V 11 一个 LED 数码管只能显示一位的字符,如果字符位数不止一位,可以用几个数码管组成,但要控制多位的显示电路需要有字段控制和字位控制,字段控制是指控制所要显示的字符是什么,控制电路应将字符的七段码通过输出口连接到 LED的 a~ g引脚,是某些段点亮,某些段处于熄灭状态。 字位控制是指控制在多位显示器中,哪几位发光或那几位不发光,字位控制则需要通过字位码作用于 LED 数码管的公共引脚,是某一 位或某几位的数码管可以发光。 数码管显示电路分为动态显示和静态显示。 静态显示方式是指每一个数码管的字段控制是独立的,每一个数码管都需要配置一个 8 位输出口来输出该字位的七段码。 因此需要显示多位时需要多个输出口,通常片内并口不够用,需要在片外扩展。 动态显示又称为扫描显示方式,也就是在某一时刻只能让一个字位处于选通状态,其他字位一律断开,同时在字段线上发出该位要显示的字段码,这样在某一时刻某一位数码管就会 被点亮,并显示出相应的字符。 下一时刻改变所显示的字位和字段码,点亮另一个数码管,显示另一个字符。 绕后一次扫描轮流点亮其他数码管,只要扫描速度快,利用人眼的视觉残留效应,会使人感觉到几位数码管都在稳定的显示。 本设计采用数码管动态显示,电路如下图所示: 显示部分电路 图 6 12 图中由单片机 P1口串接 74HC245 驱动两位共阳极数码管,上拉电阻排为 10K。 由 和 通过 PNP 型三极管 Q1,Q2 驱动其字位。 三极管发射极接高电平,当 为低电平时使三极管导通选通数码管的某一位。 、其它外围电路 复位电路:在单片机的 RST引脚引入高电平并保持 2个机器周期时,单片机内部就执行复位操作。 实际应用中,复位操作有两种形式:一种是上电复位,另一种是上电与按键均有效的复位。 如下图所示 上电复位要求接通电源后,单片机自动实现复位操作。 上电瞬间 RST引脚获得高电平,随着电容的充电, RST引脚的高电平逐渐下降。 只要 RST 引脚保持两个机器周期的高电平单片机就可以进行复位操作。 该电路参数为:晶振为 12MHz 时,电容为10μ F,电阻为。 晶振为 6MHz 时,电容为 22μ F,电阻为 1 KΩ。 本设 计采用上电复位电路,电路参数为电容 10μ F,电阻 .。 晶振电路:单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。 本设计采用内部时钟方式,在单片机内部有一震荡电路,只要在单片机的 XTAL1和 XTAL2 脚外接石英晶体(简称晶振),就构成了自己震荡器并在单片机内部产生时钟脉冲信号。 13 图中电容器的作用是稳定频率和快速起振,电容值在 5~ 30pF,典型值为 30pF。 晶振 CYS 的震荡频率范围在 ~ 12MHz间选择,典型值为 12MHz 和 6MHz。 本设计采用 12MHz 晶振,电容值为 20 pF。 在电路总体设计中, EA\Vpp 脚用于是从外部程序存储器取指还是从内部程序存储器取指的选择信号。 当 EA\Vpp 接高电平时,先从片内程序存储器读取指令,读完4KB 后,自动改为片外取指。 若 EA\Vpp 接低电平,则所有指令均从片外程序存储器读取。 ALE 脚用于输出允许地址所存信号。 PSEN脚用于外部程序存储器选通信号,在对外部程序存储器取指操作时此引脚置低电平有效。 在执行片内程序存储器取指时PESN 脚无效。 本设计无片外程序存储器扩展,所以将 EA\V pp 脚接高电平, ALE 及PSEN脚悬空。 程序设计 用汇编语言完成对设计的软件编程,程序开始首先对温度传感器 DS18B20 进行复位,检测是否正常工作;接着读取温度数据,主机发出 CCH 指令与在线的 DS18B20联系,接着向 DS18B20 发出温度 A/D 转换 44H指令,再发出温度寄存器的温度值 BEH指令,并反复调用复位,写入及读取数据子程序,之后再经过数据转换,由数码管显示出来,不断循环。 、程序流程图 C1 C2 2 14 总程序流程图 图 9 、程序流程图中内容的说明及部分程序代码 ①对 DS18B20 进行复位,写入和读取温度数据( 在温度传感器 DS18B20 内部完成,并实现对温度信息的采集);读取温度流程如下:复位→发 CCH 命令(跳过 ROM)→发 44H命令→延时 1s→复位→发 CCH 命令(跳过 ROM)→发 BEH 命令(读内部 RAM 中 9字节内容)→连接从总线上读出 2个字节的数据(温度数据的低 8 位和高 8位)→结束 部分程序代码: ( 1) DS18B20 的复位子程序部分: RESET_1820: SETB DQ。 NOP NOP CLR DQ ;主机发出复位低脉冲 MOV R1,3。 DLY: MOV R0,107。 DJNZ R0,$。 DJNZ R1,DLY。 ① 对温度传感器 进行设置,读取温度 ②数据转化。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。