浙江科技学院本科毕业设计(论文)
DJNZ DEL,DSY RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H ;----二进制到ASCII码转换-------------- PASS: MOV A, #30H
ORL A_BIT, A ;传送到PC上位机 LCALL TX_CHAR ORL B_BIT, A LCALL TX_CHAR ORL C_BIT, A LCALL TX_CHAR ORL D_BIT, A LCALL TX_CHAR RET
;---1MS延时---------------------------------------------------------------- D1MS: MOV R7,#250 LOOP0: NOP NOP
DJNZ R7,LOOP0 RET
;----1S延时 ----------------------------------------------------------------- D1S: MOV R6,#4 LOOP2: MOV R5,#250 LOOP1: LCALL D1MS DJNZ R5,LOOP1 DJNZ R6,LOOP2 RET INIT_RS232:
26
浙江科技学院本科毕业设计(论文)
MOV SCON,#50H
MOV TMOD,#20H ;定时器T1工作方式2 MOV TH1,#0FDH SETB TR1 SETB TI RET
;----------------------- TX_CHAR:
JNB TI,$ CLR TI MOV SBUF, A RET
;---------------------------------------------------------------------------------- END
3.5 DS18B20多点测温系统的设计
DS18B20是DALLAS公司生产的单总线数字温度传感器,可以通过在单线上串接多个DS18B20来达到多点测温和降低硬件复杂。DS18B20多点测温系统硬件原理图如下所示:
3.5.1 硬件说明
将多个DS18B20串接在89S52的P3.3上,采用电源供电,利用上拉电阻R1保证温度信息的正常传送,由于多个DS18B20串接在同一口上,在获取温度信息时需进行ROM匹配,以保证所获取的温度信息与目标相同。同时在系统硬件上可以通过扩展键盘来进行传感器的片选。
27
浙江科技学院本科毕业设计(论文)
3.5.2 软件设计
每一片DSl820 在其ROM 中都存有其唯一的48 位序列号在出厂前已写入片内ROM中主机在进入操作程序前必须逐一接入18B20 用读ROM(33H)命令将该18B20 的序列号读出并记录。当主机需要对众多在线18B20 的某一个进行操作时,首先要发出匹配ROM 命令(55H) ,紧接着主机提供64 位序列(包括该18B20 的48 位序列号) ,之后的操作就是针对该18B20 的。而所谓跳过ROM 命令即为之后的操作是对所有18B20 的。框图中先有跳过ROM 即是启动所有18B20 进行温度变换之后,通过匹配ROM 再逐一地读回每个18B20 的温度。数据在18B20 组成的测温系统中,主机在发出跳过ROM 命令之后再发出统一的温度转换启动码44H 就可以实现所有18B20 的统一转换,再经过1s 后就可以用很少的时间去逐一读取这种方式使其T 值往往小于传统方式。由于采取公用的放大电路和A D 转换器只能逐一转换显然通道数越多这种省时应就越明显。
初始化设置DS18B20个数B跳过ROM匹配匹配ROM变换温度读温度等待1S存在缓冲区指针增1否初始化初始化B-1=0?是 多路测温程序框图
28
浙江科技学院本科毕业设计(论文)
DS18B20 序列号获得
; ---------读出DS18B20 序列号应用程序,P3.3 接DS18B20----------------------- ORG 0000H AJMP MAIN ORG 0020H MAIN: MOV SP,#60H
CLR EA ;使用DS18B20 一定要禁止任何中断产生 LCALL INT ;初始化DS18B20 MOV A,#33H
LCALL WRITE ;送入读DS18B20 的ROM 命令 LCALL READ ;开始读出当前DS18B20 序列号 MOV 40H,A LCALL READ MOV 41H,A LCALL READ MOV 42H,A LCALL READ MOV 43H,A LCALL READ MOV 44H,A LCALL READ MOV 45H,A LCALL READ MOV 46H,A LCALL READ MOV 47H,A SETB EA
29
浙江科技学院本科毕业设计(论文)
SJMP $
INT: ;初始化DS18B20 子程序 CLR EA
L0:CLR P3.3 ;DS18B20 总线为低复位电平 MOV R2,#200 L1:CLR P3.3
DJNZ R2,L1 ;总线复位电平保持400us SETB P3.3 ;释放DS18B20 总线 MOV R2,#30
L4:DJNZ R2,L4 ;释放DS18B20 总线保持60us CLR C ;清存在信号 ORL C,P3.3
JC L0 ;存在吗?不存在则重新来 MOV R6,#80 L5:ORL C,P3.3 JC L3 DJNZ R6,L5 SJMP L0 L3:MOV R2,#240 L2:DJNZ R2,L2 RET
WRITE: ;向DS18B20 写操作命令子程序 CLR EA
MOV R3,#8 ;写入DS18B20 的bit 数,一个字节8 个bit WR1:SETB P3.3 MOV R4,#8
RRC A ;把一个字节data(A)分成8 个bit 环移给 C CLR P3.3 ;开始写入DS18B20 总线要处于复位(低)状态
30
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于DS18B20的智能温度检测系统(6)在线全文阅读。
相关推荐: