应用单片机设计智能温度采集与控制系统说明书.docx

上传人:b****5 文档编号:5977569 上传时间:2023-01-02 格式:DOCX 页数:27 大小:645.03KB
下载 相关 举报
应用单片机设计智能温度采集与控制系统说明书.docx_第1页
第1页 / 共27页
应用单片机设计智能温度采集与控制系统说明书.docx_第2页
第2页 / 共27页
应用单片机设计智能温度采集与控制系统说明书.docx_第3页
第3页 / 共27页
应用单片机设计智能温度采集与控制系统说明书.docx_第4页
第4页 / 共27页
应用单片机设计智能温度采集与控制系统说明书.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

应用单片机设计智能温度采集与控制系统说明书.docx

《应用单片机设计智能温度采集与控制系统说明书.docx》由会员分享,可在线阅读,更多相关《应用单片机设计智能温度采集与控制系统说明书.docx(27页珍藏版)》请在冰豆网上搜索。

应用单片机设计智能温度采集与控制系统说明书.docx

应用单片机设计智能温度采集与控制系统说明书

专业课程实习

应用单片机设计智能温度采集与控制系统

 

学院:

机械控制与工程学院

专业名称:

机械设计制造及其自动化

班级:

机械08-3班

小组成员:

 

指导教师:

代宣军、孙宝富

完成日期:

2011年12月25日

一、目标分析以及系统总体方案的确定

题目要求是应用单片机设计智能温度采集和控制,以及温度每变化一度,显示数据要更新一次。

由此可知设计的内容是温度采集显示控制系统,控制对象是温度。

温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。

而以往温度控制是由人工完成的而且不够重视。

其实在很多场所温度都需要实时监控以防止发生意外,针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。

本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:

当温度低于设定下限温度时,系统自动启动加热继电器加温,使温度上升,同时绿灯亮。

当温度上升到下限温度以上时,停止加温;当温度高于设定上限温度时,系统自动启动风扇降温,使温度下降,同时红灯亮。

当温度下降到上限温度以下时,停止降温。

温度在上下限温度之间时,执行机构不执行。

一个四位数码管即时显示温度,温度每变化一度数码管数据就更新一次。

经过分析根据测温电路的不同可以得到以下两种设计方案:

方案一:

测温电路使用热敏电阻之类的器件利用其感温效应,将被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,然后在显示电路上将被测温度显示出来。

这种设计需要用到A/D转换电路,感温电路比较麻烦。

方案二:

考虑使用温度传感器。

结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求。

比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现。

所以本设计采用方案二。

系统的总体控制方案如下图所示:

它由三部分组成:

1)控制部分主芯片采用单片机AT89S52;2)显示部分采用4位LED数码管以动态扫描方式实现温度显示;3)温度采集部分采用DS18B20温度传感器。

1-1系统的总体控制方案

二、温度采集部分的选择

温度采集部分选用DS18B20。

DS18B20温度传感器是美国DALLS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻测温元件相比,它能直接读出被测温度。

这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其单片机的接口部分组成。

数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.0口,单片机接受温度并存储。

(1)DS18B20的性能特点如下:

1)独特的单线接口仅需要一个端口引脚进行通信;

2)多个DS18B20可以并联在唯一的三线上,实现多点组网功能;

3)无须外部器件;

4)可通过数据线供电,电压范围为3.0-5.5V;

5)零待机功耗;

6)温度以3位数字显示;

7)用户可定义报警设置;

8)报警搜索命令识别并标志超过限定温度(温度报警条件)的器件;

9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

(2)DS18B20的内部结构

DS18B20采用3脚PR-35封装,如图2-1所示;DS18B20的内部结构,如图2-2所示。

2-1DS18B20封装

2-2DS18B20的内部结构

2-1DS18B20封装的引脚定义:

1)DQ为数字信号输入/输出端

2)GND为电源地

3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)

2-2DS18B20内部结构主要由四部分组成:

1)64位光刻ROM。

