附录A:程序清单
FLAG1 BIT F0 ;DS18B20存在标志位
DQ BIT P1. 7 ;DS18B20 I/O 口
JDQ BIT P1.6 ;继电器控制口
FMQ BIT P1.4 ;蜂鸣器控制口
DY BIT P1.5 ;电压比较输入口
ORG 0000H
LJMP MAIN_1
ORG 000BH ;T0定时器中断入口
LJMP INT_T0
MAIN_1:
MOV SP,#67H
MOV TMOD ,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV IE,#82H
SETB TR0
SETB DY
MOV R7,#30H
MOV R0,#20H
M_0:CLR A
MOV @R0,A
INC R0
DJNZ R7,M_0
ACALL INT_79 ;7279初始化
AJMP MAIN_2
MAIN_2:
LCALL DYBJ ;电压比较,大于250?
LCALL bcd1 ;29h内容转化为两位非压缩BCD,十位40H,个位41H
LCALL BAOJING ;温度高于28度报警
ACALL DIR_0 ;7279显示处理
ACALL DIR ;7279显示
LCALL INIT_18B20 ;18B20初始化
LCALL GET_TEMPER ;读温度子程序
LCALL CHANGE ;18B20温度转换
SJMP MAIN_2
;***************************电压比较*********************************
DYBJ:
MOV C,DY
JC lllp0
CLR JDQ
CLR FMQ
MOV C,DY
lllp0:JNC lllp ;电压高于250V,报警断电
SETB JDQ
SETB FMQ
lllp:RET
;******************DS18B20初始化 *********************************
INIT_18B20: SETB DQ
NOP
CLR DQ
MOV R0,#80H
TSR1: DJNZ R0,TSR1 ;延时
SETB DQ
MOV R0,#50
TSR2: JNB DQ ,TSR3
DJNZ R0,TSR2
clr FLAG1
sjmp TSR5
TSR3:setb FLAG1
TSR5: MOV R0,#120
TSR6: DJNZ R0,TSR6
SETB DQ ;表明18B20不存在
ret
; ******************DS18B20读温度 *********************************
GET_TEMPER:
SETB DQ
LCALL INIT_18B20
JB FLAG1,TSS2
RET ;若不存在则返回
TSS2: MOV A,#0CCH ;跳过ROM
LCALL WRITE_18B20
MOV A,#44H ;发出温度转换命令
LCALL WRITE_18B20
LCALL INIT_18B20
MOV A,#0CCH ;跳过ROM
LCALL WRITE_18B20
MOV A,#0BEH ;发出读温度换命令
LCALL WRITE_18B20
LCALL READ2_18B20 ;读两个字节的温度
RET
;****************************写ds18b20汇编程序************
WRITE_18B20:
MOV R2,#8
CLR C
WR1:
CLR DQ
MOV R3,#3 ;延时约14us
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#20 ;延时约80us
DJNZ R3,$
SETB DQ
NOP
DJNZ R2,WR1
SETB DQ
RET
; ***********读18B20程序,读出两个字节的温度*********************
READ2_18B20:
MOV R4,#2 ;低位存在29 H,高位存在28H
MOV R1,#29H
RE00: MOV R2,#8
RE01: CLR C
SETB DQ
NOP
NOP
CLR DQ
NOP
NOP
NOP
SETB DQ
MOV R3,#4 ;延时15us
DJNZ R3,$
MOV C,DQ
MOV R3,#10 ;延时40us
DJNZ R3,$
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
;***********************************温度处理**********************
CHANGE:
MOV A,29H
MOV C,28H.0 ;将28H中的最低位移入C
RRC A
MOV C,28H.1
RRC A
MOV C,28H.2
RRC A
MOV C,28H.3
RRC A
MOV 29H,A
mov a,29h ;温度存于29h
lr1:ret
;*******************************温度BCD转换**********************
BCD1:
MOV A,29H ;将29h中的16进制数转化为2个BCD码,分别保存在40H,41H单元中
MOV R0,#41H
MOV R7,#2
LP:MOV B,#0AH
DIV AB
XCH A,B
MOV @R0,A
XCH A,B
DEC R0
DJNZ R7,LP
RET
;**********************温度高于28度报警*********************
BAOJING:
MOV A,40H
CJNE A,#3,BJ1
MOV A,41H
CJNE A,#1,BJ2
SJMP BJ3
BJ1:JNC BJ3
SJMP BJ4
BJ2:JNC BJ3
SJMP BJ4
BJ3: ;温度高于28度,报警断电
CLR jdq
clr fmq
BJ4:RET
;**************** *********** T0定时中断**************************
INT_T0:
PUSH ACC
PUSH PSW
MOV PSW,#08H
MOV TH0,#3CH
MOV TL0,#0B0H
INC 33H
MOV A,33H
CJNE A,#0AH,L2
L2:JC L6
MOV 33H,#00H
MOV A,32H
ADD A,#01H ; 秒加1
DA A
MOV 32H,A
CJNE A,#60H,L3
L3:JC L6
MOV 32H,#00H
MOV A,31H
ADD A,#01H ;分加1
DA A
MOV 31H,A
CJNE A,#02H,l4
CLR JDQ
l4:MOV A,31h
CJNE A,#03H,l6
MOV 31H,#00H
SETB JDQ
L6:POP PSW
POP ACC
RETI
;************************7279显示处理***************************
DIR_0:
MOV R0,#42H
MOV A,30H
ACALL A_R0
MOV A,31H
ACALL A_R0
MOV A,32H
ACALL A_R0
MOV A,43H
ADD A,#0AH
MOV 43H,A
MOV A,45H
ADD A,#0AH
MOV 45H,A
D_1:RET
A_R0:
MOV R2,A
SWAP A
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,R2
ANL A,#0FH
MOV @R0,A
INC R0
RET
;**************************7279显示*******************************
DIR:
MOV R5,#08H
MOV R0,#40H
MOV R1,#97H
LP1:CLR P1.0
MOV R6,#0CH
DJNZ R6,$
MOV A,R1
ACALL STFS
MOV R6,#04H
DJNZ R6,$
MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
ACALL STFS
MOV R6,#02H
DJNZ R6,$
SETB P1.0
INC R0
DEC R1
DJNZ R5,LP1
RET
TAB: DB 7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BH
DB 0FEH,0B0H,0EDH,0F9H,0B3H,0DBH,0DFH,0F0H,0FFH,0FBH
;********************************7279发送***************************
STFS:
MOV R7,#08H
Q1:RLC A
MOV P1.2,C
SETB P1.1
MOV R6,#02H
DJNZ R6,$
CLR P1.1
MOV R6,#02H
DJNZ R6,$
DJNZ R7,Q1
RET
;****************************7279初始化*****************************
INT_79:
CLR P1.0
MOV R6,#0CH
DJNZ R6,$
MOV A,#0A4H
ACALL STFS
MOV R6,#02H
DJNZ R6,$
SETB P1.0
RET
END
kechengsheji.rar_ds18b20 定时_lm339_断电
版权申诉
8 浏览量
2022-09-23
08:22:59
上传
评论
收藏 2KB RAR 举报
weixin_42651887
- 粉丝: 77
- 资源: 1万+
最新资源
- Python 超详细入门教程及相关资源推荐
- 基于PHP实现的Emlog单用户博客系统 v3.3.0_emlog_3.3.0_博客论坛(源代码+html).zip
- python+django+vue开发的外卖点餐系统网站(含源码).zip
- 2024美赛B资料合集2024美赛B资料合集.zip
- auto-ohos-default-HotStartAbilityTest-com.hits.hotstartabilityre
- 电赛A题支持MSP432和Stm32等效采样+蓝牙APP.zip
- h5项目中 在钉钉分享时 分享卡片icon图标如何设置
- 知识领域: 网络安全 技术关键词: 漏洞分析、渗透测试、加密算法 内容关键词: 攻击防范、身份验证、网络流量分析
- 蜂网-SCM商品成本核算.pptx
- 知识领域: DevOps 技术关键词: 自动化、持续集成、容器化 内容关键词: 部署流程、监控与日志、云计算
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