数字式温度计设计完整版新

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

数字式温度计设计
一、引言
意大利科学家伽利略在1592年差一点儿发明了温度计。

他制作了一个称为“验温计”的仪器。

其中有一根开口的管子伸到一只盛水的容器中,管内水的水平面随室内温度而变化。

糟糕的是当空气压力变化时,水平面也随之改变。

17世纪初,意大利托斯卡纳的公爵斐迪南二世对伽利略的仪器着了迷,并且还用它来做实验。

1644年,他将该装置密封以隔绝周围的空气,从而排除了空气压力的影响。

但是,这第一支温度计与我们如今所知道的那些温度计相仿,是水银温度计。

在18世纪初,它由出生于波兰仪器制造者D.G.华伦海特加以改进和完善。

这类温度计的工作原理是物质受热后膨胀。

温度计由一根底部为一个球体的狭窄玻璃管组成,球体中灌满了诸如水银之类的液体。

当温度上升时,液体就膨胀,并且朝管子上方推移。

人们根据管子上或管子旁的标记可以读出温度数。

华伦海特还采用了一种以他的名字命名的温度测定标度。

华伦海特标度过去曾经广泛使用,但如今由瑞典天文学家安德斯·摄尔修斯在1742年开发的摄氏标度,或称百分标度,却更受人们的喜爱。

1867年,托马斯·阿巴特医生第一次运用水银温度计,给前来就诊的病人测量体温。

现在,液体温度计已经广泛的应用与各个方面了。

但是随着人们对测量要求的不断提高,液体温度计已经不能满足人们的需求了。

这也就引出了课题。

温度测量的原理主要是:将随温度变化而变化的物理参数,如膨胀、电阻、电容、热电动势、磁性、频率、光学特性等通过温度传感器转变成电的或其他信号,传给处理电路。

,最后转换成温度数值显示出来。

数字式温度计以热敏电阻作感温元件,采用电压-频率变换电路克服热敏电阻的非线性缺点;通过调节电路中两只微调电容可替换不同参数的热敏电阻;利用自平衡电桥消除了远距离测温时连接热敏电阻的传输线的影响;采用BGD进位制计数显示电路使结构简单可靠.因此,数字式温度计是一种具有读数直观、反映被测温度时间短,测温
范围宽和精度高等特点,并能进行远距离测温和控温的新型的数字式温度计。

一种用非线性热敏电阻制作的数字式温度计,它包括一个由热敏电阻制作的感温探头,其特征在于:还包括由自平衡电桥、差动放大器,对数放大器和压控振荡器组成的电压--频率变换电路与由计数器、显示电路组成的显示部件。

目前市面上的数字式温度计主要有,HS-Ⅰ型数字温度计,HS-Ⅱ型数字温度计, SWC的数字温度计,DS18B20数字温度计等。

在一些温控系统电路中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成A/D转换器能接收的模拟量,再经过采样/保持电路进行A/D转换,最终送入单片机及其相应的外围电路,完成监控。

但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。

本次设计采用单片机结合DS18B20温度传感器来设计,因此,本系统用一种新型的可编程温度传感器(DS18B20),不需复杂的信号调理电路和A/D转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。

二、设计目的
设计一个基于单片机的饮水机的温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数,水温可以在一定范围内由人工设定,,可以人为设置水的温度的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷,温度检测范围0~95℃,精度±1℃,当温度超过设定值时具有示警功能。

利用单片机AT89S52实现水温的智能控制,使水温能够在0~95℃之间实现控制温度调节。

利用仪器读出水温,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或降温),而且能够将温度显示在我们的七段发光二极管板上。

三、系统功能
(一)可以对温度进行自由设定,到那时必须在0-100摄氏度单位内,设定时可以适时的显示说设定的温度值,温度是可以自由设置的,传感器的检测值与设定的温度比较,可以显示在七段发光二极管上。

(二)温度由1台饮水机来实现,如果温度不在0~95℃之间,则在LED上显示“88 88”,表示错误。

(三)能够保持不间断显示水温,显示位数4位,分别为百位,个位,十位,和小数位。

