智能温控箱说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专业课程实习
应用单片机设计智能温度采集与控制系统
一、目标分析以及系统总体方案的确定
题目要求是应用单片机设计智能温度采集和控制,以及温度每变化一度,显示数据要更新一次。

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

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

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

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

本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,系统自动启动加热继电器加温,使温度上升,同时绿灯亮。

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

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

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

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

经过分析根据测温电路的不同可以得到以下两种设计方案:
方案一:测温电路使用热敏电阻之类的器件利用其感温效应,将被测温度变化的电压或电流采集过来,进行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-1 DS18B20封装
2-2 DS18B20的内部结构
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个10K上拉电阻,同时分别接四位一体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)软件设计的程序
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ZD_SUB
ORG 0100H
N_TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H T00 EQU 40H
T01 EQU 41H
T02 EQU 42H
T03 EQU 43H
EXA EQU 50H
EXB EQU 51H
EXC EQU 52H
EXD EQU 53H
EI0 EQU 54H
EI1 EQU 55H
EI2 EQU 56H
EI3 EQU 57H
SEX EQU 58H
SEI EQU 59H
MAX EQU 5AH
MIN EQU 5BH
TEL EQU 60H
TEH EQU 70H
TELC EQU 72H
TEHC EQU 73H
SSET BIT 00H
UP BIT 01H
DOWN BIT 02H
D1S BIT 03H
FA BIT 04H
D1820 BIT P1.0
MAIN: MOV SP,#80H
MOV P0,#00H
MOV P1,#0FFH
MOV P2,#0FFH
MOV A,#00H
MOV T00,A
MOV T01,A
MOV T02,A
MOV T03,A
MOV MAX,#01111101B
MOV MIN,#11001001B
MOV SEX,#01111101B
MOV SEI,#11001001B
SETB SSET
SETB UP
SETB DOWN
CLR D1S
CLR FA
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
MOV IE,#82H
SETB TR0 MLOOP: LCALL DISP_SUB LCALL KEY_SUB
JB SSET,MNEST0
LCALL TS_SUB MNEST0: JNB FA,MNEXT1 JNB D1S,MLOOP CLR D1S
LCALL RT_SUB LCALL BJ_SUB
LCALL TZS_SUB MNEXT1: SETB FA
LCALL ZH_SUB LJMP MLOOP TZS_SUB:MOV A, TEH
ANL A,#80H
JZ TZS1
CLR C
MOV A, TEL
CPL A
ADD A,#01H
MOV TEL,A
MOV A, TEH
CPL A
ADDC A,#00H
MOV TEH,A
MOV T03,#0BH
SJMP TZS2
TZS1: MOV T03,#0AH TZS2:
MOV A,TEL
ANL A,#0F0H
SWAP A
MOV TEL,A
MOV A,TEH
ANL A,#0FH
SWAP A
ORL A,TEL
MOV B,#64H
DIV AB
MOV T02,A
XCH A,B
DIV AB
MOV T01,A
MOV T00,B TZRET: RET
ZH_SUB:
LCALL RST_SUB
MOV A,#0CCH
LCALL WRITE_SUB
MOV A,#44H
LCALL WRITE_SUB
NOP
RET
RT_SUB:
LCALL RST_SUB
MOV A,#0CCH
LCALL WRITE_SUB
MOV A,#0BEH
LCALL WRITE_SUB RT1: LCALL READ8_SUB NOP
NOP
LCALL RST_SUB
MOV A,#0CCH
LCALL WRITE_SUB
MOV A,#0BEH
LCALL WRITE_SUB
LCALL READ16_SUB RTRET: RET
READ8_SUB:
CLR EA
SETB D1820
MOV R6,#8
RE1: CLR D1820
MOV R4,#2
NOP
SETB D1820
RE2: DJNZ R4,RE2
MOV C,D1820
RRC A
MOV R5,#32
RE3: DJNZ R5,RE3
DJNZ R6,RE1
MOV TEL,A
SETB D1820
RET
READ16_SUB:
CLR EA
SETB D1820
MOV R6,#16
RE4: CLR D1820
MOV R4,#2
NOP
SETB D1820
RE5: DJNZ R4,RE5
MOV C,D1820
RRC A
MOV R5,#32
RE6: DJNZ R5,RE6
DJNZ R6,RE4
MOV TEH,A
SETB D1820
SETB EA
RET
JCRC_SUB:
PUSH ACC
MOV R6,#08H
CRC1: XRL A,B
RRC A
MOV A,B
JNC CRC2
XRL A,#18H
CRC2: RRC A
MOV B,A
POP ACC
RR A
PUSH ACC
DJNZ R6,CRC1
POP ACC
RET
WRITE_SUB:
CLR EA
MOV R3,#8 WRLOOP1:SETB D1820
MOV R4,#8
RRC A
CLR D1820 WRLOOP2:DJNZ R4,WRLOOP2
MOV D1820,C
MOV R4,#32H
DJNZ R3,WRLOOP1
SETB D1820
SETB EA
RET
RST_SUB:
CLR EA
RST0: CLR D1820
MOV R2,#200
RST1: CLR D1820
DJNZ R2,RST1
SETB D1820
MOV R2,#32
RST4: DJNZ R2,RST4
CLR C
JB D1820,RST0
MOV R6,#80
RST5:JB D1820,RST3
DJNZ R6,RST5
LJMP RST0
RST3:MOV R2,#242
RST2:DJNZ R2,RST2
SETB EA
RET
DISP_SUB:
PUSH ACC
MOV DPTR,#N_TAB MOV A,T02
CJNE A,#0,DISP_3
MOV A,T01
CJNE A,#0,DISP_20
MOV T01,T03
MOV T02,#0AH
MOV T03,#0AH
LJMP DISP_3
DISP_20:MOV T02,T03
MOV T03,#0AH DISP_3:MOV A,T03
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
SETB P2.1
SETB P2.2
SETB P2.3
LCALL DEL_SUB
LCALL DEL_SUB
MOVC A,@A+DPTR MOV P0,A
SETB P2.0
CLR P2.1
SETB P2.2
SETB P2.3
LCALL DEL_SUB LCALL DEL_SUB DISP_1:MOV A,T01
MOVC A,@A+DPTR MOV P0,A
SETB P2.0
SETB P2.1
CLR P2.2
SETB P2.3
LCALL DEL_SUB LCALL DEL_SUB DISP_0:MOV A,T00
MOVC A,@A+DPTR MOV P0,A
SETB P2.0
SETB P2.1
SETB P2.2
CLR P2.3
LCALL DEL_SUB LCALL DEL_SUB POP ACC
RET
ZD_SUB:
MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ R7,DNEXT
MOV R7,#20
SETB D1S DNEXT: RETI
DEL_SUB:
SETB RS0
MOV R5,#2 DEL1: MOV R4,#248 DEL2: DJNZ R4,DEL2 DJNZ R5,DEL1
CLR RS0
RET
BJ_SUB:
MOV A,TEH
MOV A,TEL
PUSH ACC
MOV A,TEH
ANL A,#80H
JZ BJ1
MOV A,TEH
ANL A,#00000111B
MOV TEH,A
BJ1: MOV A,TEH
ANL A,#00001111B
SWAP A
MOV TEH,A
MOV A,TEL
ANL A,#0F0H
SWAP A
ORL A,TEH
MOV TEH,A
CJNE A,SEX,BJ2 BJ2: JC BJ6
CLR P1.2
BJ3: CJNE A,SEI,BJ5 LJMP BJ6
BJ5: JNC BJ6
CLR P1.1
BJ4: CLR P2.5
LJMP BJRET
BJ6: SETB P1.1
SETB P1.2
SETB P2.5 BJRET: POP ACC
MOV TEL,A
POP ACC
MOV TEH,A
RET
KEY_SUB:SETB P3.5
SETB P3.6
SETB P3.7
SETB SSET
SETB UP
SETB DOWN
JB P3.5,KEY_0
MOV R6,#10
D10: LCALL DEL_SUB
DJNZ R6,D10
JB P3.5,KEY_0
CLR SSET
KEY_0: JB P3.6,KEY_1
MOV R6,#10
D11: LCALL DEL_SUB
DJNZ R6,D11
JB P3.6,KEY_1
CLR UP
KEY_1: JB P3.7,KEY_2
MOV R6,#10
D12: LCALL DEL_SUB
DJNZ R6,D12
CLR DOWN
KEY_2: RET
SEX_SUB: LCALL KEY_SUB JB UP,SEX_1
MOV A,SEX
CJNE A,MAX,SEX_0
NOP
LJMP SEX_1
SEX_0: INC SEX
LJMP SEX_3
SEX_1: JB DOWN,SEX_3
MOV A,SEX
CJNE A,SEI,SEX_2
NOP
LJMP SEX_3
SEX_2: DEC SEX
SEX_3: MOV A,SEX
JNB ACC.7,SEX_4
MOV T03,#0BH
CPL A
INC A
LJMP SEX_5
SEX_4: MOV T03,#0AH SEX_5:
MOV B,#64H
DIV AB
MOV T02,A
MOV A,B
MOV B,#0AH
DIV AB
MOV T01,A
MOV T00,B
RET
SEI_SUB: LCALL KEY_SUB
MOV A,SEI
CJNE A,SEX,SEI_0
NOP
LJMP SEI_1
SEI_0: INC SEI
LJMP SEI_3
SEI_1: JB DOWN,SEI_3
MOV A,SEI
CJNE A,MIN,SEI_2
NOP
LJMP SEI_3
SEI_2: DEC SEI
SEI_3: MOV A,SEI
JNB ACC.7,SEI_4
MOV T03,#0BH
CPL A
INC A
LJMP SEI_5
SEI_4: MOV T03,#0AH SEI_5:
MOV B,#64H
DIV AB
MOV T02,A
MOV A,B
MOV B,#0AH
DIV AB
MOV T01,A
MOV T00,B
RET
TS_SUB: CLR EA
LCALL SEX_SUB
MOV R6,#15
TS_0: LCALL DISP_SUB JB SSET,TS_3
TS_1: LCALL SEI_SUB
MOV R6,#15
TS_2: LCALL DISP_SUB JB SSET,TS_4
LJMP TS_5
TS_3: DJNZ R6,TS_0
LJMP TS_SUB
TS_4: DJNZ R6,TS_2
LJMP TS_1
TS_5: SETB EA
RET
五、设计总结
时光如箭,岁月如梭,转眼间为期三周的专业课程实习已经结束了,本次设计以
AT89S52单片机为控制核心,利用其强大的处理功能,以及丰富的外围接口,实现智能温度采集和控制,此次设计系统有如下优点:
(1)结构简单,控制部分成本低廉,维护方便。

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

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

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

这次设计过程中,虽然遇到了一些问题,但是通过团队的思考、研究下,最终一一被克服。

通过设计小组成员也认识到自己的不足,比如说,对细节的东西学的不够透彻,对知识深度的挖掘不够。

同时我也感悟到与别人合作的快乐,团结就是力量,通过与同学的交流可以很快的学到很多东西。

相关文档
最新文档