基于单片机的温度控制系统设计报告参考模板.docx

上传人:b****4 文档编号:24424359 上传时间:2023-05-27 格式:DOCX 页数:28 大小:261.92KB
下载 相关 举报
基于单片机的温度控制系统设计报告参考模板.docx_第1页
第1页 / 共28页
基于单片机的温度控制系统设计报告参考模板.docx_第2页
第2页 / 共28页
基于单片机的温度控制系统设计报告参考模板.docx_第3页
第3页 / 共28页
基于单片机的温度控制系统设计报告参考模板.docx_第4页
第4页 / 共28页
基于单片机的温度控制系统设计报告参考模板.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于单片机的温度控制系统设计报告参考模板.docx

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

基于单片机的温度控制系统设计报告参考模板.docx

基于单片机的温度控制系统设计报告参考模板

 

智能仪器仪表综合实训

 

题目基于单片机的温度控制系统设计

学院

专业电子信息工程

班级(仪器仪表)

学生姓名

学号

指导教师

 

完成时间:

一、系统设计---------------------------------------------------------第1页

(一)系统总体设计方案----------------------------------------------第1页

(二)温度信号采集电路选择和数据处理--------------------------------第3页

(三)软件设计------------------------------------------------------第3页

二、单元电路设计-----------------------------------------------------第5页

(一)温度信号采集电路----------------------------------------------第5页

(二)步进电机电路-------------------------------------------------第5页

(三)液晶显示模块----------------------------------------------------------第6页

(四)晶振复位电路--------------------------------------------------第7页

三、总结体会--------------------------------------------------------------------------------------第7页

四、参考文献-------------------------------------------第8页

附录:

程序清单------------------------------------------第8页

一、系统设计

(一)系统总体设计方案

设计框图如下所示:

图1系统总体设计框图

 

总电路图如下:

图2系统总电路图

简单功能说明:

一个显示实时温度的小系统,可以自行设定高温报警和低温报警值,实现温度控制电机带动外围器件功能。

本系统通过温度传感器DS18B20实现对温度数据的采集,数据处理后显示到液晶屏上,通过数据处理,温度值精确度为0.1。

简单操作方法:

系统上电后液晶显示实时温度,通过按键可以设定高低温限定值:

A.按下K1,显示系统的高低温限定值;

B.再按K1,进入设定状态,液晶屏光标闪动提示设定,此时设定高温限值还是低温限值可以在

K1键转换;

C.进入设定状态后,K2键用于值加1,K3键用于值减1;

D.设定完后,按键K4确认后退出,返回显示实时温度!

(二)温度信号采集电路选择和数据处理

方案:

采用温度传感器DS18B20

美国DALLAS公司的产品可编程单总线数字式温度传感器DS18B20可实现室内温度信号的采集,有很多优点:

如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低;单总线接口,只有一根信号线作为单总线与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

ACALLWR_1820

ACALLRESET

MOVA,#0CCH

ACALLWR_1820

MOVA,#0BEH

ACALLWR_1820

ACALLREAD_1820

RET

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

WR_THL:

JBFLAG,WR_HL

RET

WR_HL:

ACALLRESET

MOVA,#0CCH

ACALLWR_1820

MOVA,#4EH

ACALLWR_1820

MOVA,TEMP_TH

ACALLWR_1820

MOVA,TEMP_TL

ACALLWR_1820

RET

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

WR_PROM:

ACALLRESET

MOVA,#0CCH

ACALLWR_1820

MOVA,#48H

ACALLWR_1820

RET

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

RE_PROM:

ACALLRESET

MOVA,#0CCH

ACALLWR_1820

MOVA,#0B8H

ACALLWR_1820

RET

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

RESET:

SETBDQ

NOP

CLRDQ

MOVR5,#250

DJNZR5,$

SETBDQ

NOP

MOVR5,#25H

RESET1:

JNBDQ,FLAG1

DJNZR5,RESET1

JMPNDQ

 

FLAG1:

SETBFLAG

MOVR5,#100

DJNZR5,$

SETBDQ

MOVR5,#100

DJNZR5,$

JMPRETU

NDQ:

CLRFLAG

ACALLERROR

RETU:

SETBDQ

RET

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

WR_1820:

MOVR6,#8

CLRC

WR1:

CLRDQ

MOVR5,#7

DJNZR5,$

RRCA

MOVDQ,C

MOVR5,#25

DJNZR5,$

SETBDQ

NOP

NOP

DJNZR6,WR1

SETBDQ

RET

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

READ_1820:

MOVR2,#4

MOVR1,#TEMPL

RE1:

MOVR6,#8

RE2:

SETBDQ

NOP

CLRDQ

CLRC

NOP

NOP

SETBDQ

MOVR5,#9

DJNZR5,$

MOVC,DQ

MOVR5,#24

DJNZR5,$

RRCA

DJNZR6,RE2

MOV@R1,A

DECR1

DJNZR2,RE1

RET

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

TURN:

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

MOVA,TEMPL

MOVC,16;22H的位寻址

RRCA

MOVC,17

RRCA

MOVC,18

RRCA

MOVC,19

RRCA

MOVTEMP,A

MOVA,XIAOSHU

ANLA,#00001111B

MOVXIAOSHU,A

RET

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

KEYSCAN:

JBK1,RETUN;按下K1,进入键盘扫描

ACALLDELAY20

JNBK1,$

ACALLCLR_LCD;清屏

ACALLDISP_THL;显示高温限值和低温限值

ACALLSET_HL;设定限值

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

//.../ACALLLED

ACALLWR_PROM;限值复制到EEPROM中

RETUN:

RET

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

SET_HL:

//JNBK4,EXIT

JBK1,KEY4

ACALLDELAY20

JNBK1,$

CPL20H.1;标志位,标志设定高温限值或低温限值

JB20H.1,SET_H

JMPSET_L

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

SET_H:

ACALLTH_SHAN;光标闪,进入设定

KEY2H:

JNBK1,SET_L;高温限值与低温限值间设定转换

JNBK4,EXIT

JBK2,KEY3H;按下K2,值加1

ACALLDELAY20

JNBK2,$

INCTEMP_TH

MOVA,TEMP_TH

CJNEA,#99,A0

MOVTEMP_TH,#00

A0:

ACALLDISP_THL

KEY3H:

JBK3,KEY2H;按下K3,值减1

ACALLDELAY20

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;高温限值与低温限值间设定转换

JNBK4,EXIT

JBK2,KEY3L;按下K2,值加1

ACALLDELAY20

JNBK2,$

INCTEMP_TL

MOVA,TEMP_TL

CJNEA,#99,A2

MOVTEMP_TL,#00

A2:

ACALLDISP_THL

KEY3L:

JBK3,KEY2L;按下K3,值减1

ACALLDELAY20

JNBK3,$

DECTEMP_TL

MOVA,TEMP_TL

CJNEA,#0,A3

MOVTEMP_TL,#99

A3:

ACALLDISP_THL

JMPSET_L

;----------------------

KEY4:

JNBK4,EXIT;K4用于退出设定

JMPSET_HL

//JMPSET_HL

EXIT:

ACALLDELAY20

JNBK4,$

MOVLCD,#00001100B;设置液晶光标不显示、不闪烁

ACALLWR_COMM

ACALLCLR_LCD

ACALLDISP_TEMP

RET

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

TEMP_COMP:

MOVA,TEMP_TH

SUBBA,TEMP

ACALLDIANJI

MOVA,TEMP

SUBBA,TEMP_TL

ACALLDIANJI

RET

;============================================

/*MORE:

MOVDPTR,#MORE0

MOVLCD,#0CEH

ACALLWR_COMM

ACALLDISP0

RET

MORE0:

DB'>H',0H

*/

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

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

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

DIANJI:

JCDIAN0

RET

DIAN0:

MOVR0,#4

//ACALLMORE

DIAN1:

SETBP1.0

CLRP1.1

CLRP1.2

CLRP1.3

ACALLDELAY

CLRP1.0

SETBP1.1

ACALLDELAY

CLRP1.1

SETBP1.2

ACALLDELAY

CLRP1.2

SETBP1.3

ACALLDELAY

//RLA

DJNZR0,DIAN1

CLRP1.0

CLRP1.1

CLRP1.2

CLRP1.3

RET

DELAY:

MOVR5,#5

DLY1:

MOVR6,#10

DLY2:

MOVR7,#50

DJNZR7,$

DJNZR6,DLY2

DJNZR5,DLY1

RET

;============清屏=============================

CLR_LCD:

MOVLCD,#80H

ACALLWR_COMM

MOVR0,#16

CLR1:

MOVLCD,#''

ACALLWR_DATA

DJNZR0,CLR1

MOVLCD,#0C0H

ACALLWR_COMM

MOVR0,#16

CLR2:

MOVLCD,#''

ACALLWR_DATA

DJNZR0,CLR2

RET

;===============报错============================

ERROR:

MOVLCD,#80H

ACALLWR_COMM

MOVDPTR,#ERORTAB

ACALLDISP0

RET

ERORTAB:

DB'INITERROR!

',0H

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

DISP_C:

MOVLCD,A

ACALLWR_COMM

MOVLCD,#0DFH

ACALLWR_DATA

MOVLCD,#'C'

ACALLWR_DATA

RET

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

SHUMA:

MOVDPTR,#SHUTAB

MOVCA,@A+DPTR

MOVLCD,A

ACALLWR_DATA

RET

SHUTAB:

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

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

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

DISP_TEMP:

ACALLTURN

MOVLCD,#80H

ACALLWR_COMM

MOVDPTR,#CURRENT

ACALLDISP0

MOVLCD,#0CAH

ACALLWR_COMM

MOVLCD,#2EH;小数点

ACALLWR_DATA

MOVA,#0CCH

ACALLDISP_C;温度标志

;------------------------------

MOVA,XIAOSHU

MOVDPTR,#XIAO

MOVCA,@A+DPTR

MOVXIAOSHU,A

MOVA,TEMP

MOVB,#10

DIVAB

MOVSHI,A

MOVGEWEI,B

MOVA,XIAOSHU

MOVLCD,#0CBH

ACALLWR_COMM

ACALLSHUMA

MOVA,SHI

MOVLCD,#0C8H

ACALLWR_COMM

ACALLSHUMA

MOVA,GEWEI

ACALLSHUMA

//MOVLCD,#0D0H;把光标移到别处

//ACALLWR_COMM

RET

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

ACALLWR_DATA

JMPNEXT

RETT:

RET

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

DISP_THL:

MOVDPTR,#SETTHL

MOVLCD,#80H

ACALLWR_COMM

ACALLDISP0

MOVDPTR,#THL

MOVLCD,#0C1H

ACALLWR_COMM

ACALLDISP0

;---------------------------

F5_THL:

//ACALLRE_PROM

MOVA,TEMP_TH

MOVB,#10

DIVAB

MOVSHI,A//SHI

MOVGEWEI,B//GE

MOVA,SHI

MOVLCD,#0C4H

ACALLWR_COMM

ACALLSHUMA

MOVA,GEWEI

ACALLSHUMA

MOVA,#0C6H

ACALLDISP_C

;----------------

MOVA,TEMP_TL

MOVB,#10

DIVAB

MOVSHI,A//SHI

M

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

当前位置:首页 > 求职职场 > 简历

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

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