当前位置:首页 > 单片机 > 单片机
[导读]综合实验:用18B20(数字温度采集)74LS47(数码管译码)74LS138(三八译码) DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换

综合实验:用18B20(数字温度采集)74LS47(数码管译码)74LS138(三八译码) DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出.

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

18b20原理图


运行程序数码管后4位显示当前测试到的温度。

DS18B20的引脚:

在本系统中: 为了简化程序, 采用了74LS47(数码管译码)74LS138(三八译码)。即P0口的P0.0,P0.1,P0.2,P0.3四个端口接到74LS47进行硬件数码管译码,然后输出到数码管部分的数据口JP5。

P0.4,P0.5,P.0.6三个端口接到74LS138进行38译码, 然后输出到数码管的位控制JP8.

系统综合原理图:

;

;本程序测量温度范围:0~125度,精确到0.06;
DAT BIT P3.0 ;数据通信口
WDLSB DATA 30H ;读出的温度低字节
WDMSB DATA 31H ;读出的温度高字节
;***************************************************************
ORG 0000H
LJMP MAIN
ORG 000BH
SJMP TIMER0 ;定时显示

;****************************************************************
;定时显示子程序,采用循环扫描方式
;显示缓冲区40H~47H
ORG 0040H
TIMER0:

MOV P0,40H ;最后一位值送p0
ORL P0,#70H;点亮最后一位
CALL T1MS
MOV P0,41H
ORL P0,#60H
CALL T1MS
MOV P0,42H
ORL P0,#50H
CALL T1MS
MOV P0,43H
ORL P0,#40H
MOV TH0,#LOW(65536-10000) ;定时器10MS中断
MOV TL0,#HIGH(65536-10000)
RETI
T1MS: mov r5,#00h ;延时子程序
tt: mov r6,#9
djnz r6,$
djnz r5,tt
ret

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

MAIN: MOV SP,#60H
MOV P2,#0FFH
MOV R2,#8
MOV R0,#40H ;
OVER: MOV @R0,#00H
INC R0
DJNZ R2,OVER
MOV TMOD,#01H
MOV TH0,#LOW(65536-10000)
MOV TL0,#HIGH(65536-10000)
SETB EA
SETB ET0
SETB TR0
LOOP: LCALL DSWD ;调用读出DS18B20温度程序
SJMP LOOP ;读出DS18B20温度程序
DSWD:
CLR EA
LCALL RST
JNB F0,KEND ;如果没有应答,返回主程序
MOV R0,#0CCH
LCALL SEND_BYTE ;跳过ROM匹配
MOV R0,#44H ;发出温度转换命令
LCALL SEND_BYTE
SETB EA
MOV P1,#00001111B
MOV 48H,#1 ;廷时75ms以上准备读
SS2: MOV 49H,#255
SS1: MOV 4AH,#255
SS0: DJNZ 4AH,SS0
DJNZ 49H,SS1
DJNZ 48H,SS2
MOV P1,#11111100B
CLR EA
LCALL RST
JNB F0,KEND
MOV R0,#0CCH ;跳过ROM匹配
LCALL SEND_BYTE
MOV R0,#0BEH ;发出读温度命令
LCALL SEND_BYTE
LCALL READ_BYTE
MOV WDLSB,A
LCALL READ_BYTE
MOV WDMSB,A
LCALL TRANS12
KEND: mov p1,#01010101b
SETB EA
RET
;**********************************************************
;温度转换程序:精确到:0.06 ;
TRANS12:MOV A,30H
ANL A,#0F0H
MOV 3AH,A
MOV A,31H
ANL A,#0FH
ORL A,3AH
SWAP A
MOV B,#10
DIV AB
MOV 43H,A
MOV 42H,B ;
MOV DPTR,#TABB
MOV A,30H
ANL A,#0FH
MOV B,#2
MUL AB
MOVC A,@A+DPTR
MOV 41H,A
MOV A,30H
ANL A,#0FH
MOV B,#2
MUL AB
INC A
MOVC A,@A+DPTR
MOV 40H,A
RET
TABB: DB 0,0,0,6,1,2,1,8,2,5,3,1,3,7,4,3,5,0
DB 5,6,6,2,6,8,7,5,8,1,8,7,9,3
;*************************************************

SEND_BYTE: ;发送一个字节程序
MOV A,R0
MOV R5,#8
SEN3: CLR C
RRC A
JC SEN1
LCALL WRITE_0
SJMP SEN2
SEN1: LCALL WRITE_1
SEN2: DJNZ R5,SEN3 ;循环8次,写一个字节
RET
READ_BYTE: ;读一个字节程序
MOV R5,#8
READ1: LCALL READ
RRC A
DJNZ R5,READ1 ;循环8次,读一个字节
MOV R0,A
RET
;复位程序,如果复位置位F0,没有就复位F0
RST: SETB DAT
NOP
NOP
CLR DAT
MOV R6,#250 ;主机发复位脉冲持续3μs×200=600μs
DJNZ R6,$
MOV R6,#50
DJNZ R6,$
SETB DAT ;主机释放总线,口线改为输入
MOV R6,#15
DJNZ R6,$
CALL CHCK ;调用应答检查程序
MOV R6,#60
DJNZ R6,$
SETB DAT
RET
CHCK: MOV C,DAT
JC RST0
SETB F0 ;检测到信号,置位F0
SJMP CHCK0
RST0: CLR F0 ;未准备好F0复位
CHCK0: RET

WRITE_0: ;写0
CLR DAT
MOV R6,#30
DJNZ R6,$
SETB DAT
RET
WRITE_1:CLR DAT ;写1
NOP
NOP
NOP
NOP
NOP
SETB DAT
MOV R6,#30
DJNZ R6,$
RET

;读一位数据程序
READ: SETB DAT ;先复位至少1US产生读起始信号
NOP
NOP
CLR DAT
NOP
NOP
SETB DAT ;置位DAT准备接收数据
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,DAT
MOV R6,#23
DJNZ R6,$
RET
END
本程序测量温度范围:0~125度,精确到0.06

综合接线图:

1用一根单条数据线把18B20的JP39接到CPU部分的JP53(P3口)的P3.0

2用一条4PIN的排线,把数码管译码部份的JP19接到CPU部份P0口的JP51的P0.0,P0.1,P0.2,0.3四个端口。(即插入P0口的上半部分)。

3用一条8PIN的排线。 把数码管译码部份的输出端JP88,接到数码管部分的数据口JP5

4用一条4PIN的排线,把38译码部份的JP22接到CPU部份P0口的JP51的P0.4,P0.5,P0.6,07四个端口。(即插入P0口的下半部分)。此处不太好插入, 小心操作。

5用一条8PIN的排线。 把38译码部份的输出端JP25,接到数码管部分的显示位口JP8。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