好文档 - 专业文书写作范文服务资料分享网站

基于单片机的温度控制系统的设计 

天下 分享 时间: 加入收藏 我要投稿 点赞

河北工业大学毕业论文

DS18CD5 EQU 46H DS18CD6 EQU 47H DS18CD7 EQU 48H DS18CD8 EQU 49H DS1864B EQU 4AH DS18ADS EQU 4BH

DS18DQ EQU P1.0 ;30H,31H,32H,33H: X 个位 十位 X MOD7: MOV SP,#60H

LCALL GET_TEMPER ;调用读温度子程序 LCALL READCODE AJMP MOD7

INIT_1820: ;DS18B20初始化 SETB DS18DQ

CLR DS18DQ ;延时,500US低MC MOV R7,#250 DJNZ R7,$ MOV R7,#150 DJNZ R7,$

SETB DS18DQ ;释放总线

LCALL DELAY60US ;15-60US的等待时间 MOV R6,#4 SETDSDQ: LCALL DELAY60US

JNB DS18DQ,SETDSDQFH ;60-240US内是否有返回信号,为0跳 DJNZ R6,SETDSDQ MOV R7,#250 DJNZ R7,$ CLR DS18FIG RET

22

河北工业大学毕业论文

SETDSDQFH: SETB DS18FIG MOV R7,#250 DJNZ R7,$ MOV R7,#100 DJNZ R7,$ RET;

数据处理程序: TEMP0: INC A AJMP TEMP1

TEMPCOV: MOV A,DS18SL ;数据处理子程序 TEMPCOV MOV B,#16 DIV AB JB B.3,TEMP0

TEMP1: MOV 34H,A ;将DS18SL的高四位右移四位,存入 34H中(温度值)

MOV A,B ;将DS18SL的低四位X10/16得小数后 一位数. MOV B,#10 MUL AB MOV B,#16 DIV AB

MOV 30H,A ;将小数后一位数.存入30H中 MOV A,DS18SH ;DS18SH中存放高8位数,权 重16 MOV B,#16 MUL AB

ADD A,34H ;34H中存入温度值的整数部分 MOV B,#10

23

河北工业大学毕业论文

DIV AB

MOV 31H,B ;个位存入31H中 MOV B,#10 ; DIV AB ;

MOV 32H,B ;十位存入32H中 MOV B,#10 ; DIV AB ;

MOV 35H,B ;百位存入33H中 MOV A,DS18SH MOV 33H,#10H ; JB ACC.7,EXIT7 MOV 33H,#00H EXIT7: RET

GET_TEMPER: ;读出转换后的温度值,并显示 SETB DS18DQ

LCALL INIT_1820 ;先复位DS18B20 JB DS18FIG,TSS2

RET ;判断DS1820是否存在?若DS18B20不存在则返 TSS2: MOV DS18ADS,#0 DS18JX: LCALL DS18CODP MOV A,DS18ADS ADD A,#9 MOV DS18ADS,A CJNE A,#63,DS18JX RET DS18CODP:

LCALL MRCOVT ;转换指定的DS18B20的温度 LCALL MRRDTEDP ;显示温度

24

河北工业大学毕业论文

RET TEMP:

LCALL INIT_1820 JB DS18FIG,NEXT4 RET NEXT4: MOV DS18ADS,#9 MOV A,#0CCH ;SKIP ROM LCALL WRITE_1820 MOV A,#44H ;温度转换命令 LCALL WRITE_1820 LCALL DELAY1S LCALL MRRDTEDP

RET;写DS18B20的子程序(有具体的时序要求) WRITE_1820: ;写DS18B20 MOV R5,#8 DS18JXWE:

SETB DS18DQ ;初始化 CLR DS18DQ CLR DS18DQ MOV R7,#5

DJNZ R7,$ ;拉低15US内,写入数据 CLR C RRC A MOV DS18DQ,C

LCALL DELAY60US ;持续60US SETB DS18DQ ;写完一个位 DJNZ R5,DS18JXWE RET

READ_1820_CODE: ;读取CODE 64位

25

河北工业大学毕业论文

MOV R4,#8 ;读8次数

MOV R1,#DS18CD1 ;低位地址存在R1 DS18JXRD3:

MOV R5,#8 ;8位数据 DS18JXRD2: SETB DS18DQ

CLR DS18DQ ;前两句完成初始化 NOP

NOP ;延时至少1US

SETB DS18DQ ;上升沿,并在,15US内读数 MOV R7,#5 DJNZ R7,$ MOV C,DS18DQ RRC A

LCALL DELAY60US ;读时序,最少60US DJNZ R5,DS18JXRD2 MOV @R1,A INC R1

DJNZ R4,DS18JXRD3 SETB DS18DQ

RET;读DS18B20的程序,从DS18B20中读出两个字节的温度数 据

READ_18200:

MOV R4,#2 ;读两次数

MOV R1,#DS18SL ;低位地址存在R1 DS18JXRD1:

MOV R5,#8 ;8位数据 DS18JXRD: SETB DS18DQ

CLR DS18DQ ;前两句完成初始化

26

基于单片机的温度控制系统的设计 

河北工业大学毕业论文DS18CD5EQU46HDS18CD6EQU47HDS18CD7EQU48HDS18CD8EQU49HDS1864BEQU4AHDS18ADSEQU4BHDS18DQEQUP1.0;30H,31H,32H,33H:X个位十位XMOD7:MOVSP,#60HLCALL
推荐度:
点击下载文档文档为doc格式
4jlfd2gyzr6h1tx45fem
领取福利

微信扫码领取福利

微信扫码分享