首页 > 应用 > 单片机应用
[导读]
DS18B20是温度检测器件,具有单总线、数字化的特点。它的外形结构还比较脆弱,一般来说,它只是适合于检测室温的场合,环境条件稍稍恶劣一些,它就抗不住了。在工业场合,做而论道一般还是使用PT100,这

DS18B20是温度检测器件,具有单总线、数字化的特点。
它的外形结构还比较脆弱,一般来说,它只是适合于检测室温的场合,环境条件稍稍恶劣一些,它就抗不住了。
在工业场合,做而论道一般还是使用PT100,这个东西抗造。

本文引用地址: http://www.21ic.com/app/mcu/201806/764431.htm

做而论道用18B20和单片机制作了数字温度计,在办公室里放了N多年。
它和酒精温度计显示的温度,还是有些差异,也不知道谁测量的准。

做而论道编写程序,基本上以汇编为主,一般也不想拿出来,因为很少有人看汇编的程序。
用汇编语言编写程序,思维要跟着计算机、存储器、二进制、逻辑运算、...、来走。
多数人的思维,还是停留在中小学阶段,还是以十进制来分析问题,弄不了计算机本身的东西,所以都不愿意看汇编的程序。

做而论道编写的关于DS18B20的程序,在PROTEUS软件中,仿真的效果图如下:



图片链接:http://xiangce.baidu.com/picture/detail/544db91e604402c24acc7adc30294a86c41227d6

http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/40138fd88d1001e971fe7fa9b80e7bec56e797b3.html#

仿真实验时,可以断开DS18B20支路,数码管将会显示:Error。

图中的DS18B20,可以用“属性”来设置小数。
小数的范围是:0、1/16~15/16,即十进制的:0、0.0625~0.9375。
小数共有四位,是0.0625的整数倍,但是它的器件上,只能显示1位小数。

在18B20的温度数据中,最低四位:0001~1111,就代表了十进制的:0.0625~0.9375。

看到过很多的文章,都谈到了,怎样才能从这四位数中求出十进制的小数。
呵呵,好多的方法,都是笨的真可以!
很有一些人,都知难而退了,就用查表来解决小数的问题。其实也就是查出一位小数,就都很满足了。

做而论道用了十余条指令吧,很简单的,就求出了两位小数,并且把第三位小数按照四舍五入,进到了前一位。
想要把四位小数都求出来,也不过20条指令而已,约30us,就能解决问题。

程序中,使用了模块化的设计方法,相当规范。
模块中的转移指令,都已经设计好了偏移量,省去了好多的标号。这样,每个模块,仅有一个标号,看起来极为清晰。

不多说了,程序如下:
;=================================
DQEQUP3.7;18B20接口

NO_18BIT20H;20H.0存在标志位
D_BUFEQU30H;30H~37H显示空间
TEMPEQU38H;38H~39H温度数据
S_BOTTEQU3AH;栈底位置
;=================================
ORG0000H
START:
MOVSP,#S_BOTT
CALLGET_T
CALLT_PROC
CALLDISPLAY
JMP$-6
;=================================
GET_T:
CALLINIT_18B20
JBNO_18,$+25
MOVA,#0CCH
CALLW_18B20
MOVA,#44H
CALLW_18B20
CALLDISPLAY
CALLINIT_18B20
MOVA,#0CCH
CALLW_18B20
MOVA,#0BEH
CALLW_18B20
CALLR_18B20
RET
;=================================
INIT_18B20:;初始化
CLRDQ;复位
MOVR3,#20;540us
DJNZR3,$
DJNZR3,$
SETBDQ
MOVR3,#30
DJNZR3,$
MOVC,DQ;读状态
MOVNO_18,C
MOVR3,#150
DJNZR3,$;300us
RET
;=================================
W_18B20:
MOVR2,#8;写入8位数
CLRDQ
MOVR3,#6
DJNZR3,$
RRCA
MOVDQ,C
MOVR3,#23
DJNZR3,$
SETBDQ
DJNZR2,$-15
RET
;=================================
R_18B20:;读出温度
MOVR0,#TEMP
MOVR4,#2;读出两字节
MOVR2,#8;读出8位数
CLRDQ
NOP
NOP
NOP
SETBDQ
MOVR3,#9
DJNZR3,$
MOVC,DQ
RRCA
MOVR3,#23
DJNZR3,$
DJNZR2,$-18;读出8位数
MOV@R0,A;先存放到TEMP
INCR0;后读出存TEMP+1
DJNZR4,$-24
RET
;=================================
T_PROC:
JNBNO_18,$+22
;-------------------下面是显示Err
MOV30H,#26
MOV31H,#14;这些地址,如果是高128的地址,
MOV32H,#32;就应该使用间接寻址。
MOV33H,#32;
MOV34H,#31;现在,就用直接寻址吧。
MOV35H,#32
RET
;-------------------下面是数据处理
MOV30H,#0
MOV31H,#0
MOV32H,#0
CLRF0
MOVA,TEMP+1
JNBACC.7,$+16
;-------------------下面是求补
CLRC
CLRA
SUBBA,TEMP
MOVTEMP,A
CLRA
SUBBA,TEMP+1
MOVTEMP+1,A
SETBF0;负号标志
;-------------------下面处理整数
MOVA,TEMP
SWAPA
ANLA,#15
MOVB,A
MOVA,TEMP+1
ANLA,#15
SWAPA
ADDA,B
MOVB,#100
DIVAB
MOV31H,A;百位
MOVA,#10
XCHA,B
DIVAB
MOV32H,A;十位
XCHA,B
ADDA,#16
MOV33H,A
;-------------------下面处理两位小数
MOVA,TEMP;
ANLA,#15;0001~1111=0.0625~0.9375
MOVB,#10
MULAB;乘以10
MOVB,A;暂存
SWAPA;交换到低四位,就是除以16
ANLA,#15;低四位就是十分位小数
MOV34H,A;写入显示位置