(但由于规定不超过100度,所以百位也就没有实现,默认的百位是不显示的)
四、温度控制总体方案与原理
(一)系统模块图
系统模块分为:DS18B20模块,显示模块,继电器模块,键盘输入模块,DS18B2 0可以被编程,所以箭头是双向的,CPU(89S52)首先写入命令给DS18B20,然后DS 18B20开始转换数据,转换后通过89S52来处理数据。

数据处理后的结果就显示到数码管上。

<单片机DS18B20水温控制系统设计总体图>
(二)系统模块总关系图
本系统的执行方法是循环查询执行的,键盘扫描也是用循环查询的办法,由于本系统对实时性要求不是很高,所以没有用到中断方式来处理。

<单片机DS18B20水温控制系统设计程序结构图>
五、测温部分
(一)温敏二极管
60年代初期,随着半导体技术和测温技术的发展,人们发现在一定的电流模式下,PN结的正向电压与温度之间的关系表现出良好的线性。

根据这一关系,可以利用二极管进行温度检测。

专用的砷化镓和硅温敏二极管,分别于1966年和1972年商品化,现已广泛用于1—400K范围的温度测量.由于砷化镓温敏二极管的磁灵敏度低,因此常常用于强磁场下的低温测量。

硅温敏二极管的磁灵敏度虽然比砷化镜温敏二极管高,但由于它的工艺成熟,成本低且在低温下有较高的灵敏度,因此,是目前产量和用量最大的一种温敏二极管。

鉴于上述两种温敏二极管的工作温度上限受到材料的禁带宽度的限制不能太高,在我国开始有人研制碳化硅温敏二极管,其工作温度上限可达500℃。

80年代初,也有人利用二极管的结电流、结电容以及反向电压的温度特性测温。

本设计就是利用PN结正向电压温度特性工作的温敏二极管而设计的。

有关PN结的定性讨论
对杂质半导体用相反类型的杂质进行局部掺杂,由于杂质补偿作用,只要掺杂浓度超过材料的初始浓度,在此局部范围就可以改变半导体的导电类型.例如可在P型材料中形成局部N型区;或反之,在N型材料中形成局部P型区。

于是在不同导电类型区域之间形成PN结。

实际制做PN结的工艺方法有多种多样,最常用的方法包活合金法、扩散台面法、平面法和离子注入法,下图给出了用这些方法制造的PN结二极管的管芯结构示意图。

由于在PN结界面处存在载流子浓度差,N区中的电子和P区中的空穴互相向对方区域扩散是不可避免的。

扩散的结果使PN
结界面P区一侧缺少空穴,从而表现出负的空间电荷——受主离子;而在界面的N区一侧则由于缺少电子而表现出正的空间电荷——施主离子。

这种空间电荷形成的电场对载流子所产生的漂移作用对扩散过程起阻碍作用,且随扩散过程的进行而逐渐加强。

当逐渐加强的漂移作用完全与扩散作用抵消时,PN结达到平衡.这时空间电荷区宽度一定,正负空间电荷数量一定且相等,因此在PN结空间电荷区内建立起恒定的内建电场。

内建电场的存在使得处于其中的载流子得到附加的电势能,从而导致空间电荷区中能带的弯曲,如右图所示。

设在空间电荷区能带的弯曲总量为qV D。

,而空间电荷区外面两侧因为不存在电场,仍保持电中性,所以能带保持平直而不弯曲(设N区和P区的掺杂都是均匀的)。

空间电荷区中的能带弯曲对N型中性区中的电子和P型中性区中的空穴来说都是一种势垒(因此空间电荷区亦称为势垒区),它们
要跑到对方那边去都必须克服这个高度为qV D的势垒,因此阻止了载梳子的扩散,这等效于电场的漂移作用。

在热平衡条件下,费米能级到处相等,因此半导体的N型和P型中性区及空间电荷区都有统一的费米能级,由于多数载流于浓度在空间电荷区迅速衰减,所以空间电荷区亦称耗尽区。

当有外电场存在时,PN结的平衡状态受到破坏。

在正向偏置条件下(即P区接偏置电源的正极,N区接负极),外加电场与内建电场方向相反,内建电场的漂移作用被削弱,导致扩散作用占优势,于是N区电子和P区空穴分别向对方注入,形成正向电流。