开始8位的是产品类型的编码,接着是每个器件的唯一的序号,共有48位,最后8位是前56位的CRC校验码,这也是DS18B20可以采用一线进行通信的原因。

2)非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。

3)高速暂存存储,可以设置DS18B20温度转换的精度。

4)CRC的产生

(3)DS18B20的工作原理

DS18B20工作时序

根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:

(1)每次读写之前都必须要对DS18B20进行复位;

(2)复位成功后发送一条ROM指令;

(3)最后发送RAM指令,这样才能对DS18B20进行预定的操作。

复位要求主机CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15-60微秒左右后发出60-240微秒的存在低脉冲,主CPU收到此信号表示复位成功,其工作时序包括初始时序、写时序和读时序,具体工作方法如图2-3、2-4、2-5所示。

1)初始化时序

图2-3初始化时序

总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。

应答脉冲使主机知道,总线上有从机设备,且准备就绪。

主机输出低电平,保持低电平时间至少480us,已产生复位脉冲。

接着主机释放总线,4.7K

上拉电阻将总线拉高,延时15-60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时60-240us

2)写时序

图2-4写时序

写时序包括写0时序和写1时序。

所有写时序至少需要60us,且在2次独立写时序之间至少需要1us的恢复时间,都是以总线拉低开始。

写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。

写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。

3)读时序

图2-5读时序

总线器件仅在主机发出读时序时才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。

所有读时序至少需要60us,且在2次独立写时序之间至少需要1us的恢复时间。

每次读时序都由主机发起,至少拉低总线1us。

主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。

主机输出低电平时延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。

三、显示电路的选择

显示电路采用4位一体共阴极LED数码管,从P0口送数,P2口扫描。

四、单片机系统的设计

(1)硬件设计

1)晶振电路

单片机XTAL1,XTAL2分别接30PF的电容,中间再并个12MHz的晶振,形成单片机的晶振电路。

如下图:

2)复位电路

3)EA引脚接VCC

复位后,首先执行片内程序存储器的程序,当PC值超过内部程序存储器空间时,后面的自动转到外部空间取指令执行。

4)P1.5,P1.6,P1.7引脚接下载器电路,如下图所示:

电路中加个电容,用于防止掉电保护。

5)P3.5,P3.6,P3.7分别接按钮S1,S2,S3。

如下图所示:

S1按钮用于手动操作进入上下限温度设置界面;S2按钮用于上限温度设置;S3按钮用于下限温度设置。

6)P1.1,P1.2引脚用于接警报指示灯。

如下图所示:

P1.1用于接绿色指示灯,表示温度低于下限温度,加热执行机构开始工作,直到绿灯熄灭。

P1.2用于接红色指示灯,表示温度高于上限温度,风扇执行机构开始工作,直到红灯熄灭。

由于各种原因,执行机构略,仅用红绿灯进行警报。

7)P1.0接温度传感器电路,如下图:

8)P0接口接8个820

上拉电阻,同时分别接四位一体LED灯的a,b,c,d,e,f,g,dp引脚。

具体接法见原理图。

9)P2接口中P2.0、P2.1、P2.2、P2.3分别接到显示电路的4.7K电阻上,P2.5接蜂鸣器电路,其它悬空。

具体接法见原理图。

10)VCC接电源,VSS接地。

11)硬件设计的原理图如下:

 

12)系统的PCB印刷电路板图如下:

(2)软件设计

1)软件设计的相关流程图

主程序流程图温度显示子程序

初始化上限温度设置初始化下限温度设置

温度设置下限值设置上限值设置

温度处理子程序报警程序

温度转换

2)软件设计的程序

ORG0000H

LJMPMAIN

ORG000BH

LJMPZD_SUB

ORG0100H

N_TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H

T00EQU40H;个位

T01EQU41H

T02EQU42H

T03EQU43H

EXAEQU50H;上限个位

EXBEQU51H

EXCEQU52H

EXDEQU53H

EI0EQU54H;下限个位