换一批

延伸阅读

[测试测量] 用数字万用表测射频电视信号

用数字万用表测射频电视信号

有线电视(CATV)最常见的故障是系统信号中断,维修这类故障时,甚感不便的是要携带体积颇大的场强仪,数字式场强仪虽然轻巧,但售价很高。笔者经过多次试验,认为用普通数字万用表配一超高频检波探头完全可作为......

关键字:数字万用表 射频 电视信号

[测试测量] Spectrum仪器数字化仪实现超长信号平均功能

Spectrum仪器数字化仪实现超长信号平均功能

Spectrum仪器今日推出全新信号平均处理套件,彻底颠覆了信号采集与信号平均的方式。信号平均功能对采集和分析隐藏在随机噪声中的信号细节等应用起到了至关重要的作用。......

关键字:Spectrum 仪器数字化仪 Spectrum仪器

[测试测量] 利用大功率数字源表构建多源测量单元(SMU)系统-连载七

 利用大功率数字源表构建多源测量单元(SMU)系统-连载七

一旦系统建立完毕,就要对其功能进行测试,并优化仪器建立,以获得最佳测量。对于开启状态特性分析在当今进行的大部分开启状态特性分析中,为了实现最小热量,都对器件施加脉冲信号。此外,许多功率半导体器件的最终......

关键字:大功率 数字源表 多源测量单元

[测试测量] 怎样选择数字示波器

怎样选择数字示波器

现在示波器种类繁多,并且新款时间不久就会推出,数字示波器的这种趋势有点像现在的电子产品一样更新换代的这么快,所以我们更应该擦亮眼睛好好选择数字示波器  一台低档次、高档次的数字示波器价格相差近50倍(80......

关键字:数字示波器

[汽车电子] 创新型数字总线架构降低音频系统成本

创新型数字总线架构降低音频系统成本

汽车制造商致力于使其下一代汽车比以前更安全、更智能且更节油。为此,需要在汽车中部署更多的ECU(电子控制单元),以实现智能无线电连接、路噪主动降噪(RNC)、个人音区分区(PAZ)、车内通信(ICC)和自动驾驶等新特性和功能,这会导致电子系......

关键字:数字总线 音频系统 汽车

[技术文章] 创新型数字总线架构降低音频系统成本

创新型数字总线架构降低音频系统成本

汽车制造商致力于使其下一代汽车比以前更安全、更智能且更节油。为此,需要在汽车中部署更多的ECU(电子控制单元),以实现智能无线电连接、路噪主动降噪(RNC)、个人音区分区(PAZ)、车内通信(ICC)和自动驾驶等新特性和功能,这会导致电子系......

关键字:数字总线 音频系统 汽车

[工业控制] Maxim发布Go-IO平台,将智能化推向数字工厂前沿

Maxim发布Go-IO平台,将智能化推向数字工厂前沿

Maxim Integrated Products, Inc 宣布推出最新Go-IO参考设计,帮助设计者在工业4.0数字工厂设备中实现更强大的智能性,同时满足可编程逻辑控制器 (PLC) 严格的尺寸和功耗要求。Go-IO在尺寸只有信用卡一半......

关键字:Maxim Go-IO平台 数字工厂

[测试测量] 数字示波器测量抖动的实战操作

数字示波器测量抖动的实战操作

数字示波器作为最常用的电子测量仪器,其作用已经被慢慢发掘,如测量抖动,已经能够达到完美了,下面来开始介绍如何具体的实施数字示波器测量抖动的实战操作!   对抖动完美测量的一半工作量都在于如何设置数字示......

关键字:数字示波器 测量抖动 实战操作

[消费类电子新闻] 阿里巴巴第二财季收入851.48亿元,同比增长54%

阿里巴巴第二财季收入851.48亿元,同比增长54%

一年一度的双十一即将到来,而作为双十一的领军电商,阿里巴巴发布了2019财年第二季度财报,其收入同比暴增54%。 ......

关键字:阿里巴巴 数字经济

我 要 评 论

网友评论

芯闻号

技术子站

更多

项目外包

更多

推荐博客