由于正向电流是多数载流于扩散电流,所以电流大,且强烈地依赖于外加电压。

大量通过空间电荷区注入到对方的载流子作为非平衡少数载流子将在靠近空间电荷区边界的一定眨离内形成积累,而且边扩散边复合,半导体的这部分称为扩散区.给出了正偏PN结的能带和载流子浓度分布。

与平衡PN结相比,统一的费米能级变为分开的电子准费米能级E n F和空穴准费米能级E p F。

如果正偏压为V,那么N型中性区的E n F;将比P型中性区的E p F提高qV,因而PN结势垒也被压低同一数量,势垒高度变为q(V D-V),而且势垒区宽度变窄,压低的势垒有利于多数载流子向对方对方互相扩散,形成较大的正向电流。

在反偏条件下(即P区接负,N区接正),外加电场与内建电场方向一致,使内建电场得到加强,导致空间电荷区中的漂移作用大于扩散作用。

这时空间电荷区右边界Xn 处的少数载梳子空穴和左边界一X处的少数载流子电子分别被电场抽走,而远处中性区的少数载流子通过扩散来补充,形成反向电
流。

由于少数载流子数量极少,所以反向电流很小。

而且不太大的反偏压就能使边界处的少数载流子浓度几乎为零,而反向扩散区的特征长度L n和Lp,(分别称为电子和空穴的扩散长度)为常数,所以反向扩散区内载流子浓度梯度不再随电压而变化,因此反向电流与反偏压无关。

表现出饱和特性.反偏压V使N型中性区的E p F相对于P型中性区的E p F 降低|qV|,结果使得结的势垒高度相应提高|qV|,并使势垒区变宽。

提高的势垒不利于多数载流子的扩散而有利于少数载流子的抽取.
1.不同电流模式下的V F—T关系
温敏二极管的V F—T关系也将不同.温敏二极管的工作电流模式通常有以下三种:
(1)恒定电流.这种电流通常由恒流源提供.
(2)正比于绝对温度的电流.在恒压供电的简单串联电路和电桥电路中,通过温敏二极管的电流基本上属于这种电流。

(3)正比于绝对温度7次幂的电流.这种电流可由一个电流函数电路提供.
上述三种电流模式的特性曲线如图所示.其中JP2为室温(25℃)下的电流值
(二)测温电路
测量电路部分采用了简单的串联电路,电路图如图所示.可以推导出,在这种电路中,通过温敏二极管的电流为一个缓变函数,在不太宽的温
度范围内变化很小,所以随温度呈近似
的线性关系.温度升高,通过温敏二极
管的电流变大.当温敏二极管通过一个
随温度呈线性变化的工作电流时,其二
极管两端的电压与温度之间呈现出比通
过恒定的工作电流时要小的线性偏差,
并且在这种工作状态下,温敏二极管在
整个工作温度范围内,自热温升随温湿
度变化较小.因此,采用简单的串联电
路可以获得比恒流源电路更高的测量精
度。

在这种电路中,通过温敏二极管的电流大小取决于加在二极管两端的电压和电阻R。

电压的波动和电阻R的阻值变化,都会带来测量误差.因此,为保证测量精度,电压应由恒压源提供,电阻R应采用温度系数小者为宜。

(三).DS18B20的测温功能
DS18B20为集成电路,无需A/D转换器。

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

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

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

对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。

DSI8B20完成温度转换后,就把测得的温度值与TH做比较,若T>TH或T RoM操作命令-> 存储器操作
1.温度转换核心及其算法
由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。

温度高
字节(MS Byte)高5位是用来保存温度的正负(标志为S的bit11~bit15),高字节(MS Byte)低3位和低字节来保存温度值(bit0 ~ bit10)。

其中低字节(LS Byte)的低4位来保存温度的小数位(bit0 ~ bit 3)。

由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。

也就说,本系统的温度精确到了0.1度。

算法核心:首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LS Byte)取反加一变成原码。

处理过后把DS18B20的温度Copy到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位,百位的BCD码存入RAM中。

由于百位没有用,默认情况是置为0A,在显示屏上没有任何显示。