EI1EQU55H

EI2EQU56H

EI3EQU57H

SEXEQU58H;上限数

SEIEQU59H;下限数

MAXEQU5AH;最大上限温度值

MINEQU5BH;最小下限温度值

TELEQU60H;温度低位

TEHEQU70H;温度高位

TELCEQU72H

TEHCEQU73H

SSETBIT00H

UPBIT01H;上限加

DOWNBIT02H;下限加

D1SBIT03H

FABIT04H

D1820BITP1.0

MAIN:

MOVSP,#80H;系统程序初始化

MOVP0,#00H

MOVP1,#0FFH

MOVP2,#0FFH

MOVA,#00H

MOVT00,A

MOVT01,A

MOVT02,A

MOVT03,A

MOVMAX,#01111101B

MOVMIN,#11001001B

MOVSEX,#01111101B

MOVSEI,#11001001B

SETBSSET

SETBUP

SETBDOWN

CLRD1S

CLRFA

MOVR7,#20

MOVTMOD,#01H

MOVTL0,#0B0H

MOVTH0,#3CH

MOVIE,#82H

SETBTR0

MLOOP:

LCALLDISP_SUB;调用温度显示子程序

LCALLKEY_SUB;调用键盘扫描子程序

JBSSET,MNEST0;设置键按下时,即SSET为0转移,否则顺序执行

LCALLTS_SUB;调用温度设置子程序

MNEST0:

JNBFA,MNEXT1;调用温度上下限设置键子程序

JNBD1S,MLOOP;不是1S转移,按键去抖动法

CLRD1S

LCALLRT_SUB;调用读温度子程序

LCALLBJ_SUB;调用报警子程序

LCALLTZS_SUB;调用温度计算处理子程序

MNEXT1:

SETBFA

LCALLZH_SUB;调用温度转变子程序

LJMPMLOOP

TZS_SUB:

MOVA,THE;温度计算处理子程序

ANLA,#80H

JZTZS1

CLRC

MOVA,TEL

CPLA

ADDA,#01H

MOVTEL,A

MOVA,TEH

CPLA

ADDCA,#00H

MOVTEH,A

MOVT03,#0BH

SJMPTZS2

TZS1:

MOVT03,#0AH

TZS2:

MOVA,TEL

ANLA,#0F0H

SWAPA

MOVTEL,A

MOVA,TEH

ANLA,#0FH

SWAPA

ORLA,TEL

MOVB,#64H

DIVAB

MOVT02,A

MOVA,#0AH

XCHA,B

DIVAB

MOVT01,A

MOVT00,B

TZRET:

RET

ZH_SUB:

;温度转变子程序

LCALLRST_SUB;调用DS18B20复位程序

MOVA,#0CCH;发跳过ROM命令

LCALLWRITE_SUB;调用写一个字节程序

MOVA,#44H;发温度转变命令

LCALLWRITE_SUB;写命令字

NOP

RET

RT_SUB:

;读温度子程序

LCALLRST_SUB;复位DS18B20

MOVA,#0CCH;发跳过ROM命令

LCALLWRITE_SUB;写命令字

MOVA,#0BEH;发读ROM命令

LCALLWRITE_SUB;写命令字

RT1:

LCALLREAD8_SUB;调用读DS18B20RAM内容

NOP

NOP

LCALLRST_SUB

MOVA,#0CCH

LCALLWRITE_SUB

MOVA,#0BEH

LCALLWRITE_SUB

LCALLREAD16_SUB

RTRET:

RET

READ8_SUB:

;读DS18B20RAM内容

CLREA

SETBD1820

MOVR6,#8

RE1:

CLRD1820

MOVR4,#2

NOP

SETBD1820

RE2:

DJNZR4,RE2

MOVC,D1820

RRCA

MOVR5,#32

RE3:

DJNZR5,RE3

DJNZR6,RE1

MOVTEL,A

SETBD1820

SETBEA

RET

READ16_SUB:

CLREA

SETBD1820

MOVR6,#16

RE4:

CLRD1820

MOVR4,#2

NOP

SETBD1820

RE5:

DJNZR4,RE5

MOVC,D1820

RRCA

MOVR5,#32

RE6:

DJNZR5,RE6

DJNZR6,RE4

MOVTEH,A

SETBD1820

SETBEA

RET

JCRC_SUB:

PUSHACC

MOVR6,#08H

CRC1:

XRLA,B

RRCA

MOVA,B

JNCCRC2

XRLA,#18H

CRC2:

RRCA

MOVB,A

POPACC

RRA

PUSHACC

DJNZR6,CRC1

POPACC

RET

WRITE_SUB:

;写一个字节程序

CLREA

MOVR3,#8

WRLOOP1:

SETBD1820

MOVR4,#8

RRCA

CLRD1820

WRLOOP2:

DJNZR4,WRLOOP2

MOVD1820,C

MOVR4,#32H

WRLOOP3:

DJNZR4,WRLOOP3

DJNZR3,WRLOOP1

SETBD1820

SETBEA

RET

RST_SUB:

;DS18B20复位程序

CLREA

RST0:

CLRD1820

MOVR2,#200

RST1:

CLRD1820

DJNZR2,RST1

SETBD1820

MOVR2,#32

RST4:

DJNZR2,RST4

CLRC

JBD1820,RST0

MOVR6,#80

RST5:

JBD1820,RST3

DJNZR6,RST5

LJMPRST0

RST3:

MOVR2,#242

RST2:

DJNZR2,RST2

SETBEA

RET

DISP_SUB:

;温度显示子程序

PUSHACC

MOVDPTR,#N_TAB

MOVA,T02

CJNEA,#0,DISP_3

MOVA,T01

CJNEA,#0,DISP_20

MOVT01,T03

MOVT02,#0AH

MOVT03,#0AH

LJMPDISP_3

DISP_20:

MOVT02,T03

MOVT03,#0AH

DISP_3:

MOVA,T03

MOVCA,@A+DPTR

MOVP0,A

CLRP2.0

SETBP2.1

SETBP2.2

SETBP2.3

LCALLDEL_SUB

LCALLDEL_SUB

DISP_2:

MOVA,T02

MOVCA,@A+DPTR

MOVP0,A

SETBP2.0

CLRP2.1

SETBP2.2

SETBP2.3

LCALLDEL_SUB

LCALLDEL_SUB

DISP_1:

MOVA,T01;十位显示程序

MOVCA,@A+DPTR

MOVP0,A

SETBP2.0

SETBP2.1

CLRP2.2

SETBP2.3

LCALLDEL_SUB

LCALLDEL_SUB

DISP_0:

MOVA,T00;个位显示程序

MOVCA,@A+DPTR

MOVP0,A

SETBP2.0

SETBP2.1

SETBP2.2

CLRP2.3

LCALLDEL_SUB

LCALLDEL_SUB

POPACC

RET

ZD_SUB:

MOVTL0,#0B0H

MOVTH0,#3CH

DJNZR7,DNEXT

MOVR7,#20

SETBD1S

DNEXT:

RETI

DEL_SUB:

SETBRS0

MOVR5,#2

DEL1:

MOVR4,#248

DEL2:

DJNZR4,DEL2

DJNZR5,DEL1

CLRRS0

RET

BJ_SUB:

;报警子程序

MOVA,TEH

PUSHACC

MOVA,TEL

PUSHACC

MOVA,TEH

ANLA,#80H

JZBJ1

MOVA,TEH

ANLA,#00000111B

MOVTEH,A

BJ1:

MOVA,TEH

ANLA,#00001111B

SWAPA

MOVTEH,A

MOVA,TEL

ANLA,#0F0H

SWAPA

ORLA,TEH

MOVTEH,A

CJNEA,SEX,BJ2

BJ2:

JCBJ6

CLRP1.2

BJ3:

CJNEA,SEI,BJ5

