单片机温度测控系统.docx
- 文档编号:24110812
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:25
- 大小:1.17MB
单片机温度测控系统.docx
《单片机温度测控系统.docx》由会员分享,可在线阅读,更多相关《单片机温度测控系统.docx(25页珍藏版)》请在冰豆网上搜索。
单片机温度测控系统
单片机课程设计报告
题目:
单片机温度测控系统
设计要求
系统要求实现温度的测量控制
转换精度:
8位
转换范围:
0C——+128C
转换误差:
w1摄氏度
设计目的
通过采用单片机实现系统功能的设计实习,要达到理论上巩固既学知识,实践上丰富设计经验,并通过设计过程中暴露出来的一些问题,达到优化知识结构、丰富动手思维能力。
同时,通过对设计中遇到的各种未知知识及设计技巧的学习和解决,更好的培养学生的自学能力。
通过以分组的形式,来培养学生的团结互助,相互学习补充。
这样,不仅在学习上达到的学生间、知识间的融合,更增进了学生的融洽,为即将步入社会的大四学生打下良好的基础。
设计思想
框图:
说明:
该测量系统由单片机实现烧水锅炉各功能的控制。
锅炉具有自动加水,沸水控制,加热控制等功能。
初始化单片机时系统进入锅炉加水功能,当水位达到上限水位时,锅炉产生一个中断脉冲中断单片机,跳出加水,进入单片机控制锅炉加热功能,当锅炉中水的温度达到80度时,降低加热电压,并允许使用锅炉中的水。
当锅炉中的水用至低于下限水位时,锅炉同样会产生一个中断脉冲中断单片机,回复前面过程,再次进行加水控制,如此达到单片机控制热水锅炉的温度测控功能。
其中,系统还设置有温度的三级加热控制。
当温度高于80度时,控制由全电压加热转到半电压加热;当温度高于100度时,又会控制停止加热,即割断加热线路;当温度由高温再次降到90度以下时,系统又会重新启动半电压加热,如此反复控制。
各电路的设计
锅炉示意电路:
Title
Size
B
Date:
File:
5
如上图,通过七个控制线端与中央系统相连,达到控制和信息索取。
而温敏传感器则另加。
其中的进出水口是系统控制的电动阀门,通过系统的高低电平表示阀门的开合,以达到自动装水、自动饮水的目的,起到了对锅炉和人的双方保护的作用,防止了因水的匮乏及溢出对锅炉的伤害,也不会因人喝了未煮沸的水而产生的不良后果。
高低警戒水位则起到对水位的监控作用,防止水位过低烧毁锅炉,也防止水位过高溢出产生其他后果,由于单片机的中断触发方式设置的是下降沿触发,这也是出于锅炉水
34
位变化的缓慢性,为防止误触发而设置的,而我们又假定水淹没水位传感器时表高电平,水未淹没水位传感器时取低电平,这样当高水位有效时传感器产生的是上升沿,为了产生下降沿,在它的输出端接入了一个反相器三级加热则是会产生三个级别的加热,分别是全压加热、半压加热和不加热,如图,D1和D2是控制加热电源的双向晶闸管,它们的功能如下:
D1/P1.3
D2/P1.2
功能
X
0
不加热
1
0
半压加热
1
1
全压加热
D1,D2的触发端则分别与单片机的P1.3,P1.2口相连,达到控制的目的
测温电路:
上面只讲了锅炉的控制模型,现在讲测温电路。
我采用分度号CulOO
的温敏电阻,如图电阻Rx。
环境温度为0C时,Rx=100Q;测温上限128C时,Rx=155Q。
通过与R1对电源电压(5V)分压,在测量范围内输出2.5~1.96V的电压信号Vi。
集成运放A1及其外围电阻实现对Vi进行放大,以输出符合ADC输入的0~2.5V的电压。
理论计算如下:
3
Vo=(R3/R4)*VCC—(R3/R2)*Vi
R3=1500Q,R2=330Q,R4=660Q,VCC=5V,这样,Vo=(R3/R2)(2.5—Vi),当Vi在2.5~1.96V内变化时,Vo将在0~2.5V内变化,同时0度对应0V,128度对应2.5V,符合了数据处理的要求。
U2
水可饮用指示电路:
VCC
P1.0
P0.7
P1.1
P0.6
P1.2
P0.5
P1.3
P0.4
P1.4
P0.3
P1.5
P0.2
P1.6
P0.1
P1.7
P0.0
RST/VpD
EA/Vpp
P3.0/RXD
ALE/PROG
P3.1/TXD
PSEN
P3.2/IRT0-
P2.7
P3.3/INT1
P2.6
P3.4/T0
P2.5
P3.5/T1
P2.4
P3.6/WR
P2.3
P3.7/RD"
P2.2
P2.1
XTAL2
XTAL1
P2.0
Vss
W”R?
drinkable
RES2
GND
89C51如图所示,G通过将一个发光二极管与单片机的P1.5脚相连,当P1.5
输出高电平时,发光二极管发光,表示锅炉内水可饮用;而P1.5脚输出低
2345
电平时发光二极管不发光,则锅炉内水不可饮用。
电阻则是限流用。
模/数转换电路:
21
20
/18u
/15
广14
abcdefgdp
J5A
741S74
\DC_clk
GND
U2
\36d
\35e'
\34f
33g'
30
29
28
27
26
25
24
23
22
21
VCC
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
EA/Vpp
ALE/PROG
PSEN
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
89C51
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST/VpD
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
XTAL2
XTAL1
Vss
9RST
10
11
12
13
14
15
16
17
18oci1
19oci2
20
r
GND
7
25
24
23
GND
m§?
2-1
IN-0
2-2
2-3
IN-1
2-4
2-5
IN-2
2-6
lsb2-8
IN-4
EOC
IN-5
ADD-A
ADD-B
IN-6
ADD-C
IN-7
ALE
START
ref(-)
OE
、CLOCK
ref(+)
ADC0809
26ANOLOG
9
10
QC_clk
22
6
28‘
1|
2,
3,
4j
5彳
16-
27
12
GND
VCC
如图所示,该电路由三部分组成,单片机89C51、ADC0809和D触
发器。
ADC0809有八个模拟信号输入端,由于该系统只需一路模拟信号的
转换,所以将除IN-0以外的输入端都接地,而ADC0809的模拟输入端选
择地址信号全接地,这样,系统就默认了IN-0输入。
ADC0809的启动端接
入89C51的P1.7口,转换结束中断信号则接入89C51的P1.6口,数字信
号输出口使能输入信号接入89C51的P1.4口,这几个口的信号共同达到控
制ADC0809的目的。
ADC0809的转换时钟信号由89C51的ALE端信号经
D触发器分频后接入。
234
温度显示电路:
74LS373
图中电路实现温度的三位显示,因为系统测量温度的上限是128度。
首先,电路通过74LS373锁存P0来的分时复用字型码信息,通过各限流电阻传到各LED进行显示。
而LED的显示也是通过89C51的控制分时显示的。
由于选用的是共阴级LED,所以,当89C51的控制信号为低电平时,表示选择该LED,此时送出的字型码也是该LED的显示数据,LED点亮。
上电复位电路:
VCC
单片机在启动上电时都应该复位内部,以达到正常工作的目的。
电路中,RST接到89C51的RST端,电容在上电的瞬间短路,RST端接入高电平,单片机复位;达到稳态后,电容相当于断路,RST接为低电平,失去
复位功能。
时钟电路:
C2
0.1u
任何时序电路都需要参考时钟,由于89C51有内置的时钟电路,所以只须外接晶振便可。
该电路采用12MHz晶振,补偿电容C1、C2选用典型值。
电源电路
电路采用220伏市电供电,经电桥整流后再经7805三端稳压成5伏电路的供电电压。
C3、C4起到的是平缓纹波的作用,以期给电路提供更稳定的电压,减少因电源波动带来的系统误动作。
DNG
i
5
DNG4胛cC
22~
整体电路如下图:
软件设计
CA
:
A
1
D
程序主流程如下:
系统上电复位开始执行程序。
通过对各个端口初始化,然后进入进水程序,等高警戒水位发出中断后,说明水已经加满,这时跳出加水程序;再对水进行加热到80度,此时水遍可饮用,转换加热等级,等待INTO中断,若中断则水已用至低警戒水位,再转入加水程序,如此循环。
判温程序流程如下:
将温度值先与80度值比较,若大于,则转为半压加热,并打开出水阀,接着执行下面的操作,若小于,则跳出返回;再与90度值比较,若大于,则继续进行下面的比较,若小于,则跳出返回;最后与100度值比较,若
大于则关闭加热系统并返回,若小于,同样返回。
通过这个判温电路,以形成闭环测控温功能。
程序代码:
ORG0000HAJMPmain;
ORG0003HAJMPwater」n;
ORG0013H
AJMPINT_1;
ORG0030H
main:
AJMPwater」n;AJMPheat_water;
initial:
SETB
P1.4;
停止ADC
MOV
DPH,#0C0H
;LED
输出’短横’初始
MOV
DPL,#0FFH;
MOV
A,#08H;
MOVX
@DPTR,A;
AJMP
delay;
CLR
P1.0;
关闭进水口
CLR
P1.1;
关闭出水口
SETB
IT0;
边沿触发方式中断
SETB
IT1;
边沿触发方式中断
SETB
EA;
开中断
SETB
EX0;
SETB
EX1;
RET;
判断是否是中断启动该子程序
打开进水口等待进水满
water_in:
AJMPinitial;
JNBIE0,N_intSETBACC.0;
CLREX0;
CLRIE0;
N_int:
CLRP1.1;
SETBP1.0wait:
JNBCY,wait
NOP
JBACC.0,int_0;RET;
int_0:
SETBEX0;
RETI;
INT_1:
CLREX1;CLRIE0;
CLRP1.0;
SETBCY;
SETBEX1;RETI;
heat_water:
CLRP1.2;
SETBP1.3;
RETURN:
CLRP1.7;启动ADC
SETBP1.7;
AJMPdelay;
CLRP1.7;
wait_ADC:
JNBP1.6,wait_ADC;等待转换结果
MOVDPH,#0FFH;读ADC
MOVDPH,#0FFH;
MOVXA,@DPTR;
MOVR3,A;
ANLA,#7FH;数据处理MOVB,#64H;
DIVAB;
MOVR0,A;
MOVA,B;
MOVB,#10;
DIVAB;
MOVR1,A;
百位显示
十位显示
MOVR2,A;
MOVDPTR,#tab
MOVA,R0;
MOVCA,@A+DPTR;
MOVDPTR,#7FH;
MOVX@DPTR,A;
AJMPdelay;
MOVDPTR,#tab
MOVA,R1;
MOVCA,@A+DPTR;
MOVDPTR,#0BFH;
MOVX@DPTR,A;AJMPdelay;
MOVDPTR,#tab;个位显示
MOVA,R2;
MOVCA,@A+DPTR;
MOVDPTR,#0DFH;
MOVX@DPTR,A;
AJMPdelay;
tab:
DB3FH,03H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
延迟子程序
;字型码数据
delay:
MOVR7,#0FFH
LOOP:
DJNZR7,LOOP;RET;
END;
设计总结
通过这次的课程设计,极大地丰富了我的单片机方面的理论知识,同时复习了模电、数电方面的知识,并较以前有了更深、更新的理解,对即将面临的工作增添了信心。
通过系统地构思、设计,加强了我的各方面的能力,包括逻辑思维能力,整体协调能力,以及自我学习的能力。
但同时,在设计的过程中也碰到不少棘手的问题,通过对它们的解决,不仅锻炼了我解决问题的能力,丰富了我看待问题方式的经验,更重要的是它坚定了我的意志,增加了我面对各种未知问题的勇气。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 测控 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)