温度算法核心代码DATA_DEAL: MOV A,TEMPERATURE_H ;TEMPERATURE_H存放的是DS18B20转换后的高8位的值(上图的MS Byte)ANL A,#80H ;判温度是否零下JZ TEMPC1 ;A为0,说明是正数,跳往TEMPC1,如果是负数,则对低8为进补码处理CLR C MOV A,TEMPERATURE_L ;为负数,对低8 位(上图的LS Byte)求补CPL A ;取反加1 ADD A,#01H MOV TEMPERATURE_L,A ;取补码后存回TEMPERA TURE_L,此时TEMPERATURE_L里面的值就可以表示温度了MOV A,TEMPERATURE_H CPL A ADDC A,#00H ;高位TEMPERATURE_H取反,加上从低位TEMPERA TURE_L进来的位MOV TEMPERATURE_H,A ;写回TEMPERA TURE_H MOV TEMPERATURE_HC,#0BH SJMP TEMPC11 TEMPC1: MOV TEMPERATURE_HC,#0AH TEMPC11:MOV A,TEMPERATURE_HCSW APAMOVTEMPERA TURE_HC,A MOV A,TEMPERATURE_L ANL A,#0FH ;取A低4位(小数位,单位是0.0625),得出来的数要乘以0.0625,通过查表来算出值MOV DPTR,#TEMPDOTTAB MOVC A,@A+DPTR ;查表MOV TEMPERATURE_LC,A ;TEMPERATURE_LC的低四位保存小数部分BCD MOV DIS_BUF_X,A ;小数位的BCD码送入显示buffer中MOV A,TEMPERATURE_L ;整数部分ANL A,#0F0H ;得到个位单个数值SWAP A ;SWAP后就得到个位真正的个位MOV TEMPERATURE_L,A MOV A,TEMPERATURE_H ANL A,#0FH SW AP A ORL A,TEMPERATURE_L MOV TEMPERATURE_ZH,A ;组合后的值存入TEMPERATURE_ZH LCALL HtoB ;转换HEx值成为BCD码MOV TEMPERATURE_L,A ;TEMPERATURE_L目前存入的是十位和个位的BCD编码ANL A,#0F0H SWAP A ORL A,TEMPERATURE_HC ;TEMPERATURE_HC 低4位存放十
位数BCD MOV TEMPERATURE_HC,A MOV A,TEMPERA TURE_L ANL A,#0FH SW AP A ;TEMPERATURE_LC高4位存放个位数BCD ORL A,TEMPERATURE_LC MOV TEMPERATURE_LC,A MOV A,R7 JZ TEMPC12 ANL A,#0FH SW AP A MOV R7,A MOV A,TEMPERA TURE_HC ;TEMPERA TURE_HC高4位存放百位数BCD ANL A,#0FH ORL A,R7 MOV TEMPERA TURE_HC,A TEMPC12:RET ;小数部分码表TEMPDOTTAB:DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06H,06H,07H,08H,08H,09H ,09H 结果温度值的BCD码存放到TEMPERA TURE_HC(百位和十位),TEMPERATURE_LC(个位和小数位)中。

命令-> 处理数据
六、温度传感器DS18B20原理与特性
本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。

集成式数字温度传感器DS1820的出现开辟了温度传感器技术的新领域, 它利用单总线的特点可以方便的实现多点温度的测量。

而可组网数字式温度传感器DS1820则是
DS1820的更新产品, 它在电压、特性及封装方面都具有优势, 给了用户更多的选择, 让用户可以更方便的构建适合自己的测温系统。

DS18B20充分利用了单总线的独特特点, 可以轻松的组建传感器网络, 提高系统的抗干扰性,使系统设计更灵活、方便, 而且适合于在恶劣的环境下进行现场温度测量。

特点:
独特的单线接口仅需一个端口引脚进行通讯
简单的多点分布应用
无需外部器件
可通过数据线供电
零待机功耗
测温范围-55~+125℃,以0.5℃递增。

华氏器件-67~+2570F,以0.90F 递增
温度以9 位数字量读出
温度数字量转换时间200ms(典型值)
用户可定义的非易失性温度报警设置
报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
应用包括温度控制、工业系统、消费品、温度计或任何热感测系统
DS18B20的工作遵循严格的单总线协议。

