1、 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 目 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 录 凌阳, 拇指 凌阳 摘要 1凌 阳, 拇指 凌阳 关键词 1凌 阳, 拇指 凌阳 ABSTRACT 1凌 阳, 拇指 凌阳 KEY 凌阳, 拇指 凌阳 WORDS 1凌 阳, 拇指 凌阳 1 温度测量系统器件简介 1凌 阳, 拇指 凌阳 1 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 MCS-52 单片机简介 1凌阳, 拇指 凌阳 1 2 温度传感器( DS18B20) 2凌阳, 拇指 凌阳 1 3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 三端集成稳压芯片 H7805 3凌阳, 拇指 凌阳 1 4 凌阳,
2、 拇指 凌阳 凌阳, 拇指 凌阳 74HC138 芯片 3凌阳, 拇指 凌阳 1 5 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 数码管 7SEG-MPX8-CC-BLUE 3凌阳, 拇指 凌阳 1 6 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 其他 4凌阳, 拇指 凌阳 系统的硬件设计 4凌 阳, 拇指 凌阳 2 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 温度测量系统硬件电路连接图 4凌阳, 拇指 凌阳 2 2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 各电路模块分析 5凌阳, 拇指 凌阳 2 2 1 凌阳, 拇指 凌阳 电源电路 5凌阳, 拇指 凌阳 2 2 2 凌阳, 拇指 凌阳 单片机电路
3、5凌阳, 拇指 凌阳 2 2 3 凌阳, 拇指 凌阳 温度传感器 DS18B20 电路 6凌阳, 拇指 凌阳 2 2 4 凌阳, 拇指 凌阳 数码管显示电路 7凌阳, 拇指 凌阳 2 2 5 凌阳, 拇指 凌阳 译码电路部分 7凌阳, 拇指 凌阳 系统的软件设计 7凌 阳, 拇指 凌阳 3 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 温度测量系统软件流程图 7凌阳, 拇指 凌阳 3 2 温度测量系统各子模块 8凌阳, 拇指 凌阳 3 2 1 凌阳, 拇指 凌阳 定时器设置部分 8凌阳, 拇指 凌阳 3 2 2 凌阳, 拇指 凌阳 中断部分 8凌阳, 拇指 凌阳 3 2 3 凌阳, 拇指凌阳 读
4、取 DS18B20 温度部分 8凌阳, 拇指 凌阳 3 2 4 凌阳, 拇指 凌阳 温度译码输出 10凌阳, 拇指 凌阳 结论与设计体会 10凌 阳, 拇指 凌阳 4 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 结论 10凌阳, 拇指 凌阳 4 2 展望 11凌阳, 拇指 凌阳 致谢 12凌阳, 拇指 凌阳 参考 文献: 12凌阳, 拇指 凌阳 附录 A 凌阳, 拇指 凌阳温度测量系统单片机 C程序 12凌 阳, 拇指 凌阳 1 基于 89C52 单片机的温度测量系统设计 凌阳, 拇指 凌阳 湖北师范学院 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 机电与控制工程学院 凌阳, 拇指 凌阳 凌阳,
5、拇指 凌阳 李春波 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 指导教师 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 摘要 : 对温度测量进行讨论 , 拇指 并对温度传感器 DS18B20 的结构和使用方法进行说明 , 拇指 温度测量系统的设计分为硬件电路设计和软件设计两部分 , 拇指 其中硬件部分使用 Proteus 进行搭建 , 拇指 在构成单片机最小系统的基础上进行功能扩展 , 拇指 并在其上进行电路的连接和仿真 , 拇指 实现系统的温度测量功能 , 拇指 软件部分则是用 Proteus 和 Keil 联调的方式最终完
6、成软硬件的设计过程 , 拇指 在仿真的过程中 , 拇指 可以控制温度传感器DS18B20 的温度值 , 拇指 模拟真实条 件下 , 拇指 温度的测取工作 。 食指 系统所显示的结果最终使用数码管进行显示 ,拇指 从而完成整个系统的设计过程 。 食指 凌阳, 拇指 凌阳 关键词 : 温度 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 传感器 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 数码管 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 The 凌阳, 拇指 凌阳 Design 凌阳, 拇指 凌阳 Of 凌阳, 拇指 凌阳 Temperature 凌阳, 拇指 凌阳 Measuring 凌阳, 拇指 凌阳 Sy
7、stem 凌阳, 拇指 凌阳 Based 凌阳, 拇指 凌阳 On 凌阳, 拇指 凌阳 MCU 凌阳, 拇指 凌阳89C52 凌阳, 拇指 凌阳 Student 凌阳, 拇指 凌阳 majoring 凌阳, 拇指 凌阳 in 凌阳, 拇指 凌阳 Electrical 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Sensor 凌阳, 拇指 凌阳 ; 凌阳, 拇指 凌阳 Numerical 凌阳, 拇指 凌阳 code 凌阳, 拇指 凌阳 tubes 凌阳, 拇指 凌阳 引言 随着社会经济的发展 , 拇指 尤其是工业控制方面 , 拇指 有许多场合要求无人值守并且环境条件恶劣 , 拇指 为此对于环境的监
8、控就要求其能够自动完成并且有一定的抗干扰能力 , 拇指 传统的模拟信号远距离温度测量系统中 , 拇指 需要很好的解决引线误差补偿、多点测量切换误差和放大电路零点漂移误差等技术 问题 , 拇指 才能达到较高的测量精度 , 拇指 而以单片机为核心的数字测量系统则能克服这些问题 , 拇指 以简单电路的连接方式 , 拇指 实现温度的高精度测量 , 拇指 并且最终的测量结果可以使用 PC 机进行处理 , 拇指 下面将进入温度测量系统的设计 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1 温度测量系统器件简介 凌阳, 拇指 凌阳 1 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 M
9、CS-52 单片机 凌阳, 拇指 凌阳 按照功能划分 , 拇指 它由微处理器( CPU)、数据存储器( RAM)、程序存储器( ROM/EPROM)、并行 I/O 口( P0 口、 P1口、 P2 口、 P3 口)、串行口、定时器 /计数器、中断系统及特殊功能寄存器( SFR)组成 。 食指 它们都是通过片内单一总线连接而成 , 拇指 其基本结构依旧是 CPU 加上外围芯片的传统结构模式 。 食指 但对各种功能部件的控制是采用特殊功能寄存器( SFR-Special 凌阳, 拇指 凌阳 Function 凌阳, 拇指 凌阳 Register)的集中控制方式 。 食指 凌阳, 拇指 凌阳 2 凌
10、阳, 拇指 凌阳 1 2 温度传感器( DS18B20) 凌阳, 拇指 凌阳 美国 DALLAS 半导体公司数字温度传感器的 DS1820 是世界上第一片支持“一线总线”的温度传感器 , 拇指 “一线总线”的数字方式传输 , 拇指 大大提高了系统的抗干扰能力 , 拇指 适合于恶劣条件下温度的测量 , 拇指 其内部使用了 on-board 专利技术 。 食指 凌阳, 拇指 凌阳 新一代的 DS18B20 体积更小、更经济、更灵活 , 拇指 充分发挥了“一线总线”的优点 。 食指其测温范围为 -55 +125 , 拇指 在 -10 +85范围内 , 拇指 精度为 0.5 , 拇指 最差为 2 ,
11、拇指 支持3V5.5V 的电压范围 , 拇指 分辨率( 912 位)可由用户设置 。 食指 凌阳, 拇指 凌阳 引脚如图 1.2 所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GND:接地 凌阳, 拇指 凌阳 DQ:总线数据传输端 凌阳, 拇指 凌阳 Vcc:电源输入 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 XTAL1 XTAL2 8 8 微处理器 (运算器) (控制器) B 数据存储器 RAM P0 P2 P1 定时器 /计数器 P3 程序存储器 串行口 中断 系统 特殊功能 寄存器 ( SFR) ROM/EPROM 8
12、8 ALE PSEN EA RST 图 1.1 单片机的片内结构 图 1.2 DS18B20 引脚图 3 图 1. H7805 引脚图 凌阳, 拇指 凌阳 图 1.3 凌阳, 拇指 凌阳 DS18B20 的基本测温原理 凌阳, 拇指 凌阳 低温度系数晶振的振荡频率受温度的影响很小 , 拇指 用于产生固定频率的脉冲信号送计数器 1,拇指 高温度系数晶振随温度变换其振荡频率明显改变 , 拇指 产生的信号作为计数器 2 的脉冲输入 ,拇指计数器 1 和温度寄存器被预置在 -55所对应的一个基数值 , 拇指 计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数 , 拇指 当计数器 1 的预置值减到
13、0 时 , 拇指 温度寄存器的值加 1 计数器1 的预置被重新装入 , 拇指 计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数 , 拇指 如此循环直到计数器 2 计数到 0 时 , 拇指 停止温度寄存器累加 , 拇指 此时温度寄存器中的数值即为所测温度值 。 食指 凌阳, 拇指 凌阳 只要将温度寄存器的值写入 EEPROM, 拇指 读取 EEPROM 的数值即完成温度测量 。 食指 凌阳, 拇指 凌阳 1 3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳三端集成稳压芯片 H7805 凌阳, 拇指 凌阳 H7805 为三端正稳压芯片 , 拇指 能提供固定 5V 电压输出 , 拇指 内含过流、
14、过热和过载保护电路 。 食指带散热片时 , 拇指 输出电流可达 1A, 拇指 虽然是固定稳压芯片 , 拇指 但使用外接元件 , 拇指 可以获得不同的电压和电流 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 外观图和引脚如图 1.4 所示 凌阳, 拇指 凌阳 1 脚:电压输入端 凌阳, 拇指 凌阳 2 脚:接地端 凌阳, 拇指 凌阳 3 脚:稳定电压输出端 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1 4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 74HC138 芯片 凌阳, 拇指 凌阳 74HC138 为一款高速 CMOS 器件 , 拇指 引脚兼容 低功耗肖特基 TTL( LSTTL)系列 ,
15、 拇指 由其真值表可以看出其逻辑为 反相输出 , 拇指 可以将 BCD 码转换成单引脚的低电平输出 。 食指 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 74HC138 引脚如图 1.5, 拇指 凌阳, 拇指 凌阳 A、 B、 C: BCD 码输入端 凌 阳, 拇指 凌阳 E1:使能端 , 拇指 高电平有效 凌阳, 拇指 凌阳 E2、 E3:使能端 , 拇指 低电平有效 凌阳, 拇指 凌阳 Y0Y7:输出端 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1 5 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 数码管 7SEG-MPX8-CC-BLUE 凌阳, 拇指 凌阳 从电路上 , 拇指
16、 数码管又分为共阴和共阳两种 , 拇指 8 个发光二极管的阳极都连接在一起的 , 拇指 称之低温度系数晶振 高温度系数晶振 =0 比较 计数器 1 预置 计数器 2 温度寄存器 斜率累加器 预置 =0 LSB 置位/清除 加 1 停止 图 1. 74HC138 引脚图 4 为共阳极 LED 数码管 , 拇指 8 个发光二极管的阴极都连接在一起的 , 拇指 称之为共阴极 LED 数码管 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 1.5 凌阳, 拇指 凌阳 数码管 7SEG-MPX8-CC-BLUE凌阳, 拇指 凌阳 A、 B、 C、 D、 E、 F、 G、 DP
17、分别接数码管的八段 , 拇指 1、 2、 3、 4、 5、 6、 7、 8 分别控制八个数码管的点亮 。 食指 凌阳, 拇指 凌阳 1 6 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 其他 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 电路中的电容 , 拇指 分陶片电容和电解电容 , 拇指 其中陶片电容不分极性 , 拇指 电解电容有正负极之分 。食指 凌阳, 拇指 凌阳 电阻、二极管根据具体要求选择相应的型号和大小 。 食指 凌阳, 拇指 凌阳 变压线圈可以选定相应的匝数比 。 食指 凌阳, 拇指 凌阳 晶振根据工程上的应用 , 拇指 较多选用 12M 和 11.0592M, 拇指 不妨选 12M。 食指
18、 凌阳, 拇指 凌阳 系统的硬件设计 凌阳, 拇指 凌阳 2 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 温度测量系统硬件电路连接图 凌阳, 拇指 凌阳 图 2.1 为电源电路 的设计和各个器件的连接图 , 拇指 图 2.2 为系统电路设计连接图 , 拇指 由电源电路和系统电路搭建起温度测量系统的硬件部分 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 2.1 凌阳, 拇指 凌阳 电源电路的硬件设计 凌阳, 拇指 凌阳 5 凌阳, 拇指 凌阳 图 2.2 凌阳, 拇指 凌阳 温度测量系统硬件连接图 凌阳, 拇指 凌阳 2 2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 各
19、电路模块分析 凌阳, 拇指 凌阳 2 2 1 凌阳, 拇指 凌阳 电源电路 凌阳, 拇指 凌阳 单片机、温度传感器、数码管都支持 5V 电源工作 , 拇指 因此电源只需要单一 5V 供电即可 , 拇指然 后用芯片 7805 将直流电压降到稳定到 5V, 拇指 特别的芯片 7805 的输入电压应比输出电压高4-7V, 拇指 所以最好选用输出电压 912V 的变压器 。 食指 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 如图 1, 拇指 220V 的交流电通过变压器变压 , 拇指 在通过整流桥和滤波电容 , 拇指 可以变为特定数值的直流电(大于 5V) , 拇指 通过 7805 芯片、 C2(低频滤波电
20、容)和 C2(高频滤波电容) , 拇指 得到稳定的 5V 直流电 , 拇指 满足单片机、温度传感器和数码管的使用 。 食指 凌阳, 拇指 凌阳 2 2 2 凌阳, 拇指 凌阳 单片机电路 凌阳, 拇指 凌阳 要使单片机工作 起来 , 拇指 需要给单片机接入复位电路和外接晶振 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 2.3 凌阳, 拇指 凌阳 上电复位电路 凌阳, 拇指 凌阳 当 AT89C52 上电时 , 拇指 需要对其进行一次复位操作 。 食指 复位操作可以将 AT89C52 置成初始一个瞬时高电平来完成的 , 拇指 电路如图 2.3 所示 。 食指 凌阳,
21、 拇指 凌阳 上电瞬间 , 拇指 电流产生一个突发的向上尖峰脉冲 , 拇指 电流通过 C1 电容到达 AT89C52 的复位端口 RST 对其进行复位 。 食指 尖峰过后 , 拇指 电流平稳 , 拇指 电容 C1 阻止电流通过 , 拇指 避免反复复位 。 食指6 电阻 R1 用于给 C1 放电 , 拇指 将 9 脚的电位拉低 , 拇指 防止 RST 端口上持续高电平 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 2.4 凌阳, 拇指 凌阳 晶振电路 凌阳, 拇指 凌阳 给 AT89C52 提供一定的时钟频率 , 拇指 它才能正常工作 , 拇指 如图 2.4。 食指
22、凌阳, 拇指 凌阳 2 2 3 凌阳, 拇指 凌阳 温度传感器 DS18B20 电路 凌阳, 拇指 凌阳 DS18B20 数字传感器是一个 3 脚的芯片 , 拇指 1 脚接地 , 拇指 2 脚为数据输入输出 , 拇指 3 脚为可选的VCC 电源 。 食指 通过一个单线接口发送或接收数据 , 拇指 因此单片机与 DS18B20 仅需 一条数据连接线(除了地线) 。 食指 凌阳, 拇指 凌阳 DS18B20 应用电路有下面几种: 凌阳, 拇指 凌阳 ( 1) 寄生电源工作方式 。 食指 凌阳, 拇指 凌阳 优点: 1)进行远距离测温时 , 拇指 无需本地电源 凌阳, 拇指 凌阳 2)可以在没有常规
23、电源的条件下读取 ROM 凌阳, 拇指 凌阳 3)电路简洁 , 拇指 仅用一个 I/O 口 凌阳, 拇指 凌阳 缺点:多个温度传感器挂在一个 I/O 口上进行多点测温时 , 拇指 4.7K 上拉电阻无法提供足够的能量 , 拇指 造成无法转换温度或误差较大 。 食指 凌阳, 拇指 凌阳 因此这种电路只适合于单一温度传感器测温下使用 , 拇指 不适用采 用电池供电的系统中 , 拇指 且电源 VCC 必须保证在 5V, 拇指 电源电压下降时 , 拇指 寄生电源汲取的能量降低 , 拇指 使误差变大 。 食指 凌阳, 拇指 凌阳 ( 2) 寄生电源强上拉供电方式 。 食指 凌阳, 拇指 凌阳 改进的寄生
24、电源工作方式 , 拇指 为使 DS18B20 在动态转换周期中获得足够的电流供应 , 拇指 进行温度转换或拷贝到 E2 存储器时 , 拇指 用 MOSFET 把 I/O 线直接拉到 VCC 就可满足电流的供应 ,拇指 在发出任何涉及到拷贝到 E2 存储器或启动温度转换的指令后 , 拇指 必须在最多 10us 内把 I/O线转换到强上拉状态 , 拇指 强上拉方式可以解决电流供应不 足的问题 , 拇指 因此适用于多点测温 ,拇指 缺点是多占用一个 I/O 口进行强上拉切换 。 食指 凌阳, 拇指 凌阳 ( 3) 外部电源供电方式 。 食指 凌阳, 拇指 凌阳 这种方式是 DS18B20 的最佳工作
25、方式 , 拇指 工作温度可靠 , 拇指 抗干扰能力强 , 拇指 电路也简单 , 拇指 并且可以开发出稳定可靠的多点温度监控系统 。 食指 凌阳, 拇指 凌阳 7 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 2.5 凌阳, 拇指 凌阳 外部电源供电方式 凌阳, 拇指 凌阳 综合比较 , 拇指 采用图 2.5 所示的外部电源供电方式应用电路进行设计 。 食指 凌阳, 拇指 凌阳 2 2 4 凌阳, 拇指 凌阳 数码管显示 电路 凌阳, 拇指 凌阳 单片机驱动 LED 数码管的方法很多 , 拇指 按照显示方法分为静态显示和动态显示 。 食指 凌阳, 拇指 凌阳 静态显示是指显示驱动电路具有输出锁存功
26、能 , 拇指 要显示的数据送出后不再控制 LED, 拇指直到下次直到下次显示时再传送一次新的显示数据 。 食指 静态显示的数据稳定 , 拇指 占用的 CPU 时间少 。 食指 动态显示要 CPU 时刻对显示器件进行数据刷新 , 拇指 显示数据有闪烁感 , 拇指 占用 CPU 时间多 。 食指 凌阳, 拇指 凌阳 两种方式各有利弊:静态显示虽然数据稳定 , 拇指 占用很少的 CPU 时间 , 拇指 但是每个显示单元都需要单独的锁存驱 动电路 , 拇指 使用的电路硬件较多 , 拇指 动态显示虽然有闪烁感 , 拇指 占用 CPU时间多 , 拇指 但使用的硬件少 , 拇指 能节省线路板空间 。 食指
27、凌阳, 拇指 凌阳 动态扫描显示接口是单片机中应用最广泛的一种显示方式 , 拇指 其接口电路是把所有的LED 数码管的 8 个笔画段 ag、 dp 的同名端连在一起 , 拇指 而每一个数码管接收到相同的字型码 , 拇指 但究竟是哪个数码管亮 , 拇指 则取决于 COM 端 , 拇指 而这一端是由 IO 控制的 , 拇指 可以自行决定显示哪一位 。 食指 凌阳, 拇指 凌阳 所谓动态扫描 , 拇指 就是指我们采用分时的方法 , 拇指 轮流控制各个数码管的 COM 端 , 拇指 使各个数码管轮流点亮 , 拇指 在轮流点亮的扫描过程中 , 拇指 每位数码管的点亮时间是极为短暂的 , 拇指约 1ms
28、左右 , 拇指 但由于人的视觉暂留现象及发光二极管的余晖效应 , 拇指 尽管实际上各位数码管并非同时点亮 , 拇指 但只要扫描的速度足够快 , 拇指 给人的印象就是一组稳定的显示数据 , 拇指 不会有闪烁感 。 食指 凌阳, 拇指 凌阳 从上述论述中可以看出动态显示方案具备较强的实用性 , 拇指 也是目前单片机应用中数码管显示较为常用的一种方式 , 拇指 所以在本设计中采用动态显示方案 。 食指 凌阳, 拇指 凌阳 2 2 5 凌阳, 拇指 凌阳 译码电路部分 凌阳, 拇指 凌阳 通过控制单片机的 I/O 口实现数码管部分的数码显示 , 拇指 根据 A、 B、 C、 D、 E、 F、 G、 D
29、P在数码管上的位置 , 拇指 不妨选用共阴极的数码管来显示 , 拇指 分别将八段数码管编码为 hgfedcba,拇指 由此可得 09 的编码分别为 0x3f、 0x06、 0x5b、 0x4f、 0x66、 0x6d、 0x7d、 0x07、 0x7f、0x6f, 拇指 通过 74HC138 进行译码 , 拇指 从而控制每一个数码管的输出 。 食指 凌阳, 拇指 凌阳 系统的软件设计 凌阳, 拇指 凌阳 3 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 温度测量系统软件流程图 凌阳, 拇指 凌阳 温度测量系统的软件主流程图可以划分成各子模块 , 拇指 分别为定时器设置、中断部分、读取 DS18B
30、20 温度和温度译码输出 , 拇指 如图 3.1 所示 , 拇指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 定时器设置 中断部分 读取 DS18B20温度 温度译码输出 8 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 3.1 凌阳, 拇指 凌阳 软件主流程图 凌阳, 拇指 凌阳 3 2 温度测量系统各子模块 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 3 2 1 凌阳, 拇指 凌阳 定时器设置部分 凌阳, 拇指 凌阳 数码管的扫描采用定时器中断的方 式 , 拇指 定时器 /计数器 T
31、0 由特殊功能寄存器 TH0、 TL0 构成 , 拇指 定时器 /计数器 T1 由特殊功能寄存器 TH1、 TL1 构成 。 食指 特殊功能寄存器 TMOD 用于选择定时器 /计数器 T0、 T1 的工作模式和工作方式 。 食指 特殊功能寄存器 TCON 用于控制 T0、T1 的启动和停止计数 , 拇指 同时包含了 T0、 T1 的状态 。 食指 TMOD、 TCON 这两个寄存器的内容由软件设置 。 食指 单片机复位时 , 拇指 两个寄存器的所有位都被清 0。 食指 凌阳, 拇指 凌阳 D7 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
32、凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D6 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D5 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌
33、阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D1 凌阳, 拇指 凌阳 凌阳
34、, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D0 GATE C/T M1 M0 GATE C/T M1 M0 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 表 3.1 凌阳, 拇指 凌阳 工作方式寄存器 TMOD 格式 凌阳, 拇指 凌阳 定时器 /计数器有 4 种工作方式 , 拇指 本次设计采用工作方式 1, 拇指 选择 T0 定时 , 拇指 所以 TMOD 中T1 方式半段没有用到 , 拇指 高 4 位全为 0, 拇指 选择工作方式 1, 拇指
35、 所以 M1M0 为 01,选择定时模式 ,拇指 所以 C/T 为 0。 食指 GATE 为 0, 拇指 仅由运行控制位 TR0 来启动定时器运行 , 拇指 代码部分见附录 A中定时器设置部分 。 食指 凌阳, 拇指 凌阳 3 2 2 凌阳, 拇指 凌阳 中断部分 凌阳, 拇指 凌阳 当定时器 /计数器 T0 溢出时产生中断 , 拇指 为此可以设置中断允许寄存器 IE, 拇指 使 ET0 置 1 同时开放 CPU 的中断源 , 拇指 使 EA 置 1。 食指 中断允许寄存器 IE 对中断的开放和关闭实现两级控制 。食指 即有一个总的开关中断控制位 EA( IE.7 位) , 拇指 当 EA=0
36、 时 , 拇指 所有中断源请求被屏蔽 , 拇指 CPU对任何中断请求拒绝 , 拇指 当 EA=1 时 , 拇指 CPU 开中断 , 拇指 但 5 个中断源的中断请求是否允许 , 拇指还 要 IE 中的低 5 位所对应的 5 个中断请求允许控制位的状态决定 。 食指 凌阳, 拇指 凌阳 D7 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D6 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D
37、5 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D2 凌阳, 拇指 凌阳
38、 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 D0 IE EA ES ET1 EX1 ET0 EX0 位地址 AFH ACH ABH AAH A9H A8H 表 3.2 凌阳, 拇指 凌阳 中断允许寄存器 IE 的结构 凌阳, 拇指 凌阳 所以 , 拇指 IE 值设置为 82
39、H。 食指 凌阳, 拇指 凌阳 3 2 3 凌阳, 拇指 凌阳 读取 DS18B20 温度部分 凌阳, 拇指 凌阳 由于温度测量系统所选用的温度传感器为 DS18B20, 拇指 且查阅 DS18B20 温度传感器的使用手册 , 拇指 可以将温度传感器的使用分为温 度传感器的初始化、温度传感器写一个字节、读一个字节 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 3.2 凌阳, 拇指 凌阳 DS18B20 配置寄存器的结构 凌阳, 拇指 凌阳 T1 方式字段 T0 方式字段 A8H 9 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 3.3 凌阳, 拇指 凌阳 DS18B20 的分辨率设置表
40、凌阳, 拇指 凌阳 DS18B20 加电启动时 , 拇指 默认值 R1=1, 拇指 R2=1, 拇指 所以默认分辨率为 12 位 , 拇指 为实验的方便 , 拇指可以不改动 R1、 R0 的值 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 3.3 凌阳, 拇指 凌阳 DS18B20 的温度值格式表 凌阳, 拇指凌阳 由上表可见 , 拇指 在 DS18B20 的 12 位温度转换过程中 , 拇指 转换后的 12 位数据 , 拇指 存在两个 8 位的RAM 中 , 拇指 其中前 5 位为符号位 , 拇指 即如果温度大于 0, 拇指 S 全为 0, 拇指 否则 S 全为
41、1, 拇指 且负数值以二进制补码的形式存储在 RAM 中 , 拇指 温度转换时只要取反后加 1, 拇指 即得到所测温度的原码 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 凌阳, 拇指 凌阳 3.4 凌阳, 拇指 凌阳 DS18B20 初始化示意图 凌阳, 拇指 凌阳 初始化时 , 拇指 需要将 DQ 数据总线拉低至少 480us, 拇指 数据总线就进入接收模式 , 拇指 DS18B20 收到信号后等待 1560us, 拇指 然后 DQ 发出 60240us 的存在低脉冲 , 拇指 CPU 收到此信号表明复位成功 。 食指 指令 代码 说明 读 ROM 33H 读
42、ROM 的 64 位地址 符合 ROM 55H 指令发出后 , 拇指 发出 64位地址 , 拇指 访问该地址对应的 DS18B20, 拇指 为下一步的读写准备 搜索 ROM 0F0H 确定连在一条总线上的 DS18B20 个数和识别 64 位 ROM 地址 跳过 ROM 0CCH 忽略 64 位 ROM 地址 , 拇指 直接温度变换 告警搜索命令 0ECH 只有超过温度上下限才做出反应 表 3.3 凌阳, 拇指 凌阳 DS18B20 的 ROM 指令表 指令 代码 说明 温度变换 44H 启动温度转换 , 拇指 结果存入内部 9字节 RAM中 读暂存器 0BEH 读内部 RAM 中 9 字节内容 写暂存器 4EH 发出向内部 RAM 的 3、 4 字节写上下限温度命令 复制暂存器 48H 将 RAM 中第 3、 4 字节的内容复制到 EEPROM 重调 EEPROM 0B8H 将 EEPROM 中的内容恢复到 RAM 的第 3、 4 字节 读供电方式 0B4H 读 DS18B20 的供电模式 表 3.4 凌阳, 拇指 凌阳 DS18B20 的 RAM 指令表 凌阳, 拇指 凌阳