LJMPBJ6

BJ5:

JNCBJ6

CLRP1.1

BJ4:

CLRP2.5

LJMPBJRET

BJ6:

SETBP1.1

SETBP1.2

SETBP2.5

BJRET:

POPACC

MOVTEL,A

POPACC

MOVTEH,A

RET

KEY_SUB:

SETBP3.5;键盘扫描子程序

SETBP3.6

SETBP3.7

SETBSSET

SETBUP

SETBDOWN

JBP3.5,KEY_0

MOVR6,#10

D10:

LCALLDEL_SUB

DJNZR6,D10

JBP3.5,KEY_0

JNBP3.5,$

CLRSSET

KEY_0:

JBP3.6,KEY_1

MOVR6,#10

D11:

LCALLDEL_SUB

DJNZR6,D11

JBP3.6,KEY_1

CLRUP

KEY_1:

JBP3.7,KEY_2

MOVR6,#10

D12:

LCALLDEL_SUB

DJNZR6,D12

CLRDOWN

KEY_2:

RET

SEX_SUB:

LCALLKEY_SUB

JBUP,SEX_1

MOVA,SEX

CJNEA,MAX,SEX_0

NOP

LJMPSEX_1

SEX_0:

INCSEX

LJMPSEX_3

SEX_1:

JBDOWN,SEX_3

MOVA,SEX

CJNEA,SEI,SEX_2

NOP

LJMPSEX_3

SEX_2:

DECSEX

SEX_3:

MOVA,SEX

JNBACC.7,SEX_4

MOVT03,#0BH

CPLA

INCA

LJMPSEX_5

SEX_4:

MOVT03,#0AH

SEX_5:

MOVB,#64H

DIVAB

MOVT02,A

MOVA,B

MOVB,#0AH

DIVAB

MOVT01,A

MOVT00,B

RET

SEI_SUB:

LCALLKEY_SUB

JBUP,SEI_1

MOVA,SEI

CJNEA,SEX,SEI_0

NOP

LJMPSEI_1

SEI_0:

INCSEI

LJMPSEI_3

SEI_1:

JBDOWN,SEI_3

MOVA,SEI

CJNEA,MIN,SEI_2

NOP

LJMPSEI_3

SEI_2:

DECSEI

SEI_3:

MOVA,SEI

JNBACC.7,SEI_4

MOVT03,#0BH

CPLA

INCA

LJMPSEI_5

SEI_4:

MOVT03,#0AH

SEI_5:

MOVB,#64H

DIVAB

MOVT02,A

MOVA,B

MOVB,#0AH

DIVAB

MOVT01,A

MOVT00,B

RET

TS_SUB:

CLREA

LCALLSEX_SUB

MOVR6,#15

TS_0:

LCALLDISP_SUB

JBSSET,TS_3

TS_1:

LCALLSEI_SUB

MOVR6,#15

TS_2:

LCALLDISP_SUB

JBSSET,TS_4

LJMPTS_5

TS_3:

DJNZR6,TS_0

LJMPTS_SUB

TS_4:

DJNZR6,TS_2

LJMPTS_1

TS_5:

SETBEA

RET

END

五、设计总结

时光如箭,岁月如梭,转眼间为期三周的专业课程实习已经结束了,本次设计以AT89S52单片机为控制核心,利用其强大的处理功能,以及丰富的外围接口,实现智能温度采集和控制,此次设计系统有如下优点:

(1)结构简单,控制部分成本低廉,维护方便。

(2)配置灵活、方便、易于扩展。

通过此次智能温度采集与控制的综合设计,使我们巩固了专业知识,同时也了解了单片机在工业上的使用及单片机的编程、扩展口的使用,另外也懂得了单片机是如何应用在测控系统中的。

在此次设计过程中,通过不断摸索,开拓了思维,同时也解决了不少以前尚未弄明白的问题,同时也使我们的技术知识得到了巩固,操作能力得到了提高。

这次设计过程中,虽然

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

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

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

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