第一范文网 - 专业文章范例文档资料分享平台

基于单片机的温度控制系统的设计毕业论文

来源:用户分享 时间:2025/8/10 8:27:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

附录三 源程序

ORG 0000H

TEMPER_L EQU 29H TEMPER_H EQU 28H

FLAG1 EQU 38H;是否检测到DS18B20标志位 A_BIT EQU 20H ;数码管个位数存放内存位置 B_BIT EQU 21H ;数码管十位数存放内存位置 XS EQU 30H MOV A,#00H MOV P2,A

MAIN:LCALL GET_TEMPER;调用读温度子程序 MOV A,29H MOV B,A CLR C RLC A CLR C RLC A CLR C RLC A CLR C RLC A

- 9 -

SWAP A MOV 31H,A MOV A,B

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

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 LCA

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

- 10 -

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

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进制

- 11 -

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段代码 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算)

- 12 -

基于单片机的温度控制系统的设计毕业论文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7z6oy7kzde38ccg96mxg8n6j4879as00bv7_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top