基于单片机的温度控制系统设计报告docWord文件下载.docx

上传人:b****5 文档编号:16480279 上传时间:2022-11-24 格式:DOCX 页数:24 大小:261.95KB
下载 相关 举报
基于单片机的温度控制系统设计报告docWord文件下载.docx_第1页
第1页 / 共24页
基于单片机的温度控制系统设计报告docWord文件下载.docx_第2页
第2页 / 共24页
基于单片机的温度控制系统设计报告docWord文件下载.docx_第3页
第3页 / 共24页
基于单片机的温度控制系统设计报告docWord文件下载.docx_第4页
第4页 / 共24页
基于单片机的温度控制系统设计报告docWord文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于单片机的温度控制系统设计报告docWord文件下载.docx

《基于单片机的温度控制系统设计报告docWord文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度控制系统设计报告docWord文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

基于单片机的温度控制系统设计报告docWord文件下载.docx

如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低;

单总线接口,只有一根信号线作为单总线与MCU连接,且每一只都有自己唯一的64位系列号存储在其内部的ROM存储器中,故在一根信号线上可以挂接多个DS18820,便于多点测量且易于扩展.

DS18B20的测温范围较大,集成度较高,故选用此方案。

DS18B20内部1,2位寄存器存放实时温度值,本系统对以上两寄存器数据处理后精度为0.1;

DS18B20第3,4位寄存器分别存放高温限值和低温限值,并且DS18B20内部还有EEPROM,因此通过第3,4寄存器与EEPROM的数据交换就能实现对设定后的值进行贮存。

(三)软件设计

本实验中我选用Keil编程平台.

主程序流程图:

图3主程序流程图

二、单元电路设计

(一)温度信号采集电路

图4温度信号采集电路

(二)步进电机电路

图5步进电机电路

(三)液晶显示模块

图6液晶显示模块

(四)晶振复位电路

图7晶振复位电路

三、总结体会

本次课程设计给我们提供了一个将自己所学的知识应用于实践的良机,通过了两个周的设计我学到了很多非常有价值的东西,懂得了如何将理论知识转化成实际程序的设计;

掌握的单片机开发与设计的思路与方案确定;

学会了更有效的查找自己所需的资料;

同时也意识到了团队协作的重要性;

掌握了硬件与程序设计的一般步骤和方法。

这对我们以后的学习和工作的是非常有帮助的。

设计是我们将来必需的技能,这次课程设计刚好给我们提供了一个应用自己所学知识的机会,从到图书馆和网上查找资料到对硬件与程序模块的设计对各模块的调试再到最后整体设计调试,都对我所学的知识进行了检验,增强了自信心。

通过本次课程设计,我进一步温习和巩固了课本的理论知识,对单片机各接口与外部电路之间的连接关系有了更加深刻的理解。

同时掌握了Proteus和keil软件的基本应用。

同时,在课程设计过程中,将理论知识应用于实际应用,增强了理论联系实际的能力。

虽然设计时有时一个问题需要我们花费很长的时间,很烦很累但当我们通过查找资料解决了之后心里很开心很有成就感。

同时也使我明白了要将理论运用于实践还是一种非常重要的能力,要想牢固的掌握所学的知识我们必须将理论与实践结合起来,用理论来指导实践,用实践来验证理论,增强对理论的理解。

不断地充实自己的理论,提高自己的动手能力。

最终完成了整个设计之后,使我更加坚信只要我们努力和采用正确的方法,没有什么事是我们解决不了的。

最后,我在这里衷心地感谢所有教给我知识和在课程设计中给予我帮助的老师们和同学们,是他们给我们的知识才使我们得以顺利完成此次课程设计。

四、参考文献

《单片微型计算机原理与应用》,张毅坤、陈善久、裘雪红西安电子科技大学出版社

《51单片机应用从零开始》杨欣、王玉凤、李湘黔清华大学出版社

《51单片机应用开发范例大全》宋戈、黄鹤松、员玉良人民邮电出版社

郭天祥电子工业出版社

附录:

程序清单

;

-------------------------------------------------

简单功能说明:

一个显示实时温度的小系统,可以自行设

定高温报警和低温报警值,实现温度控制电机带动外围器

件功能。

DQEQUP1.7;

DS18B20控制口

RSEQUP2.4

RWEQUP2.5

EEQUP2.6

LCDEQUP0

