基于单片机的测温系统(4)

2019-03-10 23:08

6总结与体会

这次基于单片机的测温系统的设计,基本达到设计要求,在高兴之余也有了些体会。

在本次设计的过程中,我发现很多的问题和困难,但经过自己的不断努力和尝试并在老师的指导帮助下,基本完成了设计要求。虽然以前也做过相关的设计,但这次设计真的让我长进了很多,我们只有试着去做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

从这次的设计中,我意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次设计中的最大收获。

附录1

16

附录2

17

ORG 0000H AJMP MAIN ORG 0030H

MAIN:MOV SP,#60H SETB P2.4 MOV 30H,#0 MOV 31H,#0 MOV 32H,#0

MAIN1:LCALL GET_TEMP ;采集温度

LCALL SEPERATE ;对采集后的温度数据进行处理 LCALL ZHUANHUAN ;二进制数转换为BCD的形式 LCALL QINGLING ;转换为满足输出的类型 LCALL JIANTIAO ;扫描键盘模块 LCALL BAOJING ;报警设置模块

LCALL SHUCHU ;显示数据到数码管 SJMP MAIN1

;******************************************************************* GET_TEMP:

CLR EA ;使用DS18B20一定要禁止任何中断产生 LCALL INT ;调用初使化子程序 MOV A,#0CCH ;

LCALL WRITE ;送入跳过ROM命令 MOV A,#44H

LCALL WRITE ;送入温度转换命令

LCALL INT ;温度转换完全,再次初使化DS18B20 MOV A,#0CCH

LCALL WRITE ;送入跳过ROM命令 MOV A,#0BEH

LCALL WRITE ;送入读温度暂存器命令 LCALL READ

MOV R7,A ;读出温度值低字节存入R7 LCALL READ

MOV R6,A ;读出温度值高字节存入R6 SETB EA RET

;****************************************************************** INT: ;初始化DS18B20子程序 CLR EA

L0:CLR P2.1 ;复位 MOV R2,#149

L1:DJNZ R2,L1 ;596US

SETB P2.1 ;释放DS18B20总线 MOV R2,#15 ;4US

18

L2:DJNZ R2,L2 ;60US

CLR C ;2US,清DS18B20存在信号 MOV C,P2.1 ;取DS18B20存在信号

JC L0 ;判断DS18B20存在吗?不存在则重新来 MOV R2,#125 ;存在则拉高 SETB P2.1

L3:DJNZ R2,L3 ;共500US RET

;****************************************************************** WRITE:

MOV R1,#08H ;设置写位个数 WLOP:RRC A ;把写的位放到C ACALL WRBIT ;调写1位子程序 DJNZ R1,WLOP ;8位全写完? RET WRBIT:

MOV R2,#14 ;设置时间常数 CLR P2.1 ;写开始 NOP ;2US

MOV P2.1,C ;C内容存到总线 WDLT:DJNZ R2,WDLT ;56US

SETB P2.1 ;释放总线 RET

;******************************************************************* READ:

MOV R1,#8H ;设置读位数 RLOP:ACALL RDBIT ;调读1位子程序

RRC A ;把读到的位在C中的依次送给A DJNZ R1,RLOP ;8位读完? RET RDBIT:

MOV R2,#13 ;设置时间常数 CLR P2.1

NOP ;2US

SETB P2.1 ;释放总线 NOP ;2US

MOV C,P2.1 ;把总线上的内容读到C RDDLT: DJNZ R2,RDDLT ;等待52US SETB P2.1 RET

;***************************************************************** ;程序名称:SEPERATE

;功能:处理采集后的的数据,把小数部分分开,R6放整数R7放小数,F0放符号位

19

;入口参数: R6,R7 ;出口参数: R6 R7 F0

;***************************************************************** SEPERATE:

MOV A,R6 MOV C,ACC.7

MOV F0,C ;符号位 JC SEPERATE1 SJMP SEPERATE2 SEPERATE1:MOV A,R6 CPL A MOV R6,A MOV A,R7 CPL A CLR C INC A MOV R7,A MOV A,R6 ADDC A,#00H MOV R6,A

SEPERATE2:MOV 40H,R7

ANL 40H,#0FH ;小数部分 MOV R0,#12 ;移12次 SEPERATE3:MOV A,R6 RRC A MOV R6,A MOV A,R7 RRC A MOV R7,A MOV A,41H RRC A

MOV 41H,A ;整数部分 DJNZ R0,SEPERATE3

MOV R6,41H ;存整数部分 MOV R7,40H ;存小数部分 RET

;***************************************************************** ;程序名称:ZHUANHUAN

;功能:将R6R7中的二进制数转换为BCD的形式 ;入口参数:R6R7 ;出口参数:R4R5R6R7

;***************************************************************** ZHUANHUAN:

20


基于单片机的测温系统(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:锅炉技术协议

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

马上注册会员

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