橡胶地砖厂家
免费服务热线

Free service

hotline

010-00000000
橡胶地砖厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

18B20数字温度显示系统

发布时间:2020-07-01 01:35:47 阅读: 来源:橡胶地砖厂家

综合实验:用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 0000HLJMP MAINORG 000BHSJMP TIMER0 ;定时显示;****************************************************************;定时显示子程序,采用循环扫描方式;显示缓冲区40H~47HORG 0040HTIMER0:MOV P0,40H ;最后一位值送p0ORL P0,#70H; 点亮最后一位CALL T1MSMOV P0,41HORL P0,#60HCALL T1MSMOV P0,42HORL P0,#50HCALL T1MSMOV P0,43HORL P0,#40HMOV TH0,#LOW(65536-10000) ;定时器10MS中断MOV TL0,#HIGH(65536-10000)RETIT1MS: mov r5,#00h ;延时子程序tt: mov r6,#9djnz r6,$djnz r5,ttret;*********************************************************;主程序:MAIN: MOV SP,#60HMOV P2,#0FFHMOV R2,#8MOV R0,#40H ;OVER: MOV @R0,#00HINC R0DJNZ R2,OVERMOV TMOD,#01HMOV TH0,#LOW(65536-10000)MOV TL0,#HIGH(65536-10000)SETB EASETB ET0SETB TR0LOOP: LCALL DSWD ;调用读出DS18B20温度程序SJMP LOOP ; 读出DS18B20温度程序DSWD:CLR EALCALL RSTJNB F0,KEND ;如果没有应答,返回主程序MOV R0,#0CCHLCALL SEND_BYTE ;跳过ROM匹配MOV R0,#44H ;发出温度转换命令LCALL SEND_BYTESETB EAMOV P1,#00001111BMOV 48H,#1 ;廷时75ms以上准备读SS2: MOV 49H,#255SS1: MOV 4AH,#255SS0: DJNZ 4AH,SS0DJNZ 49H,SS1DJNZ 48H,SS2MOV P1,#11111100BCLR EALCALL RSTJNB F0,KENDMOV R0,#0CCH ;跳过ROM匹配LCALL SEND_BYTEMOV R0,#0BEH ;发出读温度命令LCALL SEND_BYTELCALL READ_BYTEMOV WDLSB,ALCALL READ_BYTEMOV WDMSB,ALCALL TRANS12KEND: mov p1,#01010101bSETB EARET;**********************************************************;温度转换程序:精确到:0.06 ;TRANS12:MOV A,30HANL A,#0F0HMOV 3AH,AMOV A,31HANL A,#0FHORL A,3AHSWAP AMOV B,#10DIV ABMOV 43H,AMOV 42H,B ;MOV DPTR,#TABBMOV A,30HANL A,#0FHMOV B,#2MUL ABMOVC A,@A+DPTRMOV 41H,AMOV A,30HANL A,#0FHMOV B,#2MUL ABINC AMOVC A,@A+DPTRMOV 40H,ARETTABB: DB 0,0,0,6,1,2,1,8,2,5,3,1,3,7,4,3,5,0DB 5,6,6,2,6,8,7,5,8,1,8,7,9,3;*************************************************SEND_BYTE: ;发送一个字节程序MOV A,R0MOV R5,#8SEN3: CLR CRRC AJC SEN1LCALL WRITE_0SJMP SEN2SEN1: LCALL WRITE_1SEN2: DJNZ R5,SEN3 ; 循环8次,写一个字节RETREAD_BYTE: ;读一个字节程序MOV R5,#8READ1: LCALL READRRC ADJNZ R5,READ1 ; 循环8次,读一个字节MOV R0,ARET;复位程序,如果复位置位F0,没有就复位F0RST: SETB DATNOPNOPCLR DATMOV R6,#250 ;主机发复位脉冲持续3μs

哈尔滨定做西装

东营制作防静电工作服

天津工服