主机首先发一复位脉冲, 使信号线上所有的DS18B20芯片都被复位, 接着发送ROM操作命令, 使序列号编码匹配的DS18B20被激活, 准备接收下面的内存访问命令。

内存访问命令控制选中的DS18B20的工作状态, 完成整个温度转换、读取等工作(单总线在ROM命令发送之前存储命令和控制命令不起作用)。

其工作流程图如图所示。

在对DS18B20进行操作的整个过程中, 主要包括三个关键过程主机搜索DS18B20序列号、启动在线DS18B20作温度转换、读取在线温度值。

其中主机启动温度转换并读取温度值的流程图如图所示。

工作中系统对DS18B20的操作以ROM命令和存储器命令形式出现。

其中ROM操作命令均为8位长, 命令代码分别为:读ROM(33H)、匹配ROM(CCH)、跳过ROM(CCH)、搜索ROM(FOH)和告警搜索(ECH)命令。

存储器操作命令为:写暂存存储器(4EH)、读暂存存储器(BEH)、复制暂存存储器(48H)、温度变换(44H)、重新调出EERAM(B8H)和读电源供电方式(B4H)命令。

(一)DSl8B20的管脚及特点
DS18B20可编程温度传感器有3个管脚。

(如图:1) GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。

VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.O~5.5 V。

本次使用外部电源供电。

主要特点有: 1. 用户可自设定报警上下限温度值。

2. 不需要外部组件,能测量-55~+125℃范围内的温度。

3. -10℃~ +85℃范围内的测温准确度为±0.5℃。

4. 通过编程可实现9~l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达0.0625℃。

5. 独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。

(二). DS18B20的内部结构
DS18B20内部功能模块如图2所示,
图2
DS18B20主要由3部分组成:
(1)64位光刻R0M(图3)
图3
(2)永久型温度报警触发器TH和TL
如果温度测量结果高于TH或低于TL中的值,则DS18B20 内部的报警标志被置位, 表示温度测量值超出测量范围, 微处理机经查询根据报警标志位状态作相应处理。

(3)被测数据存储
每个DS18B20传感器都有两个8位RAM寄存单元,用于贮存测定的温度值, 其中用于存放温度符号的寄存单元定义为;全1表示负温度℃, 全0表示正温度℃。

整个共有个字节的单元, 具体含义见表1
DSI8B20温度传感器的内部存储器包括一个高速暂存RAM (便笺式的内部存储器)和一个非易失性的可电擦除的EEPROM,后者存放高温和低温触发器TH,TL和结构寄存器。

便笺存储器包含了9个连续字节(0~8),前两个字节是测得的温度信息(图4),字节0的内容是温度的低8位,字节1是温度的高8位,字节2是TH(温度上限报警),字节3是TL(温度下限报警),字节4是配置寄存器,用于确定输出分辨率9到12位。

第5、6、7个字节是预留寄存器,用于内部计算。

字节8是冗余检验字节,校验前面所有8个字节的CRC码,可用来保证通信正确。

(三).DS18B20的内存结构
图为DS18B20的内部存储器结构图,它包括一个暂存RAM和一个非易失性电可擦除(E)RAM。

其中暂存存储器作用是在单线通信时确保数据的完整性,它包括8个字节,头两个字节表示测得的温度数,数据格式如下:
S=1时表示温度为负,S=0时表示温度为正,其余低位以二进制补码形式表示,最低位为1时表示0。

0625℃。

温度/数字对应关系如表所示。

DS18B20温度/数据对应关系表
DS18B20内部暂存存储器的第5个字节是结构寄存器,它主要用于确定温度值的数字转换分辨率。

字结构如下:
其中R1、R0用于设置分辨率,如表所示。

DS18B20分辨率设置表
(四)DSl820工作过程中的协议
DS18B20器件要求采用严格的通信协议,以保证数据的完整性。

该协议定义了几种信号类型:复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。

与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。

发送所有的命令和数据时,都是字节的低位在前,高位在后。