FLAGEQU30H

GEWEIEQU29H

SHIEQU28H

XIAOSHUEQU27H

TEMP_TLEQU20H;

低温限值

TEMP_THEQU21H;

高温限值

TEMPHEQU22H;

温度高字节

TEMPLEQU23H;

温度低字节

TEMPEQU24H

K1EQUP3.0

K2EQUP3.1

K3EQUP3.2

K4EQUP3.3

===============================================

MAIN:

MOVTEMP_TH,#25

MOVTEMP_TL,#01

ACALLINIT_LCD;

初始化液晶

ACALLWR_THL;

写入高温限值和低温限值寄存器

ACALLWR_PROM

ACALLRE_PROM;

从EEPROM中返回高温限值和低温限值

ACALLRESET;

初始化1820

JBFLAG,LOOP

ACALLERROR;

报错

LOOP:

ACALLREAD_T;

1820读取温度

ACALLDISP_TEMP;

液晶显示实时温度

ACALLKEYSCAN;

键盘设定高温限值和低温限值

ACALLTEMP_COMP

JMPLOOP

=============启动1820读取温度====================

READ_T:

SETBDQ

ACALLRESET

JBFLAG,READ_T1

RET

READ_T1:

MOVA,#0CCH

ACALLWR_1820

MOVA,#44H

MOVA,#0BEH

ACALLREAD_1820

=========把高温和低温限值写入寄存器=================

WR_THL:

JBFLAG,WR_HL

WR_HL:

MOVA,#4EH

MOVA,TEMP_TH

MOVA,TEMP_TL

==========把高温和低温限值写入EEPROM=================

WR_PROM:

ACALLRESET

MOVA,#48H

========把EEPROM的值返回到高温和低温限值寄存器========

RE_PROM:

MOVA,#0B8H

===========初始化1820==================================

RESET:

SETBDQ

NOP

CLRDQ

MOVR5,#250

DJNZR5,$

SETBDQ

MOVR5,#25H

RESET1:

JNBDQ,FLAG1

DJNZR5,RESET1

JMPNDQ

FLAG1:

SETBFLAG

MOVR5,#100

JMPRETU

NDQ:

CLRFLAG

ACALLERROR

RETU:

=============1820写字节========================

WR_1820:

MOVR6,#8

CLRC

WR1:

MOVR5,#7

RRCA

MOVDQ,C

MOVR5,#25

DJNZR6,WR1

==============读取1820数据======================

READ_1820:

MOVR2,#4

MOVR1,#TEMPL

RE1:

RE2:

MOVR5,#9

MOVC,DQ

MOVR5,#24

DJNZR6,RE2

MOV@R1,A

DECR1

DJNZR2,RE1

===========转换数据=============================

TURN:

MOVXIAOSHU,TEMPL;

保存TEMPL值,后面用于取低4位转换小数部分

MOVA,TEMPL

MOVC,16;

22H的位寻址

MOVC,17

MOVC,18

MOVC,19

MOVTEMP,A

MOVA,XIAOSHU

ANLA,#00001111B

MOVXIAOSHU,A

========键盘扫描=============================

KEYSCAN:

JBK1,RETUN;

按下K1,进入键盘扫描

ACALLDELAY20

JNBK1,$

ACALLCLR_LCD;

清屏

ACALLDISP_THL;

显示高温限值和低温限值

ACALLSET_HL;

设定限值

把高温限值和低温限值写入RAM

//.../ACALLLED

ACALLWR_PROM;

限值复制到EEPROM中

RETUN:

------------设定高低限值----------------------

SET_HL:

//JNBK4,EXIT

JBK1,KEY4

ACALLDELAY20

CPL20H.1;

标志位,标志设定高温限值或低温限值

JB20H.1,SET_H

JMPSET_L

-------------调高温限值-------------------------

SET_H:

ACALLTH_SHAN;

光标闪,进入设定

KEY2H:

JNBK1,SET_L;

高温限值与低温限值间设定转换

JNBK4,EXIT

JBK2,KEY3H;

按下K2,值加1

JNBK2,$

INCTEMP_TH

CJNEA,#99,A0

MOVTEMP_TH,#00

A0:

ACALLDISP_THL

KEY3H:

JBK3,KEY2H;

按下K3,值减1

JNBK3,$

DECTEMP_TH

MOVA,TEMP_TH

CJNEA,#0,A1

