试验室温度检测与控制系统设计(8)

2018-11-23 21:00

附录

MOV C,40H;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 29H,A

LCALL DISPLAY;调用数码管显示子程序 AJMP MAIN; 这是DS18B20复位初始化子程序

INIT_1820:SETB P1.0

NOP

CLR P1.0;主机发出延时537微秒的复位低脉冲 MOV R1,#3

TSR1:MOV R0,#107

DJNZ R0,$ DJNZ R1,TSR1

SETB P1.0;然后拉高数据线 NOP NOP NOP

MOV R0,#25H

TSR2:JNB P1.0,TSR3;等待DS18B20回应

DJNZ R0,TSR2 LJMP TSR4 ; 延时

TSR3:SETB FLAG1 ; 置标志位,表示DS1820存在

LJMP TSR5

TSR4:CLR FLAG1 ; 清标志位,表示DS1820不存在

27

附录

LJMP TSR7 TSR5:MOV R0,#117

TSR6:DJNZ R0,TSR6 ; 时序要求延时一段时间 TSR7:SETB P1.0

RET; 读出转换后的温度值 GET_TEMPER:SETB P1.0

LCALL INIT_1820;先复位DS18B20 JB FLAG1,TSS2

RET ; 判断DS1820是否存在?若DS18B20不存在则返回

TSS2:MOV A,#0CCH ; 跳过ROM匹配

LCALL WRITE_1820

MOV A,#44H ; 发出温度转换命令

LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话

750微秒 LCALL DISPLAY

LCALL INIT_1820;准备读温度前先复位 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820

MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820

LCALL READ_18200; 将读出的温度数据保存到35H/36H RET;写DS18B20的子程序(有具体的时序要求) WRITE_1820:MOV R2,#8;一共8位数据

CLR C

WR1:CLR P1.0

MOV R3,#6 DJNZ R3,$ RRC A MOV P1.0,C

28

附录

MOV R3,#23 DJNZ R3,$ SETB P1.0 NOP

DJNZ R2,WR1

RET; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据 READ_18200:MOV R4,#2 ; 将温度高位和低位从DS18B20中读出

MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)

RE00:MOV R2,#8;数据一共有8位 RE01:CLR C

SETB P1.0 NOP NOP CLR P1.0 NOP NOP NOP SETB P1.0 MOV R3,#9 RE10: DJNZ R3,RE10

MOV C,P1.0 MOV R3,#23

RE20: DJNZ R3,RE20

RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET

29

附录

DISPLAY:CLR C

SUBB A, #30 JNB CY, T1 MOV A, B CLR C SUBB A,#25 JNB CY, XIANSHI CLR P1.1 LJMP XIANSHI

T1:CLR P1.2 XIANSHI:MOV A,B

MOV B,#10 ;10进制/10=10进制 DIV AB

MOV B_BIT,A ;十位在A MOV A_BIT,B ;个位在B MOV R0,#4 CLR C;多加的

DPL1: MOV R1,#250 ;显示1000次 DPLOP:MOV DPTR,#NUMTAB1

MOV A,A_BIT ;取个位数

MOVC A,@A+DPTR ;查个位数的7段代码 MOV P0,A ;送出个位的7段代码 CLR P2.1 ;开个位显示 ACALL D1MS ;显示1MS SETB P2.1 MOV DPTR,#NUMTAB MOV A,B_BIT ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码 MOV P0,A ;送出十位的7段代码

30

附录

CLR P2.2 ;开十位显示 ACALL D1MS ;显示1MS SETB P2.2 JC XSW;多加的 MOV A,31H MOV B,#160 DIV AB MOV XS,B

XSW:MOV A,XS

MOVC A,@A+DPTR MOV P0,A CLR P2.0 ACALL D1MS SETB P2.0 SETB C;多加的

DJNZ R1,DPLOP ;250次没完循环 DJNZ R0,DPL1 ;4个250次没完循环 RET;1MS延时(按12MHZ算) D1MS: MOV R7,#80

DJNZ R7,$ RET

NUMTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,7FH,7FH,7FH,7FH,7FH

NUMTAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH END

31

7FH,


试验室温度检测与控制系统设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工艺材料产品设计 教案 ID15

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: