李杨 初级组 题A.docx
- 文档编号:29598368
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:17
- 大小:156.62KB
李杨 初级组 题A.docx
《李杨 初级组 题A.docx》由会员分享,可在线阅读,更多相关《李杨 初级组 题A.docx(17页珍藏版)》请在冰豆网上搜索。
李杨初级组题A
恒温水浴系统
系统目的:
能较稳定地把水温维持在10~60℃之间的任意温度,最小分度值为1℃,当温度达到某一设定值并稳定后,水温的波动控制在±1℃以内。
温度调控达到稳定状态时,给出光提示信号。
当水温达到某一设定值并稳定后,其波动控制在±1℃内。
1、方案比较:
1、温度检测两套方案:
(1)用铂电阻和A/D转换器测量温度。
(2)用DS18B20测量温度,单总线的设计、-55到125℃测温范围和内含数字转换系统,更方便使用测量温度。
因为
(1)中涉及到繁琐的数模转换电路,
(2)更经济实惠方便,本系统采用第二种方案。
2、显示方法:
(1)数码管显示,直接显示实时的温度数字。
(2)液晶显示,价格较贵,而且液晶对温度要求较高,不易保存。
(3)上位机显示,需要串口通信,PC连接。
因为资金有限且掌握的知识有限,故选择第一种方案显示实时温度。
2、设计与论证:
(一)硬件部分
1、硬件总体设计方案:
本系统通过温度传感器DS18B20的DQ数据端采集温度数字数据送给单片机的P3^3引脚,经单片机处理二进制数据成十进制送给八位数据线和P2端连接的四位七段数码管上显示,数码管由三极管驱动,四个段取位分别和P0^6,P0^5,P0^4,P0^3连接。
外部半导体制冷器电路通过一个5V继电器和单片机的P1^0相连,达到单片机对系统温度的调节。
P1^1和P1^2分别接有一个LED发光灯,分别产生调温和恒温的光信号。
2、系统功能模块划分及电路图:
(1)主芯片:
stc89c52rc,采用12MHZ的晶体,主芯片的振荡和复位电路:
(2)DS18B20部分:
(3)数码管显示部分:
(4)继电器指示灯部分:
(5)两块半导体制冷器串联在继电器常开端,小风扇和它们并联,控温装置放在容器的一侧,风扇和制冷片中间隔着一个散热器。
(2)软件部分
1、软件设计方案:
以DS18B20的读写温度数据和数码管显示实时温度程序为主,加上对测得温度处理在外部显示信号。
2、流程图:
判断有无DS18B20
DS18B20复位
开始
无
有
读出实时温度转化为十进制
数码管显示十进制温度数字
否
是
继电器断开,仅指示灯2发光
继电器吸合,外部温控电路工作,仅指示灯1发光
温度达到预定值±1?
3、软件代码:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitDQ=P3^3;//DS18B20数据接口
sbitp6=P0^6;//四位数码管段选位
sbitp5=P0^5;
sbitp4=P0^4;
sbitp3=P0^3;
sbitjdq=P1^0;//继电器接口
sbitled1=P1^1;//指示灯
sbitled2=P1^2;
codeuchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//不带小数点
codeuchartab1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//带小数点
uchara,b,t;//a是读数高四位,b是低四位。
t为十进制温度
ucharbai,shi,ge;//温度百十个位数字
uchartemp;//预定温度
//延时函数
voiddelay(uinti)
{
while(i--);
}
//初始化
bitint_ds18b20()
{
ucharx=0;
DQ=1;
delay(8);
DQ=0;
delay(80);
DQ=1;
delay(14);
x=DQ;
delay(20);
returnx;
}
//读一字节
read()
{
uchari=0;
uchardat=0;
for(i=8;i>0;i--)
{
DQ=0;
dat>>=1;
DQ=1;
if(DQ)
dat|=0x80;
delay(4);
}
returndat;
}
//写一字节
write(uchardat)
{
uchari=0;
for(i=8;i>0;i--)
{
DQ=0;
DQ=dat&0x01;
delay(5);
DQ=1;
dat>>=1;
}
delay(4);
}
//温度处理
voiddeal(uchari)
{
if(i
{
jdq=0;
led1=0;
led2=1;
}
else
{
led1=1;
led2=0;
jdq=1;
}
}
//转换函数
voidint_()
{
while(int_ds18b20());
write(0xcc);
write(0x44);
}
voidmain()
{
uintcount=0;
P2=0x00;
int_();
delay(2200);
for(count=0;count<1000;count++)
{
p6=0;
P2=tab[0];
delay(20);
p6=1;
p5=0;
P2=tab[0];
delay(20);
p5=1;
p4=0;
P2=tab[0];
delay(0);
p4=1;
p3=0;
P2=0xc6;
delay(20);
p3=1;
}
while
(1)
{
delay(120);
while(int_ds18b20());
write(0xcc);
write(0xbe);
a=read();
b=read();
if(b>127)
{
a=~a;
b=~b;
a=a>>4;
t=b<<4;
t=t|a;
t+=1;
shi=t/10;
ge=t-shi*10;
for(count=0;count<123;count++)
{
if(t>=10)
{
p6=0;
P2=0xbf;
delay(20);
p6=1;
p5=0;
P2=tab[shi];
delay(20);
p5=1;
p4=0;
P2=tab1[ge];
delay(20);
p4=1;
p3=0;
P2=0xc6;
delay(20);
p3=1;
}
else
{
p6=1;
p5=0;
P2=0xbf;
delay(20);
p5=1;
p4=0;
P2=tab1[ge];
delay(20);
p4=1;
p3=0;
P2=0xc6;
delay(20);
p3=1;
}
}
}
else
{
count=0;
a=a>>4;
t=b<<4;
t=t|a;
bai=t/100;
shi=(t-bai*100)/10;
ge=t-(bai*100+shi*10);
for(count=0;count<123;count++)
{
if(bai)
{
p6=0;
P2=tab[bai];
delay(20);
p6=1;
}
else
p6=1;
if(shi)
{
p5=0;
P2=tab[shi];
delay(20);
p5=1;
}
p5=1;
p4=0;
P2=tab1[ge];
delay(20);
p4=1;
p3=0;
P2=0xc6;
delay(20);
p3=1;
}
}
deal(t);
int_();
}
}
(三)系统总电路图:
3、缺陷处:
1、只能在烧程序时设定温控预定值,制冷制热前分别要烧录一下程序。
2、制冷和制热时不能自动更换半导体制冷器的正负极,需要手动更换。
3、测温有误差。
4、测试方法与仪器
温度计测量水的温度和显示的比较,检验能否达到恒温的效果。
5、测试结果与分析
由于没有12V电源和外部测温装置,我们没有测试环节,只是自己检测了电路能导通,制冷器散热片能工作。
还要周六用主办方的装置测试。
此项暂无。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 李杨 初级组 题A 初级