MOVTEMP_TH,#99

A1:

ACALLDISP_THL

JMPSET_H

;

-------------调低温限值------------------------------

SET_L:

ACALLTL_SHAN

KEY2L:

JNBK1,SET_H;

JBK2,KEY3L;

INCTEMP_TL

CJNEA,#99,A2

MOVTEMP_TL,#00

A2:

KEY3L:

JBK3,KEY2L;

DECTEMP_TL

CJNEA,#0,A3

MOVTEMP_TL,#99

A3:

----------------------

KEY4:

JNBK4,EXIT;

K4用于退出设定

JMPSET_HL

//JMPSET_HL

EXIT:

JNBK4,$

MOVLCD,#00001100B;

设置液晶光标不显示、不闪烁

ACALLWR_COMM

ACALLCLR_LCD

ACALLDISP_TEMP

RET

==============温度比较======================================

TEMP_COMP:

SUBBA,TEMP

ACALLDIANJI

MOVA,TEMP

SUBBA,TEMP_TL

============================================

/*MORE:

MOVDPTR,#MORE0

MOVLCD,#0CEH

ACALLWR_COMM

ACALLDISP0

MORE0:

DB'

>

H'

0H

*/

=============启动电机========================

电机接口是P1低4位,因为P1.7是温度传感器的控制口

避免冲突,电机接口按位控制

DIANJI:

JCDIAN0

DIAN0:

MOVR0,#4

//ACALLMORE

DIAN1:

SETBP1.0

CLRP1.1

CLRP1.2

CLRP1.3

ACALLDELAY

CLRP1.0

SETBP1.1

SETBP1.2

SETBP1.3

//RLA

DJNZR0,DIAN1

CLRP1.3

DELAY:

MOVR5,#5

DLY1:

MOVR6,#10

DLY2:

MOVR7,#50

DJNZR7,$

DJNZR6,DLY2

DJNZR5,DLY1

============清屏=============================

CLR_LCD:

MOVLCD,#80H

MOVR0,#16

CLR1:

MOVLCD,#'

'

ACALLWR_DATA

DJNZR0,CLR1

MOVLCD,#0C0H

CLR2:

DJNZR0,CLR2

===============报错============================

ERROR:

MOVDPTR,#ERORTAB

ERORTAB:

INITERROR!

'

0H

================温度标志===================

DISP_C:

MOVLCD,A

ACALLWR_COMM

MOVLCD,#0DFH

ACALLWR_DATA

MOVLCD,#'

C'

ACALLWR_DATA

=================数码显示======================

SHUMA:

MOVDPTR,#SHUTAB

MOVCA,@A+DPTR

SHUTAB:

DB30H,31H,32H,33H,34H

DB35H,36H,37H,38H,39H

===============显示实时温度======================

DISP_TEMP:

ACALLTURN

MOVLCD,#80H

ACALLWR_COMM

MOVDPTR,#CURRENT

ACALLDISP0

MOVLCD,#0CAH

MOVLCD,#2EH;

小数点

ACALLWR_DATA

ACALLDISP_C;

温度标志

------------------------------

MOVA,XIAOSHU

MOVDPTR,#XIAO

MOVCA,@A+DPTR

MOVB,#10

DIVAB

MOVSHI,A

MOVGEWEI,B

MOVLCD,#0CBH

ACALLSHUMA

MOVA,SHI

MOVLCD,#0C8H

ACALLSHUMA

MOVA,GEWEI

//MOVLCD,#0D0H;

把光标移到别处

//ACALLWR_COMM

CURRENT:

DB'

TempretureNow:

0H

XIAO:

DB00H,00H,01H,01H,02H,03H,03H,04H

DB05H,05H,06H,06H,07H,08H,08H,09H

================字符显示=============================

DISP0:

MOVR1,#0

NEXT:

MOVA,R1

MOVCA,@A+DPTR

JZRETT

MOVLCD,A

INCR1

JMPNEXT

RETT:

RET

==========显示高温限值和低温限值======================

DISP_THL:

MOVDPTR,#SETTHL

MOVDPTR,#THL

MOVLCD,#0C1H

---------------------------

F5_THL:

//ACALLRE_PROM

MOVSHI,A//SHI

MOVGEWEI,B//GE

MOVLCD,#0C4H

MOVA,#0C6H

ACALLDISP_C

----------------

MOV

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1