DS18B20温度采集系统

合集下载

DS18B20温度采集系统..

DS18B20温度采集系统..
设计内容:用单片机、温度传感器等器件实现温度采集
设计安排:1.硬件设计。介绍单片机、温度传感器、
显示电路等相关原理与知识;
2.软件设计。
3.用PROTEUS软件对硬件系统进行仿真;
4.两人一组做实物。
温 度 采 集 系 统 的 仿 真 效 果 图
电路
温 度 采 集 系 统 的 元 器 件 清 单
1 1 1 1 1 1 1 1
相关知识点的介绍:
一. 温度传感器DS18B20 1-wire Bus(单总线)数字温度传感器芯片DS18B20 是美国Datlas半导体公司(现已并入MAXIM公司)于 20世纪90年代新推出的一种串行总线技术。该技术只 需要一根信号线(将计算机的地址线、数据线、控制 线合为一根信号线)便可完成串行通信。单根信号线, 既传输时钟,又传输数据,而且数据传输是双向的, 在信号线上可挂上许多测控对象,电源也由这根信号 线供给,所以在单片机的低速(约100kbps以下的速 率)测控系统中,使用单根总线技术可以简化线路结 构,减少硬件开销。
64位ROM的结构
(2). 温度传感器。
(DS18B20出厂时被设置为12位)
温度传感器是DS18B20的核心部分,该功能部件可完成对温 度的测量。通过软件编程可将-55~+125º C范围内的温度值按 9位、10位、12位的转换精度进行量化,以上的转换精度都包括 一个符号位,因此对应的温度量化值分别为0.5º C、0.125º C、 0.0625º C,即最高转换精度为0.0625º C。 以12位转化为例:用16位符号扩展的二进制补码读数形式提 供,以0.0625℃/LSB形式表达,其中S为符号位。
(4). 配置寄存器 TM R1 R0 1 1 1 1 1
配置寄存器结构 低五位一直都是1 ,TM是测试模式位(出厂时该位 被设置 为0,用户不必改动),用于设置DS18B20在工作模式还是在 测试模式。在DS18B20出厂时该位被设置为0,用户不要去改 动。R1和R0用来设置分辨率。 R1 0 0 1 R0 0 1 0 分辨率 9位 10位 11位 温度最大转换时间 93.75ms 187.5ms 375ms

DS18B20温度采集与控制

DS18B20温度采集与控制

(3)发送 DS18B20 功能指令。
指令名称 温度转换
指令代码 44H
指令功能 启动 DS18B20 温度转换,最长 750ms,结果存于内部 9 字节 RAM
-1-
写暂存器
4EH
读暂存器 复制暂存器 重调 EEPROM 读供电模式
BEH 48H B8H B4H
发此命令后,可向内 RAM 发 3 个字节,1st 是 TH,2st 是 TL, 3st 配置寄存器 发此命令后,依次读出内 RAM 中 0~8 字节的内容,低位在前。 复制 2、3、4 字节的内容到 EEPROM 中 EEPROM 中的内容恢复到 2、3、4 字节 当 DS18B20 寄生供电时为“0”,外部电源供电为“1”
要想完成一次测温任务,首先需要主 MCU 指挥 DS18B20 进行一次温度转换,待转换完 成后,再让主 MCU 读取 DS18B20 内部 RAM 中的温度数据。具体操作如下:
(1)主 MCU 控制“1-Wire”总线进行复位初始化。参见“对 DS18B20 进行复位初始 化”操作。
(2)主 MCU 发送跳过 ROM 的操作(CCH)命令。 (3)主 MCU 发送转换温度的操作(44H)命令,后面释放总线至少 750 毫秒,让 DS18B20 完成转换的操作。 (4)主 MCU 发出复位操作并接收 DS18B20 的应答(存在)脉冲。 (5)主 MCU 发送跳过 ROM 的操作(CCH)命令。 (6)主 MCU 发送读取 RAM 的命令(BEH),随后主机依次读取 DS18B20 发出的从第 0 一第 8,共九个字节的数据。如果只想读取温度数据,那在读完第 0 和第 1 个数据后即丢 掉(不读)后续字节的内容。 上述操作中,涉及到主 MCU 对 DS18B20 的写(发送)操作和读(读取)操作,下文将 介绍如何完成这两种操作方法。 写操作:写操作周期最少为 60 微秒,最长不超过 120 微秒。写周期开始时,主机先把总 线拉低 1 微秒表示写周期开始。之后主机若想写 0,则继续拉低电平最少 60 微秒直至写周期 结束,然后释放总线为高电平。主机若想写 1,则拉低总线电平 1 微秒后就释放总线为高电 平,一直到写周期结束。 作为从机的 DS18B20 在检测到总线被拉低后等待 15 微秒然后从 15us 到 60us 开始对总 线采样,在采样期内总线为高电平则为 1,若采样期内总线为低电平则为 0。如下图所示。

基于DS18B20的温度采集显示系统的设计

基于DS18B20的温度采集显示系统的设计