1.复位和应答脉冲时隙
每个通信周期起始于微控制器发出的复位脉冲,其后紧跟DS18B20发出的应答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机读入来
自DS18B20的数据。

在每一个时隙,总线只能传输一位数据。

时序图见图4。

2.写时隙
当主机将单总线DQ从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60~120us完成,且在每个循环之间至少需要1us的恢复时间。

写0和写1时隙如图所示。

在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之释放总线。

时序图见图5。

3.读时隙
DS18B20器件仅在主机发出读时隙时,才向主机传输数据。

所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。

所有的读时隙至少需要60us,且在两次独立的读时隙之间,至少需要1us的恢复时间。

每个读时隙都由主机发起,至少拉低总线1us。

在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。

若发送为0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上拉电阻将总线拉回至高电平状态。

DS18B20发出的数据,在起始时隙之后保持有效时间为15us。

因而主机在读时隙期间,必须释放总线。

并且在时隙起始后的15us之内采样总线的状态。

时序图见图5。

图4 复位和应答脉冲时隙
图5 读写时序
(五)温度传感器与单片机通讯时序
单总线上的所有处理均从初始化开始2 ROM操作品令总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如指令代码Read ROM(读ROM) [33H] Match ROM(匹配ROM) [55H] Skip ROM(跳过ROM] [CCH] Search ROM(搜索ROM) [F0H] Alarm search(告警搜索) [ECH] 3 存储器操作命令指令代码Write Scratchpad(写暂存存储器) [4EH] Read Scratchpad(读暂存存储器) [BEH] Copy Scratchpad(复制暂存存储器) [48H] Convert Temperature(温度变换) [44H] Recall EPROM(重新调出) [B8H] Read Power supply(读电源) [B4H] 温度传感器与单片机通讯时序
(六)基本子程序设计
DS18B20三个基本子程序为:DS18B20初始化程序、读DS18B20子程序、写DS18B20子程序。

分别设计如下:
1.DS18B20的初始化子程序(PSW.5=1表示DS18B20存在,PSW.5=0表示不存在)
RESET:CLR P1.0 ;发送复位脉冲
MOV R7,#32 ;延时500μs
LCALL DELAY15
SETB P1.0
MOV R7,#4 ;等待60μs LCALL DELAY15
CLR PSW.5 ;PSW.5=0
JB P1.0.RET1 ;P1.0=1不存在,跳转SETB PSW.5 ;存在DS18B20 MOV R7,#28
LCALL DELAY15
RET1:RET
延时子程序
DELAY15:MOV R6,#6
DEL151:DJNZ R6,DEL151
DJNZ R7,DELAY15 ;延时R7*15μs
RET
2.DS18B20的读子程序
RD1820;CLR C
MOV R1,#9
MOV R0,#TEMPLSB
RD18201:MOV R2,#8
RD18202:SETB P1.0
NOP
NOP
CLR P1.0 ; 产生读信号
NOP
NOP
SETB P1.0 ;准备输入数据
MOV R7,#1
LCALL DELAY15
MOVC,P1.0
RRC A
DJNZ R2, RD18202 ;判一个字节是否读完
MOVX@R0, A ; 保存结果
INC R0
DJNZ R1,RD18201;判9个字节是否读完
RET
3.DS18B20的写子程序
WR1820:CLR C
MOV R1,#8
WR18201:CLR P1.0 ;产生写信号
MOV R7,#1
LCALL DELAY15
RRC A
MOV P1.0,C ; 发送一位数据给DS18B20
MOV R7,#1
LCALL DELAY15
SETB P1.0
NOP
DJNZ R1,WR18201 ;一字节数据是否发送完
SETB P1.0
RET
七、显示部分
驱动/锁存/译码MC14511的功能特性
Mc14511是使用CMOS增强型器件和NPN双极性输出驱
动器制造的单片器件,它具有4位存储器、8421BCD到7段
译码器和输出驱动能力。

灯测试( LT )消隐(BI)和锁存
使能(LE)输入分别用来测试显示器、关断脉
冲调制显示器的亮度和储存BCD码。

应用包括
仪器显示驱动器、活动显示驱动器和各种时
钟、钟表和定时器应用。

(一)MC14511的特点:。

相关文档
最新文档