实验八 DS18B20数字温度显示实验

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

D S18B20数字温度显示实验

1.实验目的

掌握一线式数字温度传感器的使用,了解单总线的工作方式。

掌握数字温度传感器DS18B20的工作原理及温度测量方法。

2.实验原理及内容

DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃。

主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB 单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。

图118B20封装引脚 图2相关原理

接线方法:

1.利用S T C89C51实验板上的I R F1插孔和排针,将D S18B20插入I R F1插孔,用一根单条数据线把D S18B20的2脚接到C P U部份的P3.0;

2.用一条4P I N的排线,把7474的A B C D接到P0口的P0.0,P0.1,P0.2,0.3四个端口。(即插入P0口的上半部份)。

3.用一条8P I N的排线。 把数码管译码部份的输出端接到数码管部份的数据口;

4.用一条4P I N的排线,把74138的输入端接到P0口的P0.4,P0.5,P0.6,07四个端口。(即插入P0口的下半部份)。

5.用一条8P I N的排线。 把38译码部份的输出端接到数码管部份的显示位口。

在本系统中,为了简化程序, 采用了74L S47(数码管译码)74L S138(三八译码)。即P0口的P0.0,P0.1,P0.2,P0.3四个端口接到74L S47进行硬件数码管译码,然后输出到数码管部分的数据口。P0.4,P0.5,P.0.6三个端口接到74L S138进行38译码,然后输出到数码管的位控制。

系统综合原理图:

图3系统原理图

进行本实验时,需要使用S T C89C51、H D7279、E X P-74X X三块实验板,并且需要外接电阻等元件,接线连接复杂。建议自制实验电路,或者使用L C D12864完成显示(若使用L C D12864,则程序需要重新设计)。

3.实验现象分析

4.汇编语言参考程序

图4程序设计流程

;定时显示子程序,采用循环扫描方式

;显示缓冲区40H~47H

O R G0080H

T I M E R0:

M O V P0,40H;最后一位值送p0

O R L P0,#70H ;点亮最后一位

C A L L T1M S

M O V P0,41H

O R L P0,#60H

C A L L T1M S

M O V P0,42H

O R L P0,#50H

C A L L T1M S

M O V P0,43H

O R L P0,#40H

M O V T H0,#L O W(65536-10000);定时器10M S中断

M O V T L0,#H I G H(65536-10000)

R E T I

T1M S:M O V R5,#00h ;延时子程序

T T:M O V R6,#9

D J N Z R6,$

D J N Z R5,T T

R E T

;********************************************************* ;主程序:

;********************************************************** M A I N:M O V S P,#60H

M O V P2,#0F F H

M O V R2,#8

M O V R0,#40H;

O V E R:M O V@R0,#00H

I N C R0

D J N Z R2,O V

E R

M O V T M O D,#01H

M O V T H0,#L O W(65536-10000)

M O V T L0,#H I G H(65536-10000)

S E T B E T0

S E T B T R0

L O O P:L C A L L D S W D;调用读出D S18B20温度程序 S J M P L O O P;读出D S18B20温度程序

D S W D:

C L R E A

L C A L L R S T

J N B F0,K E N D ;如果没有应答,返回主程序

M O V R0,#0C C H

L C A L L S E N D_B Y T E;跳过R O M匹配

M O V R0,#44H;发出温度转换命令

L C A L L S E N D_B Y T E

S E T B E A

M O V P1,#00001111B

M O V48H,#1;廷时75m s以上准备读 S S2: M O V49H,#255

S S1: M O V4A H,#255

S S0: D J N Z4A H,S S0

D J N Z49H,S S1

D J N Z48H,S S2

M O V P1,#11111100B

C L R E A

L C A L L R S T

J N B F0,K E N D

M O V R0,#0C C H;跳过R O M匹配

L C A L L S E N D_B Y T E

M O V R0,#0B E H;发出读温度命令

L C A L L S E N D_B Y T E

L C A L L R E A D_B Y T E

M O V W D L S B,A

L C A L L R E A D_B Y T E

M O V W D M S B,A

L C A L L T R A N S12

K E N D:M O V P1,#01010101b

相关文档
最新文档