目录1.引言 (1)1.1绪论 (1)1.2课程设计任务书 (1)2.设计方案 (3)3.硬件设计方案 (3)3.1最小系统地设计 (3)3.2LED发光报警电路 (5)3.3DS18B20地简介及在本次设计中地应用 (5)3.3.1 DS18B20地外部结构及管脚排列 (5)3.3.2 DS18B20地工作原理 (6)3.3.3 DS18B20地主要特性 (7)3.3.4 DS18B20地测温流程 (8)3.3.5 DS18B20与单片机地连接 (8)3.4报警温度地设置 (8)3.5数码管显示 (9)3.5.1数码管工作原理 (9)3.5.2数码管显示电路 (10)3.6硬件电路总体设计 (11)4.软件设计方案 (12)4.1主程序介绍 (12)4.1.1主程序流程图 (12)4.1.2主流程地C语言程序 (13)4.2部分子程序 (17)4.2.1 DS18B20复位子程序 (17)4.2.2 写DS18B20命令子程序 (18)4.2.3读温度子程序 (20)4.2.4计算温度子程序 (22)4.2.5显示扫描过程子程序 (23)5.基于DS18B20地温度采集显示系统地调试 (25)6.收获和体会 (27)7.参考文献 (27)1.引言1.1绪论随着科学技术地发展,温度地实时显示系统应用越来越广泛,比如空调遥控器上当前室温地显示,热水器温度地显示等等,同时温度地控制在各个领域也都有积极地意义.采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度地技术指标.本文介绍了基于DS18B20地温度实时采集与显示系统地设计与实现.设计中选取单片机AT89C51作为系统控制中心,数字温度传感器DS18B20作为单片机外部信号源,实现温度地实时采集.并且用精度较好地数码管作为温度地实时显示模块.利用单片机程序来完成对DS18B20与AT89C51地控制,最终实现温度地实时采集与显示.采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度地技术指标.1.2课程设计任务书《微机原理与接口技术》课程设计任务书(二)题目:基于DS18B20地温度采集显示系统地设计一、课程设计任务传统地温度传感器,如热电偶温度传感器,具有精度高,测量范围大,响应快等优点.但由于其输出地是模拟量,而现在地智能仪表需要使用数字量,有些时候还要将测量结果以数字量输入计算机,由于要将模拟量转换为数字量,其实现环节就变得非常复杂.硬件上需要模拟开关、恒流源、D/A转换器,放大器等,结构庞大,安装困难,造价昂贵.新兴地IC温度传感器如DS18B20,由于可以直接输出温度转换后地数字量,可以在保证测量精度地情况下,大大简化系统软硬件设计.这种传感器地测温范围有一定限制(大多在-50℃~120℃),多适用于环境温度地测量.DS18B20可以在一根数据线上挂接多个传感器,只需要三根线就可以实现远距离多点温度测量.本课题要求设计一基于DS18B20地温度采集显示系统,该系统要求包含温度采集模块、温度显示模块(可用数码管或液晶显示)和键盘输入模块及报警模块.所设计地系统可以从键盘输入设定温度值,当所采集地温度高于设定温度时,进行报警,同时能实时显示温度值.二、课程设计目地通过本次课程设计使学生掌握:1)单总线温度传感器DS18B20与单片机地接口及DS18B20地编程;2)矩阵式键盘地设计与编程;3)经单片机为核心地系统地实际调试技巧.从而提高学生对微机实时控制系统地设计和调试能力.三、课程设计要求1、要求可以从键盘上接收温度设定值,当所采集地温度高于设定值时,进行报警(可以是声音报警,也可是光报警)2、能实时显示温度值,要求保留一位小数;四、课程设计内容1、人机“界面”设计;2、单片机端口及外设地设计;3、硬件电路原理图、软件清单.五、课程设计报告要求报告中提供如下内容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案(3)针对人机对话“界面”要有操作使用说明,以便用户能够正确使用本产品;(4)硬件原理图,以便厂家生成产(可手画也可用protel软件);(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序地名称及其功能);(6)调试、运行及其结果;3、收获、体会4、参考文献六、课程设计进度安排七、课程设计考核办法本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为20%、40%、40%.2.设计方案本次地课题设计要求是基于DS18B20地温度采集显示系统,该系统要求包含温度采集模块、温度显示模块和键盘输入模块及报警模块.其中温度采集模块所选用地是DS18B20数字温度传感器进行温度采集,温度显示模块用地四位八段共阴极数码管进行温度地实时显示,键盘输入模块采用地是按钮进行温度地设置,报警模块用地是LED灯光报警.具体方案见图2-1.图2-1 总体设计方案3.硬件设计方案3.1最小系统地设计本次设计单片机采用地是AT89C51系列地,它由一个8位中央处理器(CPU),4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个串行I/O口及中断系统等部分组成.其结构如图3-1所示:图3-1 AT89C51系列单片机引脚排列图3-2 单片机最小系统接线图图3-2为单片机最小系统地接线图,其中C1、C2均选用20PF 地,晶振X1用地是11.0592MHZXTAL1XTAL2 RST EA地.晶振电路中外接电容C1,C2地作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率地作用,一般选用10~30pF地瓷片电容.并且电容离晶振越近越好,晶振离单片机越近越好.晶振地取值范围一般为0~24MHz,常用地晶振频率有6MHz、12 MHz、11.0592 MHz、24 MHz 等.晶振地振荡频率直接影响单片机地处理速度,频率越大处理速度越快.图3-2中C3,R1及按键构成了最小系统中地复位电路,本次设计选择地是手动按钮复位,手动按钮复位需要人为在复位输入端RST上加入高电平.一般采用地办法是在RST端和正电源Vcc之间接一个按钮.当人为按下按钮时,则Vcc地+5V电平就会直接加到RST端.由于人地动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位地时间要求.在单片机最小系统中还要将EA地非接高电平,如图3-2也有体现出来.3.2 LED发光报警电路P1.7图3-3 LED发光报警电路图3-3为LED报警电路地接法,其中一根线接单片机地8号P1.7口,另外一根接地.当温度超过预设温度值时LED灯被接通发光报警.3.3 DS18B20地简介及在本次设计中地应用3.3.1 DS18B20地外部结构及管脚排列DS18B20地管脚排列如图3-4所示:DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)图3-4 DS18B20地引脚排列及封装3.3.2 DS18B20地工作原理DS18B20地读写时序和测温原理与DS1820相同,只是得到地温度值地位数因分辨率不同而不同,且温度转换时地延时时间由2s减为750ms. DS18B20测温原理如图3-5所示.图中低温度系数晶振地振荡频率受温度影响很小,用于产生固定频率地脉冲信号送给计数器1.高温度系数晶振随温度变化其振荡率明显改变,所产生地信号作为计数器2地脉冲输入.计数器1和温度寄存器被预置在-55℃所对应地一个基数值.计数器1对低温度系数晶振产生地脉冲信号进行减法计数,当计数器1地预置值减到0时,温度寄存器地值将加1,计数器1地预置将重新被装入,计数器1重新开始对低温度系数晶振产生地脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值地累加,此时温度寄存器中地数值即为所测温度.图中地斜率累加器用于补偿和修正测温过程中地非线性,其输出用于修正计数器1地预置值.图3-5 DS18B20测温原理图3.3.3 DS18B20地主要特性(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电;(2)独特地单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20地双向通讯;(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一地三线上,实现组网多点测温;(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管地集成电路内;(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;(6)可编程地分辨率为9~12位,对应地可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强地抗干扰纠错能力;(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作.3.3.4 DS18B20地测温流程图3-6 DS18B20地测温流程图3.3.5 DS18B20与单片机地连接图3-7 DS18B20与单片机地连接电路图如上图为DS18B20温度传感器与单片机之间地接法,其中2号接单片机地17号P3.7接口.DS18B20通过P3.7口将采集到地温度实时送入单片机中.3.4 报警温度地设置P2.5 P2.6 P2.7P3.7图3-8 报警温度地设置电路图3-8为报警温度地设置电路,其中K1,K2,K3分别接到单片机地P2.5,P2.6,P2.7口.其中K1用于报警温度设定开关,K2用于报警温度地设置时候地加温度(每次加一),K3用于报警温度地设置时地减温度(每次减一).实现了报警温度地手动设置.3.5 数码管显示3.5.1数码管工作原理图3-9 数码管地引脚排列及结构图3-9为数码管地外形及引脚排列和两种接法(共阴极和共阳极)地结构图.共阳极数码管地8个发光二极管地阳极(二极管正端)连接在一起.通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端.当某段驱动电路地输出端为低电平时,则该端所连接地字段导通并点亮.根据发光字段地不同组合可显示出各种数字或字符.此时,要求段驱动电路能吸收额定地段导通电流,还需根据外接电源及额定段导通电流来确定相应地限流电阻.共阴极数码管地8个发光二极管地阴极(二极管负端)连接在一起.通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端.当某段驱动电路地输出端为高电平时,则该端所连接地字段导通并点亮,根据发光字段地不同组合可显示出各种数字或字符.此时,要求段驱动电路能提供额定地段导通电流,还需根据外接电源及额定段导通电流来确定相应地限流电阻.要使数码管显示出相应地数字或字符,必须使段数据口输出相应地字形编码.字型码各位定义为:数据线D0与a字段对应,D1与b字段对应……,依此类推.如使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮.如要显示“0”,共阳极数码管地字型编码应为:11000000B(即C0H);共阴极数码管地字型编码应为:00111111B(即3FH).依此类推,可求得数码管字形编码如表3-5所示.表3-5数码管字符表显示地具体实施是通过编程将需要显示地字型码存放在程序存储器地固定区域中,构成显示字型码表.当要显示某字符时,通过查表指令获取该字符所对应地字型码.3.5.2数码管显示电路图3-10 四位八段数码管动态显示电路图3-10为本次设计所用到地四位八段数码管动态显示,其中段选接到单片机地P0口,位选接到单片机地P2口地低四位.其中P0口也接地有上拉电阻,图中未标示出来,会在下面地总体电路中标示出来.采用地是动态显示方式.3.6 硬件电路总体设计图3-11为本次设计地硬件总体设计图,其中利用K1,K2,K3处进行报警温度地设置,然后有DS18B20进行实时温度采集,并在数码管上同步显示,若采集到地温度达到或者超过预设地报警温度,则LED 灯会发光报警,若低于该报警温度,则不会报警.P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1P2.2 P2.3图3-11 硬件电路总体设计图4.软件设计方案4.1主程序介绍4.1.1主程序流程图本次设计首先对程序进行初始化,然后打开报警温度设定开关,对报警温度进行设定,确认设定值后,DS18B20温度传感器进行温度采集并送入单片机中,单片机将传感器所检测到地温度同步显示在数码管上,并且与设置地报警温度进行比较,若达到或者超过报警温度时,LED灯发光报警,如果没有达到,则继续进行温度采集.图4-1主程序流程图4.1.2主流程地C语言程序main (){ALERT=0。

基于DS18B20的温度采集控制系统

基于DS18B20的温度采集控制系统


如 图 2 中 的 U3


以动态方式显 示

显示
送 出
位 控 信 号 由 P2
【] 3

送 出

经 U2 (
图 1
总体控 制框 图
7 4 LS 2 4 4 ) 进
行信号放 大
以 产生足 够 大 的 电流驱 动数

码 管显 示

数码 管 与单 片机 的连 接 见 图 2 所示 U3

U2 和
这里 我们采用单 片机最小系统 图 2 所示
2 1


系统硬件 电路 图如
U 1 的连 接

2 4

电机 控 制 模块
电机 采 用 直 流 电机

主控 制模块
由于 系统控制方案 简单

如 图 2 中的 B

1

额 定 电压 5 V


数据量也不 大


考虑 到 电路
调速采用
PW M
调速方法
利用单片机
P0 1 口

通过软

的 简单 和成 本 等 因 素
3I
0ND
一 D M 7 LS 4 4 Z
P O 2
22
O D' 1 R
P I 2

RS v P D XTAL2

I ==.
} 。 。
R 1 c 1 l‘ 千 一 F 亍 { -_ _一 3 0 p
G XL N T1 A D
85 91 5
自动

基于
DS 188 2 0

基于51单片机的温度监测系统(DS18B20)

基于51单片机的温度监测系统(DS18B20)
为产生写0时隙,在拉低总线后主机必须继续拉低总线以满足时隙持续时间 的要求(至少60μs)。在主机产生写时隙后,DS18B20会在其后的15到60us的一 个时间窗口内采样单总线。在采样的时间窗口内,如果总线为低电平,主机会 向DS18B20写入0。
DS18B20读时序
所有的读时隙都由拉低总线,持续至少1us后再释放总线(由于上拉电阻的作用,总线恢复为 高
配置寄存器
8 位 CRC 生成器
DS18B20的时序
DS18B20复位时序
DS18B20的所有通信都由由复位脉冲组成的初始化序列开始。该初始化序列由主 机发出,后跟由DS18B20发出的存在脉冲(presence pulse)。在初始化步骤中,总线 上的主机通过拉低单总线至少480μs来产生复位脉冲。然后总线主机释放总线并进入接收 模式。当总线释放后,5kΩ的上拉电阻把单总线上的电平拉回高电平。当DS18B20检测 到上升沿后等待15到60us,发出存在脉冲,拉低总线60-240us至此,初始化和存在时序 完毕。时序图如下:
1.主控制器电路和测温
电路的设计
主控制器电路由AT89S52 及外围时钟和复位电路构成, 测温电路由DS18B20、报警 电路组成。AT89C52是此硬 件电路设计的核心,通过 AT89S52的管脚P2.7与 DS18B20相连,控制温度的 读出和显示。硬件电路的功 能都是与软件编程相结合而 实现的。具体电路原理图如 右图2所示。
送1,以拉低总线的方式表示发送0.当发送0的时候,DS18B20在读时隙的末期将会释放总线,总线
将会被上拉电阻拉回高电平(也是总线空闲的状态)。DS18B20输出的数据在下降沿(下降沿产 生读时隙)产生后15us后有效。因此,主机释放总线和采样总线等动作要在15μs内完成。

ds18b20温度采集

ds18b20温度采集

“盛群杯”单片机大赛设计报告温度读取部分:采用数字温度传感器DS18B20。

DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。

可直接与单片机通信,读取测温数据,电路简单。

如图1.2.2 所示。

DS18B20与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。

他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果2.2.1 温度采集部分设计本系统采用半导体温度传感器作为敏感元件。

传感器我们采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。

DS18B20应用广泛,性能可以满足题目的设计要求。

DS18B20的测温电路如图2.2.1所示。

图2.2.1 DS18B20测温电路(1)DSI8B20的测温功能的实现:其测温电路的实现是依靠单片机软件的编程上。

当DSI8B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0,1字节。

单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5℃/LSB形式表示。

温度值格式如表2.2.1所示,其中“S”为标志位,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。

DSI8B20完成温度转换后,就把测得的温度值与 TH做比较,若T>TH或T<TL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令做出响应。

表2.2.1 DS18B20温度值格式表(2)、DSl820工作过程中的协议初始化 -> RoM操作命令 -> 存储器操作命令-> 处理数据①初始化单总线上的所有处理均从初始化开始② ROM操作命令总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如表2.2.2所示表2.2.2 ROM操作命令表③存储器操作命令如表2.2.3所示表2.2.3 存储器操作命令表(3)温度转换算法及分析由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。

DS18B20的工作原理

DS18B20的工作原理

DS18B20的工作原理DS18B20是一种数字温度传感器,广泛应用于各种温度测量和控制系统中。

它采用一线式总线通信协议,具有高精度、低功耗和可靠性高等特点。

下面将详细介绍DS18B20的工作原理。

1. 传感器结构DS18B20由温度传感器、数字转换器和总线控制电路组成。

温度传感器采用微处理器技术,内部集成为了温度传感器、模数转换器和数字信号处理电路。

总线控制电路负责与主控设备进行通信,并提供传感器的供电。

2. 温度测量原理DS18B20采用基于半导体的温度传感器,利用温度对半导体材料电阻值的影响来测量温度。

具体来说,DS18B20内部有一个温度传感器,该传感器由一对电阻组成,其中一个电阻是一个恒流源,另一个电阻是一个PTAT(Proportional to Absolute Temperature)电阻。

当温度升高时,PTAT电阻的电阻值也会升高,而恒流源电阻的电阻值保持不变。

通过测量这两个电阻之间的电压差,可以计算出温度值。

DS18B20的内部电路会将这个电压差转换为数字信号,然后通过总线传输给主控设备。

3. 一线式总线通信协议DS18B20采用一线式总线通信协议进行与主控设备的通信。

这种通信方式只需要一根信号线,可以同时传输数据和供电。

主控设备通过发送特定的命令和参数来读取传感器的温度值。

在通信过程中,主控设备会发送复位脉冲,然后传感器会发送存在脉冲作为应答。

接着,主控设备发送读取温度命令,传感器会将温度值转换为数字信号,并通过总线传输给主控设备。

主控设备通过读取总线上的数字信号来获取温度值。

4. 精度和分辨率DS18B20具有高精度和可调节的分辨率。

其温度测量精度可以达到±0.5℃,分辨率可以调节为9位、10位、11位或者12位。

分辨率越高,温度测量的精度越高,但传输的数据量也越大。

5. 供电方式DS18B20可以通过总线路线从主控设备获取供电,也可以通过外部供电。

当通过总线供电时,传感器会利用总线上的电能进行工作;当通过外部供电时,传感器可以提供更大的测量范围和更快的响应速度。

DS18B20温度数据采集系统

DS18B20温度数据采集系统

目录摘要 (2)一、绪论 (3)二、系统方案实现 (3)2.1.设计要求 (3)2.2.设计方案论证 (3)2.3.总体设计框图 (4)三、主要硬件介绍 (4)3. 1.DS18B20 (4)3.1.1 DS18B20的主要特性 (4)3.1.2 DS18B20的外形和内部结构 (5)3.1.3 DS18B20工作原理 (6)3.1.4 高速暂存存储器 (7)3.2 AT89C51 (8)四、软件介绍 (9)4.1 功能概述 (9)4.2 系统软件流程图 (9)4.2.1程序 (9)4.2.2读出温度子程序 (10)4.2.3温度转换命令子程序 (11)4.3具体程序 (11)五、总结 (22)六、设计体会及今后的改进意见 (22)参考文献 (23)摘要本文基于DS18B20设计了一种温度数据采集系统,系统主要由AT89C51单片机,一个DS18B20 数字温度传感器以及一个液晶数码管构成。

软件方面,我们采用keil。

软件对程序进行编写以及调试,硬件方面,我们通过Proteus软件对硬件电路进行仿真以及测试,该系统结构简单,功耗较低,测温范围为- 50℃~+ 255℃。

现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量。

该系统硬件分为3部分:DS18B20 温度测量模块、单片机模块、显示模块。

关键词:DS18B20、7SEG-MPX4液晶数码管、AT89C51一、绪论在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。

其中,温度控制也越来越重要。

在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。

采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而大大提高产品的质量和数量。

因此,单片机对温度的控制问题是工业生产中经常会遇到的控制问题。

单总线温度传感器DS18B20简介

单总线温度传感器DS18B20简介

单总线温度传感器DS18B20简介DS18B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。

它具有3引脚TO-92小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

以上特点使DS18B20非常适用于远距离多点温度检测系统。

DS18B20外形及引脚说明外形及引脚如图2所示:图2 管脚排列图在TO-92和SO-8的封装中引脚有所不同,具体差别请查阅PDF手册,在TO-92封装中引脚分配如下:1(GND):地2(DQ):单线运用的数据输入输出引脚3(VDD):可选的电源引脚DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。

高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。

初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。

初始时,计数器1预置的是与-55℃相对应的一个预置值。

以后计数器1每一个循环的预置数都由斜率累加器提供。

为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。

计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。

基于DS18B20的高精度温度采集、显示系统

基于DS18B20的高精度温度采集、显示系统

2、设计分析及系统方案设计通过DS18B20进行小数11位温度转换、采集,通过单片机读取DS18B20采集到的11位温度值进行二进制到十六进制的转换,利用ZLG7290进行八位数码管显示;利用键盘进入中断来设定报警上、下限,当温度高于上限或低于下限时进入报警子程序。

利用键盘进入中断来查看当前设置的温度报警上下限值,利用ZLG7290和数码管来显示。

主程序不断循环采集温度比较,并可随时进入中断来修改温度上下限和查看温度值。

3、外围接口模块硬件电路功能描述1.DS18B20:用于测定温度,测量范围-55~+125,分辨率为0.0625℃,数据格式为二进制补码形式。

2.ZLG7290B:用于数码管动态显示驱动,键盘扫描管理。

能够驱动8位共阴极结构的LED数码管或64位独立的LED,同时还能扫描管理多达64个按键的扫描识别,其中八个键可以作为功能键使用。

接口采用I²C结构。

3.蜂鸣器:这里用作报警,为无源蜂鸣器。

设置DS18B20端口参数THI_WARNING EQU 40HTLI_WARNING EQU 41HTEMPER_FLAG EQU 42H ;温度符号位数据保存区TEMPER_POINT EQU 43H ;温度小数部分数据保存区TEMPER EQU 44H ;温度整数部分数值保存区TEMPER_H EQU 45H ;温度整数部分高位数值保存区TEMPER_L EQU 46H ;温度整数部分低位数值保存区TI_SHOW EQU 47H ;十进制温度整数部分数值保存区T_SAVE EQU 48HTEMPER_NUM EQU 60HFLAG1 BIT 00HDQ BIT P3.3;******************************;设置ZLG7290端口参数;******************************SDA BIT P1.0SCL BIT P1.1WSLA EQU 70HRSLA EQU 71HDISDA EQU 20HDISCON EQU 08H;*********************************ORG 8000HLJMP 8100HORG 8003HLJMP INT_7290;*********************************;初始化部分;*********************************ORG 8100HMOV SP,#60HCLR P1.7LCALL DELAYSETB P1.7;***************************;开中断,设置报警上下限值;**************************MOV TMOD,#11HMOV TL1,#0FCHMOV TH1,#4BHSETB TR1SETB EX0SETB EASETB IT0MOV THI_WARNING,#22HMOV TLI_WARNING,#20H;******************************************************************************;主程序部分;******************************************************************************LP1:LCALL GET_TEMPER ;从DS18B20读取温度数据LCALL TEMPER_COV ;转换读取的温度整数、符号位和小数部分数据并保存LCALL DATA_PRO;数码管显示前对要显示数据的相关处理LCALL LEDSHOW ;数码管显示程序MOV A,TEMPERCJNE A,TLI_WARNING,WAR;判断温度值是否低于报警下限值,低于则报警,不低于则判断WAR:JNC LOOP10;是否大于报警上限值LCALL BUZZL ;蜂鸣器报警程序SJMP LP1LOOP10:CJNE A,THI_WARNING,WAR1;判断温度值是否低于报警下限值,低于则报警,不低于则跳转WAR1:JC LP2LCALL BUZZH ;蜂鸣器报警程序SJMP LP1LP2: LCALL NOTWINKLE;对ZLG7290写入不闪烁控制字LJMP LP1;******************************************************************************;获取DS18B20温度值子程序;******************************************************************************GET_TEMPER:SETB DQBCD:LCALL INIT_1820 JB FLAG1,S22LJMP BCDS22:LCALL DELAY1MOV A,#0CCHLCALL WRITE_1820MOV A,#44HLCALL WRITE_1820LCALL DELAYCBA:LCALL INIT_1820 JB FLAG1,ABCLJMP CBAABC:LCALL DELAY1MOV A,#0CCHLCALL WRITE_1820MOV A,#0BEHLCALL WRITE_1820LCALL READ_18200RETWRITE_1820:MOV R2,#8CLR CWR1:CLR DQMOV R3,#6DJNZ R3,$RRC AMOV DQ,CMOV R3,#23DJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRETREAD_18200:MOV R4,#2MOV R1,#46HRE00:MOV R2,#8RE01:CLR CSETB DQNOPCLR DQNOPNOPSETB DQMOV R3,#2DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RET;****************************************************************************** ;DS18B20温度值提取整数部分、符号位和小数部分的子程序;******************************************************************************TEMPER_COV:MOV A,#0F0HANL A,TEMPER_LSWAP AMOV TEMPER_NUM,AMOV A,TEMPER_HANL A,#07HSWAP AADD A,TEMPER_NUMMOV TEMPER_NUM,AMOV TEMPER,TEMPER_NUMMOV A,#0FHANL A,TEMPER_LSWAP AMOV TEMPER_POINT,AMOV A,TEMPER_HANL A,#08HSWAP AMOV TEMPER_FLAG,ARET;整数和小数的位偏移数据存储;****************************************************************************** ;30H——37H为数据存储区,其中30H--33H为小数值;34H--35H为整数值,36为百位值,37为符号位值;****************************************************************************** DATA_PRO:MOV 37H,#0AHMOV A,TEMPER_FLAGJZ POSITIVEMOV A,TEMPERCPL AANL A,#7FHADD A,#01HMOV TEMPER,AMOV 37H,#0BH POSITIVE: MOV A,TEMPERCJNE A,64H,SETHUNDREDBIT SETHUNDREDBIT:JC SETHUNDREDBIT1SUBB A,#64HMOV TEMPER,AMOV 36H,#01HSJMP SET1 SETHUNDREDBIT1: MOV 36H,#00HSET1: MOV A,TEMPERMOV B,#10DIV ABMOV 34H,BMOV 35H,AMOV A,TEMPER_POINTCLR CRLC ASWAP ARR AJNZ POINT1MOV 30H,#00HMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HSJMP SHOWPOINT1: DEC AJNZ POINT2MOV 30H,#05HMOV 31H,#02HMOV 32H,#06HMOV 33H,#00HSJMP SHOWPOINT2: DEC AJNZ POINT3MOV 30H,#00HMOV 31H,#05HMOV 32H,#02HMOV 33H,#01HSJMP SHOWPOINT3: DEC AJNZ POINT4MOV 30H,#05HMOV 31H,#07HMOV 32H,#08HMOV 33H,#01HSJMP SHOWPOINT4: DEC AJNZ POINT5MOV 30H,#00HMOV 31H,#00HMOV 32H,#05HMOV 33H,#02HSJMP SHOW POINT5: DEC AJNZ POINT6MOV 30H,#05HMOV 31H,#02HMOV 32H,#06HMOV 33H,#00HSJMP SHOW POINT6: DEC AJNZ POINT7MOV 30H,#00HMOV 31H,#05HMOV 32H,#07HMOV 33H,#03HSJMP SHOW POINT7:MOV 30H,#05HMOV 31H,#07HMOV 32H,#03HMOV 33H,#04H SHOW: JNC SHOW1MOV A,33HADD A,#05H MOV 33H,A SHOW1:RET;****************************************************************************** ;ZLG7290数据显示部分子程序;******************************************************************************LEDSHOW: PUSH 00H PUSH 01H PUSH 02H PUSH 03HPUSH 07MOV DPTR,#LEDSEGCLR AMOV R7,#08HMOV R0,#20HMOV R1,#30H LOOP1:MOV A,@R1MOVC A,@A+DPTR MOV @R0,AINC R1INC R0DJNZ R7,LOOP1MOV A,24HADD A,#01HMOV 24H,ALOOP: MOV R7,#08H MOV R0,#20HMOV R2,#10HMOV R3,#WSLALCALL WRNBYTLCALL DELAY0POP 07HPOP 03HPOP 02HPOP 01HPOP 00HRET;******************************************************************************;延时子程序DELAY0: PUSH 00HPUSH 01HMOV R0,#00H DELAY2: MOV R1,#00H DJNZ R1,$DJNZ R0,DELAY2POP 01HPOP 00HRET DELAY1: MOV R7,#20H DJNZ R7,$RET DELAY: PUSH 00HPUSH 01HMOV R0,#00LP: MOV R1,#00HDJNZ R1,$DJNZ R0,LPPOP 01HPOP 00HRET;****************************************************************************** ;蜂鸣器子程序;******************************************************************************BUZZL:PUSH 04H MOV R4,#200 MOV TL0,#66HMOV TH0,#0FCHSETB TR0LOOP002:JNB TF0,$CLR TF0CPL P3.4MOV TL0,#55HMOV TH0,#0FCHDJNZ R4,LOOP002LCALL TWINKLEPOP 04HRETBUZZH:PUSH 04HMOV R4,#128MOV TL0,#66HMOV TH0,#0FCHSETB TR0LOOP003:JNB TF0,$CLR TF0CPL P3.4MOV TL0,#55HMOV TH0,#0FCHDJNZ R4,LOOP003LCALL TWINKLEPOP 04HRET;****************************************************************************** ;数码管闪烁子程序;******************************************************************************TWINKLE:PUSH 00HPUSH 02HPUSH 03HPUSH 07HMOV 38H,#70HMOV 39H,#0FFHMOV R7,#02HMOV R0,#38HMOV R2,#07HMOV R3,#WSLALCALL WRNBYTMOV 3AH,#00HMOV R7,#01HMOV R0,#3AHMOV R2,#0CHMOV R3,#WSLALCALL WRNBYTPOP 07HPOP 03HPOP 02HPOP 00HRET NOTWINKLE:PUSH 00HPUSH 02HPUSH 03HPUSH 07HMOV 38H,#70HMOV 39H,#00HMOV R7,#02HMOV R0,#38HMOV R2,#07HMOV R3,#WSLALCALL WRNBYTMOV 3AH,#00HMOV R7,#01HMOV R0,#3AHMOV R2,#0CH MOV R3,#WSLA LCALL WRNBYT POP 07HPOP 03HPOP 02HPOP 00H RET;****************************************************************************** ;中断子程序;****************************************************************************** INT_7290:PUSH 00HPUSH 01HPUSH 02HPUSH 03HPUSH 04HPUSH 07HPUSH ACCPUSH PSWLCALL NOTWINKLEMOV 50H,#00HMOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV 54H,#00HMOV 55H,#00HMOV 56H,#00HMOV 57H,#00HLOOP_1: CLR CLCALL DISP1JB P3.2,$LCALL INITREADMOV A,29HDEC ACJNE A,#0FH,DOWN ;判断是F键吗,是F关中断退出SJMP TAIL1DOWN: CJNE A,#0EH,DOWN1 ;判断是E键吗,是E显示设定的温度上限MOV A,THI_WARNINGMOV B,#10DIV ABMOV DPTR,#LEDSEGMOVC A,@A+DPTRMOV 51H,AMOV A,BMOVC A,@A+DPTRMOV 50H,AMOV 52H,#12HMOV 53H,#6EHLCALL DISP1JB P3.2,$SJMP TAIL1DOWN1:CJNE A,#0DH,DOWN2 ;判断是D键吗,是D显示设定的温度下限 MOV A,TLI_WARNINGMOV B,#10DIV ABMOV DPTR,#LEDSEGMOVC A,@A+DPTRMOV 51H,AMOV A,BMOVC A,@A+DPTRMOV 50H,AMOV 52H,#12HMOV 53H,#1CHLCALL DISP1JB P3.2,$SJMP TAIL1DOWN2: CJNE A,#0CH,DOWN3 ;判断是C键吗,是C设定的温度下限MOV 50H,#00HMOV 51H,#00HMOV 52H,#12HMOV 53H,#1CHLCALL SET_TLIMITMOV TLI_WARNING,T_SAVEJB P3.2,$SJMP TAIL1DOWN3:CJNE A,#0BH,TAIL1 ;判断是B键吗,是B设定的温度上限MOV 52H,#12HMOV 53H,#6EHLCALL SET_TLIMITMOV THI_WARNING,T_SAVEJB P3.2,$SJMP TAIL1TAIL1: CLR IE0 ;必须清标志POP PSWPOP ACCPOP 07HPOP 04HPOP 03HPOP 02HPOP 01HPOP 00HRETI;****************************************************************************** ;设置报警温度上下限值子程序;****************************************************************************** SET_TLIMIT:LCALL DISP1AGAIN:JB P3.2,$LCALL INITREADMOV A,29HDEC ACJNE A,#0FH,STEP1SJMP TAILSTEP1:CJNE A,#0DH,STEP2SJMP AGAINSTEP2:CJNE A,#0CH,STEP3 SJMP AGAINSTEP3:CJNE A,#0BH,STEP4 JNC AGAINSTEP4:CJNE A,#0AH,STEP5JNC AGAINSTEP5: MOV T_SAVE,AMOV DPTR,#LEDSEGMOVC A,@A+DPTRMOV 51H,ALCALL DISP1 AGAIN1: JB P3.2,$LCALL INITREAD NOPMOV A,29HDEC ACJNE A,#0FH,STEP11 SJMP TAILSTEP11: CJNE A,#0DH,STEP12 SJMP AGAIN1STEP12: CJNE A,#0CH,STEP13 SJMP AGAIN1 STEP13:CJNE A,#0BH,STEP14 SJMP AGAIN1 STEP14:CJNE A,#0AH,STEP15 SJMP AGAIN1STEP15: MOV 50H,AMOV A,T_SAVEMOV B,#10MUL ABADD A,50HMOV T_SAVE,AMOV A,50HMOV DPTR,#LEDSEGMOVCA,@A+DPTRMOV 50H,ALCALL DISP1TAIL:RET;****************************************************************************** ;数码管显示子程序;******************************************************************************DISP1: PUSH 00H PUSH 02HPUSH 03HPUSH 04HPUSH 07HMOV R7,#08HMOV R0,#50HMOV R2,#10HMOV R3,#WSLA LCALL WRNBYT LCALL DELAY POP 07HPOP 04HPOP 03HPOP 02HPOP 00HRET;****************************************************************************** ;读取键值子程序;******************************************************************************INITREAD:MOV R0,#29H MOV R7,#01H MOV R2,#01HMOV R3,#WSLA MOV R4,#RSLA LCALL RDADD RET;****************************************************************************** ;初始化DS18B20子程序;******************************************************************************INIT_1820:SETB DQNOPCLR DQMOV R0,#80HTSR1:DJNZ R0,TSR1SETB DQMOV R0,#25HTSR2:DJNZ R0,TSR2JNB DQ,TSR3LJMP TSR4TSR3:SETB FLAG1 LJMP TSR5TSR4:CLR FLAG1 LJMP TSR7TSR5: MOV R0,#06BH TSR6:DJNZ R0,TSR6 TSR7:SETB DQRET;*********************************;ZLG7290相关子程序;*********************************;(1)带有内部单元地址的多字节写操作子程序 WRNBYT;******************************************************************* ;通用的I2C通讯子程序(多字节写操作);入口参数R7字节数,R0:源数据块首地址;R0原数据块首地址;R2从器件内部子地址;R3:外围器件地址(写);WRBYT、STOP、CACK、STA;******************************************************************* WRNBYT: PUSH PSWPUSH ACCWRADD: MOV A,R3 ;取外围器件地地址(包含r/w=0)LCALL STA ;发送起始信号SLCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应MOV A,R2LCALL WRBYT ;发送内部寄存器首地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应答不正确返回重来WRDA: MOV A,@R0LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应答不正确返回重来INC R0DJNZ R7,WRDALCALL STOPPOP ACCPOP PSWRET;(2)带有内部单元地址的多字节读操作子程序 RDADD;******************************************************************* ;通用的I2C通讯子程序(多字节读操作);入口参数R7字节数;;R0目标数据块首地址;R2从器件内部子地址;;R3器件地址(写);R4器件地址(读);WRBYT、STOP、CACK、STA、MNACK;******************************************************************* RDADD: PUSH PSW ;从PCF8563的02H单元读入7个参数PUSH ACC ;存放于20H-26H单元RDADD1: LCALL STAMOV A,R3 ;取器件地址(写)LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,RDADD1 ;如果应答不正确返回重来MOV A,R2 ;取内部地址LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,RDADD1 ;如果应答不正确返回重来LCALL STAMOV A,R4 ;取器件地址(读)LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,RDADD1 ;如果应答不正确返回重来RDN: LCALL RDBYTMOV @R0,ADJNZ R7,ACKLCALL MNACKLCALL STOPPOP ACCPOP PSWRETACK: LCALL MACKINC R0SJMP RDN;(3)I2C各个信号子程序;********************************************************************** ; 启动信号子程序S;**********************************************************************STA: SETB SDA ;启动信号S SETB SCLNOP ;产生4.7US延时NOPNOPNOPNOPCLR SDA NOP ;产生4.7US延时NOPNOPNOPNOPCLR SCLRET;********************************************************************** ; 停止信号子程序P;*********************************************************************STOP: CLR SDA ;停止信号P SETB SCLNOP ;产生4.7US延时NOPNOPNOPNOPSETB SDA NOP ;产生4.7US延时NOPNOPNOPNOPCLR SCLCLR SDARET;********************************************************************** ; 应答信号子程序 MACKMACK: CLR SDA ;发送应答信号ACK SETB SCLNOP ;产生4.7US延时NOPNOP NOPNOPCLR SCL SETB SDA RET;********************************************************************** ; 非应答法信号子程序MNACK;**********************************************************************MNACK:SETB SDA ;发送非应答信号NACK SETB SCLNOP ;产生4.7US延时NOPNOP NOPNOPCLR SCL CLR SDA RET;********************************************************************** ; 应答检测子程序CACK;**********************************************************************CACK: SETB SDA;应答位检测子程序SETB SCLCLR F0MOV C,SDA ;采样SDAJNC CEND;应答正确时转CENDSETB F0;应答错误时F0置一CEND: CLR SCLRET;********************************************************************** ; 发送一个字节子程序WRBYT;**********************************************************************WRBYT: PUSH 06HMOV R6,#08H;发送一个字节子程序WLP: RLC A ;(入口参数A)MOV SDA,CSETB SCLNOP ;产生4.7US延时NOP NOPNOPNOPCLR SCL DJNZ R6,WLP POP 06H RET;********************************************************************** ; 接收一个字节子程序RDBYTRDBYT: PUSH 06HMOV R6,#08H ;接收一个字节子程序RLP: SETB SDASETB SCL; *******************************************NOP ;!!!!!产生大于15微秒的延时!!!!!!NOP ;注意这是专门为ZLG7290NOP ;添加的20微秒延时部分NOPNOPNOPNOPNOPNOPNOPNOPNOPNOPNOPNOP; ********************************************MOV C,SDAMOV A,R2RLC AMOV R2,ACLR SCLDJNZ R6,RLP ;(出口参数R2)POP 06HRET;********************************************************************** LEDSEG:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H,0FEH,0F6H,00H,02H END。

基于DS18B20的温度采集系统

基于DS18B20的温度采集系统

值 的 低 四 位 , 对 MSB 取 低 三 位 作 为温度值的高位, 整个温度的变化 范围为 0~99。
(六)结果显示 将当前的读取的并经过处理的 温 度 值 用 P0 口 和 部 分 P2 口 显 示 到数码管上, 便于观察, 同时在数 码管的右端将手工设定的温度值显 示出来, 便于对比, 通过按键可以 手工设定温度上限。 (七)键盘功能 用 p3.2 和 p3.4 作为按键输入, 实现对温度极限的手工设置, 其中 p3.2 用来实现减值操作, p3.4 完成 增值操作, CPU 将完成预置温度值 和读取温度值的比较, 两者相等则 固定显示当前温度, 否则同时显示 预置温度和读取温度。 (八)控制部分 通 过 P1 口 将 处 理 过 的 信 号 传 送给 DAC0832 进行模拟量的输出, 该 模 拟 量 经 过 LM324 放 大 , 作 为 控制信号输出。 (九)异步通信 通过异步串行接口将处理过的 温 度 信 号 发 送 给 远 端 的 监 控 PC, 采用 8 位异步通信方式, 波特率为
( 张远晖 编校)
26
《 空中交通管理》 2010 年 第 9 期
如 图 1 所 示 为 总 体 设 计 逻 辑 分辨率可达 0.0625℃, 被测温度用
图。
符号扩展 的 16 位 数 字 量 方 式 串 行
三、 系统功能描述
输出; 其工作电源从远端引入; 多
本 系 统 通 过 DS18B20 温 度 传 个 DS18B20 可 以 并 联 到 3 根 或 2
感器完成对温度的采集; 用左端两 根线上, CPU 只需一根端口线就能
并 处 理 过 的 温 度 值 发 送 给 PC, 作 端模拟温 度 信 号 的 采 集 , 以 12 位
Air Traffic Management/2010(9)

基于DS1820的温度采集系统设计

基于DS1820的温度采集系统设计

DCS1820温度采集系统的设计摘要DS18B20的温度采集系统利用下位机设置温度上下限和实时温度的采集,并将结果传输到上位机,以达到对温度的比较、控制。

本设计用MCS-51单片机为主要硬件,设计了包括温度采集,温度显示,系统控制,串口通信等外围电路。

在温度测量部分采用具有“一线总线”接口的数字传感器DS18B20,实现单线多点数据的采集。

关键词:DS1820温度传感器单片机通信接口目录摘要 0前言 (2)第一章温度采集显示系统的设计要求和设计方案 (3)1.1 系统设计任务 (3)1.2 功能要求 (3)1.3 方案论证和选定 (3)第二章温度采集系统外部器件的设计 (5)2.1 总体分析 (5)2.2 8051单片机的性能及应用 (6)2.3 DS18B20芯片简介 (11)2.4 DS18B20原理及应用 (13)2.5 DS18B20与单片机的典型接口设计 (26)2.6 DS18B20使用中注意事项 (27)第三章硬件设计 (29)3.1 硬件电路设计的功能简介 (29)3.2 硬件设计部分的组成 (30)3.3 硬件电路图 (31)第四章软件电路的设计 (32)4.1 系统功能 (31)4.2 系统流程图 (31)4.3 DS18B20温度采集源程序 (32)第五章联机调试和分析 (39)结论 (39)参考文献 (40)致谢.......................................... 错误!未定义书签。

附录1 图片 (41)附录2 Proteus仿真软件电路图 (42)前言在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。

由DALLAS出品的新型的单路串行数字温度传感器DS18B20,完成温度测量、分析、判断阈值、输出功能。

温度测量(ds18b20)

温度测量(ds18b20)

用DS18B20温度传感器进行温度测量DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

DS18B20、DS1822 “一线总线”数字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

DS1822的精度较差为±2°C 。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。

而且新一代产品更便宜,体积更小。

DS18B20、DS1822 的特性DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与DS18B20软件兼容,是DS18B20的简化版本。

省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。

继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。

DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

ds18b20温度传感器工作原理

ds18b20温度传感器工作原理

ds18b20温度传感器工作原理
DS18B20温度传感器是一种数字温度传感器,它基于热电效
应来测量温度。

该传感器由一个精密的温度传感器和一个数字转换器组成。

以下是DS18B20温度传感器的工作原理:
1. 热电效应:DS18B20温度传感器利用热电效应来测量温度。

当两个不同材料的接触点形成温度梯度时,就会产生电动势。

传感器中的温度传感器部分采用的材料对温度变化非常敏感,因此产生的电动势可以反映出温度的变化。

2. 温度传感器:DS18B20温度传感器中的温度传感器部分是
由一个特殊的材料制成的。

该材料具有温度敏感性,当温度变化时,该材料会产生电动势。

这个电动势可以通过传感器的引脚进行读取和转换。

3. 数字转换器:DS18B20温度传感器具有内置的数字转换器。

这个数字转换器可以将从温度传感器获得的电压信号转换为数字信号。

数字信号可以直接读取和处理,而无需进行模拟信号转换。

4. 串行总线通信:DS18B20温度传感器通过一种称为One-
Wire总线的串行通信协议与主控制器进行通信。

传感器和主
控制器之间只需使用单一的数据线进行通信,使得传感器的连接变得简单方便。

总结起来,DS18B20温度传感器工作原理是利用热电效应测
量温度,并通过温度传感器和数字转换器来转换和读取温度信号。

该传感器通过One-Wire总线与主控制器进行通信。

ds18b20工作原理

ds18b20工作原理

ds18b20工作原理DS18B20是一种数字温度传感器,它可以通过一根数据线进行温度的采集和传输。

DS18B20工作原理的核心是利用温度对半导体材料电阻的影响来实现温度的测量。

接下来,我们将详细介绍DS18B20的工作原理。

首先,DS18B20内部包含了一个温度传感器芯片,该芯片采用了数字信号输出的方式。

在DS18B20内部,有一个模拟-数字转换器(ADC),它可以将模拟信号转换为数字信号。

当DS18B20受到温度的影响时,芯片内部的电阻会发生变化,进而改变了电压信号的大小。

ADC会将这个模拟信号转换为数字信号,然后通过数据线输出给外部设备。

其次,DS18B20采用了一种叫做“单总线”(One Wire)的通信协议。

这意味着DS18B20只需要一根数据线就可以完成温度的采集和传输。

在通信过程中,DS18B20会将温度数据以数字信号的形式发送给外部设备。

外部设备可以通过读取数据线上的数字信号来获取温度信息。

此外,DS18B20还具有一些特殊的功能,比如温度的精度调节、温度报警功能等。

通过这些功能,DS18B20可以满足不同场景下的温度监测需求。

总的来说,DS18B20的工作原理是基于半导体材料电阻随温度变化的特性,利用ADC将模拟信号转换为数字信号,并通过单总线通信协议将温度数据传输给外部设备。

同时,DS18B20还具有一些特殊的功能,可以满足不同场景下的温度监测需求。

在实际应用中,DS18B20被广泛应用于各种温度监测系统中,比如智能家居、工业自动化等领域。

由于其简单、稳定、精准的特点,DS18B20在温度监测领域具有很高的性价比,受到了广泛的认可和应用。

综上所述,DS18B20是一种基于半导体材料电阻特性的数字温度传感器,其工作原理是通过ADC将模拟信号转换为数字信号,并通过单总线通信协议将温度数据传输给外部设备。

在实际应用中,DS18B20具有简单、稳定、精准的特点,被广泛应用于各种温度监测系统中。

基于DS18B20的温度采集系统显示

基于DS18B20的温度采集系统显示

目录一设计任务和要求 (1)二系统方案 (1)2.1设计方案 (1)2.2 DS18B20工作原理 (2)三理论分析与计算 (3)3.1主程序流程图 (3)3.2读出温度子程序流程图 (3)3.3温度转换命令子程序流程图 (4)四电路与程序设计 (5)4.1电路图 (5)4.2程序 (6)五结果分析 (12)总结 (13)参考文献 (14)一设计任务和要求1、利用DS18B20实现温度采集,并用数码管显示。

能实现温度上下限的设置,并能够超限报警;2、硬件设计部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。

设计的单元电路必须有工作原理,器件的作用,分析和计算过程;3、软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;4、原理图设计部分,根据所确定的设计电路,利用Protel工具软件绘制电路原理图,提供元器件清单。

二系统方案2.1设计方案方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

2.2 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。

DS18B20测温原理如图3所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

基于DS18B20的温度采集系统设计

基于DS18B20的温度采集系统设计

规划设计 Planning and design124基于DS18B20的温度采集系统设计魏慧竹(沈阳理工大学辽宁沈阳 110035)中图分类号:TU7 文献标识码:B 文章编号1007-6344(2017)05-0124-011 DS18B20的工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。

DS18B20测温原理如图3所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

2 AT89C52简介低功耗,高性能CMOS 8位单片机,片内含4K BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。

DS18B20温度采集与显示系统设计

DS18B20温度采集与显示系统设计

目录•实验专题描述—实验目的和实验功能—系统硬件及软件——STC单片机介绍•实验原理与方法— DS18C20简单原理介绍—LCD1602简单原理介绍— AT24C02简单原理介绍•实验结果与讨论-专题制作过程中所遇到的困难与解決方法•心得与体会•程序码一、实验专题描述单片机综合实验的目的是训练单片机应用系统的编程及调试能力,通过对一个单片机应用系统进行系统的编程和调试,掌握单片机应用系统开发环境和仿真调试工具及仪器仪表的实用,掌握单片机应用程序代码的编写和编译,掌握利用单片机硬件仿真调试工具进行单片机程序的跟踪调试和排错方法,掌握示波器和万用表等杆塔工具在单片机系统调试中应用。

利用STC89C52、DS18B20、LCD1602、AT24C02等元器件设计温度采集与显示系统。

系统具有以下功能:1、能正确检测温度;2、在1602上实时显示温度;3、每隔10秒采集一次温度数据并保存到AT24C024、按键按下后,可逐个显示之前采集到的数据;5、其他功能可根据系统上的资源自行设定。

扩展功能:温度超过设定值,蜂鸣器报警;时间日期的显示;按键按下,重新开始采集温度等等硬件组成:本系统所用的硬件有如下图软件组成软件有:keil软件、windows操作系统和串口调试助手等软件组成。

STC单片机介绍单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(single chipmicrocomputer).它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.图2-1单片机封装及引脚结构DS18B20数字温度传感器介绍DALLAS最新单线数字温度传感器DS18B20的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。

温度传感器ds18b20

温度传感器ds18b20

温度传感器ds18b20温度传感器DS18B201. 简介温度传感器DS18B20是一种数字温度传感器,可用于测量环境温度。

该传感器由Maxim Integrated公司生产,并在许多应用中得到了广泛的应用,如家庭自动化、气象站、工业控制等。

DS18B20采用了数字化接口,并具有高精度、可编程分辨率和低功耗等特点。

2. 技术规格DS18B20的技术规格如下:- 工作电源:3.0V至5.5V- 测量范围:-55°C至+125°C- 分辨率:可编程为9、10、11或12位- 精度:±0.5°C(在-10°C至+85°C范围内)- 通信接口:一线式数字接口3. 工作原理DS18B20采用了一线式数字接口,这意味着它只需要一根数据线进行通信。

传感器从控制器接收命令,并通过数据线将温度数据发送回控制器。

传感器的数据线同时起到了供电的作用。

DS18B20通过内部的精密温度传感器测量环境温度。

传感器将温度转换为数字信号,并通过数据线将其发送给控制器。

传感器的分辨率可以根据需要进行编程,从而在精度和响应速度之间进行平衡。

4. 使用方法使用DS18B20温度传感器非常简单。

首先,将传感器的电源引脚连接到可用的电源引脚,并将数据线连接到控制器的GPIO引脚。

然后,通过控制器向传感器发送命令,请求温度数据。

传感器将在一段时间后将温度数据发送回控制器,控制器可以读取这些数据并进行相应的处理。

DS18B20还具有一些特殊的命令,如启动温度转换、复位传感器和读取ROM代码等。

这些命令可以通过与控制器的通信来实现。

5. 应用领域温度传感器DS18B20在许多应用中得到了广泛的应用。

以下是一些常见的应用领域:- 家庭自动化:DS18B20可以用于监测室内温度,从而实现智能化的温控系统。

- 气象站:DS18B20可以用于监测室外温度,并将数据发送到气象站系统进行分析和显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. MCS-51单片机的引脚图:
2. MCS-51单片机的内部结构图:
(1)电源引脚Vcc和Vss Vcc(40脚):电源端,+5伏 Vss(20脚):接地端
(2)时钟电路引脚XTAL1和XTAL2 XTAL1(18脚)和XTAL2(19脚):接外部晶体和微调晶体。在 89C51中,它们分别是震荡电路反向放大器的输入端和输出端, 震荡电路的频率就是晶体固有频率。 (3). 控制引脚信号RST,ALE,PSEN和EA RST/VpD(9脚):RST是复位信号输入端,高电平有效。此引 脚的第二功能是VpD,即备用电源的输入端。 ALE/PROG(ADDRESS LATCHENABLE/PROGRAMMING (30脚):地址锁存允许信号端。上电后,此端不断向外输出正脉 冲信号,此频率为振荡频率fosc的1/6。CPU访问片外存储器时, ALE输出信号作为所存低八位地址的控制信号。
P3口线的第二功能入下表所示
口 线 替代的第二功能
P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
RXD(串行口输入) TXD(串行口输出) INT0(外部中断0输入) INT1(外部中断1输入) T0(定时器0的外部输入) T1(定时器1的外部输入) WR(片外数据存储器“写选通控制”输出) RD(片外数据存储器“读选通控制”输出)
DS18B20温度数据表
(3). 高速缓存器
DS18B20温度传感器的内部存储器包括一个高速暂存 RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度 TH、低温度触发器TL和配置寄存器中的信息。 高速暂存器RAM是一个连续8字节的存储器,前两个字节 是测得的温度信息,第1个字节的内容是温度的低8位,第2个 字节是温度的高8位。第3个和第4个字节是高温触发器TH、低 温触发器TL的易失性复制,第5个字节是配置寄存器的易失性 复制,以上字节的内容在每一次上电复位时被刷新。第6、7、 8个字节用于暂时保留为1。
7. Read Scratchpad( 读暂存器)命令代码为BEH
8. Copy Scratchpad( 复制暂存器)命令代码为48H 9. Convert T( 温度转换)命令代码为44H 10. Read E
2
( 复制回暂存器)命令代码为B8H
11. Read Power Supply ( 读电源使用模式)命令代码为B4H
PSEN (PROGRAM STORE ENABLE,29脚):程序存储允许 输出信号端。在访问片外程序存储器时,此端定时输出负脉冲 作为读片外存储器的选通信号。此引脚接EPROM的OE端。 PSEN端有效时,即允许读出EPROM/ROM中的指令代码。 EA/Vpp(ENABLE ADDRESS/VOLTAGE PULSE OF RAMMING,31脚):外部程序存储器地址输入端/固化编程电 压输入端。当输入信号EA引脚接高电平时,CPU只访问片内 EPROM/ROM并执行内部程序存储器中的指令,但是当PC超 过0FFFH时,将自动转去执行片外程序存储器中的内容。当输 入信号EA引脚接低电平时,CPU只访问外部EPROM/ROM并 执行外部程序存储器中的指令,而不管是否具有片内程序存储 器。此引脚的第二功能Vpp是对片内EPROM固化编程时,作 为施加较高编程电压的输入端。
1
1
12位
750ms
温度值分辨率设置表
3. DS18B20的测温原理
低温度系数晶振的振荡频率受温度影响很小,用于 产生固定频率的脉冲信号送给计数器1。高温度系数 晶振随温度变化其振荡率明显改变,所产生的信号作 为计数器2的脉冲输入。计数器1和温度寄存器被预 置在- 55℃所对应的一个基数值。计数器1对低温度 系数晶振产生的脉冲信号进行减法计数,当计数器1的 预置值减到0时,温度寄存器的值将加1,计数器1的预 置将重新被装入,计数器1重新开始对低温度系数晶振 产生的脉冲信号进行计数,如此循环直到计数器2计数 到0时,停止温度寄存器值的累加,此时温度寄存器中 的数值即为所测温度。图中的斜率累加器用于补偿 和修正测温过程中的非线性,其输出用于修正计数器1 的预置值。
设计内容:用单片机、温度传感器等器件实现温度采集
设计安排:1.硬件设计。介绍单片机、温度传感器、
显示电路等相关原理与知识;
2.软件设计。
3.用PROTEUS软件对硬件系统进行仿真;
4.两人一组做实物。
温 度 采 集 系 统 的 仿 真 效 果 图
电路
温 度 采 集 系 统 的 元 器 件 清 单
DS18B20温度值格式表 (高5位为符号位,低12位为二进制数值位)
转换后得到的12位二进制数据,存储在 DS18B20的两个8比特的RAM中,二进制中的前 面5位是符号位。 如果测得的温度大于0,这5位为0,只要将测 到的数值乘于0.0625即可得到实际温度;如果温 度小于0,这5位为1,测到的数值需要取反加1 (即求补)再乘于0.0625即可得到实际温度。 例如:+125℃的数字输出为07D0H, +25.0625℃的数字输出为0191H, -25.0625℃的数字输出为FF6FH, -55℃的数字输出为FC90H。
(4). 配置寄存器 TM R1 R0 1 1 1 1 1
配置寄存器结构 低五位一直都是1 ,TM是测试模式位(出厂时该位 被设置 为0,用户不必改动),用于设置DS18B20在工作模式还是在 测试模式。在DS18B20出厂时该位被设置为0,用户不要去改 动。R1和R0用来设置分辨率。 R1 0 0 1 R0 0 1 0 分辨率 9位 10位 11位 温度最大转换时间 93.75ms 187.5ms 375ms
1. 三种封装:
(1)采用3引脚TO-92的封装形式
(2)采用6引脚TSOC封装形式
(3)采用8引脚SOIC封装形式
NC:空引脚,悬空不用。 VDD:可选电源脚,电源电压范围3~5.5V,当器件工作 在寄生电源时,此引脚必须接地。 DQ(4脚):数据输入/输出脚。漏极开路,常态下高电平。 GND:电源地
0111 0000 1011 1001 1100 1101 1111 0000 1111 1101
时钟振荡电路
控制器 显示电路
元器件名称 晶振12MHz 30pF电容 STC89C52RC单片机
数量 1 2 1
备注Βιβλιοθήκη 采集电路 供电电路万用板 复位电路
单片机底座 0.56寸 4位共阳红色 数码管5461BS A09-102J 排阻 1k DS18B20温度传感器 USB接口 PCB板 10cm*10cm 10uF电容 8.2kΩ电阻
1 1 1 1 1 1 1 1
相关知识点的介绍:
一. 温度传感器DS18B20 1-wire Bus(单总线)数字温度传感器芯片DS18B20 是美国Datlas半导体公司(现已并入MAXIM公司)于 20世纪90年代新推出的一种串行总线技术。该技术只 需要一根信号线(将计算机的地址线、数据线、控制 线合为一根信号线)便可完成串行通信。单根信号线, 既传输时钟,又传输数据,而且数据传输是双向的, 在信号线上可挂上许多测控对象,电源也由这根信号 线供给,所以在单片机的低速(约100kbps以下的速 率)测控系统中,使用单根总线技术可以简化线路结 构,减少硬件开销。
3.单片机的晶振电路:
4.单片机的复位电路:
三、显示电路
f e
a g d
b c h
1.数码管的分类
数码管按段数分为七段数码管和八段数码管,八段 数码管比七段数码管多一个发光二极管单元(多一个小 数点显示);按能显示多少个“8”可分为1位、2位、4 位等等数码管;按发光二极管单元连接方式分为共阳极 数码管和共阴极数码管。共阳数码管是指将所有发光二 极管的阳极接到一起形成公共阳极(COM)的数码管。共 阳数码管在应用时应将公共极COM接到+5V,当某一 字段发光二极管的阴极为低电平时,相应字段就点亮。 当某一字段的阴极为高电平时,相应字段就不亮。共阴 数码管是指将所有发光二极管的阴极接到一起形成公共 阴极(COM)的数码管。共阴数码管在应用时应将公共极 COM接到地线GND上,当某一字段发光二极管的阳极 为高电平时,相应字段就点亮。当某一字段的阳极为低 电平时,相应字段就不亮。
2. DS18B20内部结构图 :
DQ
C
VDD
64位ROM DS18B20主要有4个数据部分: 温度传感器
高速缓存器 配置寄存器
(1). 64位ROM。64位ROM是由厂家用激光刻录一个64位二进 制ROM代码,是该芯片的序列号,它可以看作是该DS18B20的地 址序列码。64位光刻ROM的排列是:开始8位(10H)是产品分类 标号;接着的48位序列号是一个大于281×10 12的十进制数编码; 8 5 4 最后8位是前面56位的循环冗余校验码(CRC X X X 1)。 光刻ROM的作用是使每一个DS18B20的ROM代码都各不相同,这 样就可以实现一根总线上挂接多个DS18B20的目的。
64位ROM的结构
(2). 温度传感器。
(DS18B20出厂时被设置为12位)
温度传感器是DS18B20的核心部分,该功能部件可完成对温 度的测量。通过软件编程可将-55~+125º C范围内的温度值按 9位、10位、12位的转换精度进行量化,以上的转换精度都包括 一个符号位,因此对应的温度量化值分别为0.5º C、0.125º C、 0.0625º C,即最高转换精度为0.0625º C。 以12位转化为例:用16位符号扩展的二进制补码读数形式提 供,以0.0625℃/LSB形式表达,其中S为符号位。
二. MCS-51单片机
单片机SCM(Single Chip Microcomputer), 即Microcontroller,是把微型计算机主要部分都 集成在一个芯片上的单芯片微型计算机。主要 包括了微处理器(CPU)、存储器(ROM, RAM)、 输入/输出口(I/O口)和定时器/计数器、中断系统 等功能部件。单片机自70年代出现以来,已经 有了很大的发展,被广泛应用于机械、测量控 制、工业自动化、智能接口和智能仪表等许多 领域。
相关文档
最新文档