作者:四川大学 吴帆 吴彦冰 夏莹
指导教师:杨刚
作品简介
一.开发背景
供者身上移植的器官在体外存活时间大约只有3天左右,即使对移植器官进行处理和冷藏,最多也只能存活7天。血液可以存放为一定温度冷藏,在低温冷藏的环境下,血液中细胞仍然具有“活性”,冷藏的最长期限为35天。多年来,人们采用的低温保存方法已有应用(如:保存哺乳动物的细胞,包括血液细胞,动物胚胎和人的胚胎等),而用于器官移植的低温保存技术与普通的保存方法不同,其技术的关键是:(1)降温迅速,待升温后,器官仍能恢复活性。(2)采用低温而不是冷冻,这样可以防止器官细胞内形成冰冻结晶。该保存技术的方法是:将移植器官放入到水中,使期处于液态下,并加入低温保存剂(浓度为8克分子浓度/升),然后,置于冷贮环境(迅速降温至-125摄氏度)及压力(500个大气压力)下,此时,浸入器官中的水并不产生冻结。在这里,低温保存剂的作用如同汽车水箱加防冻剂的原理一样。而大气压力的作用,主要是降低水的冰点,有助于阻止冰在器官中的形成。而该低温保存技术中存在溶液浓度高及压力过大问题,为解决该问题,我们提出了用半导体制冷片制冷来实现对器官以及血液的便携式冷藏功能。
二.功能
便携式器官、血液的冷藏功能的实现
三.使用说明
将传感器置入需要测控的空间内,通过按键设置需要达到的温度。当设置温度低于当前温度时,装置开始工作,直至当前温度低于设置温度为止。
四.结构说明
平台选型说明
单片机开发板(以STC15F2K60S2芯片为控制核心)
设计说明
一.作品原理
1.总体原理
在开始或系统运行间,通过按键设置需要保温的温度。通过DS18B20温度传感器将温度读入到单片机中,单片机判断当前温度是否低于设置温度,若低于,单片机输出控制信号控制电磁继电器断开,使得制冷片停止工作,当当前温度高于设置温度时,单片机输出控制信号,控制电磁继电器吸合,使得制冷片开始工作,降低保温装置的温度。总体工作原理示意图如下:
2.硬件原理
2.1制冷片原理
热电制冷主要是珀尔帖效应在制冷技术方面的应用。实用的热电制冷装置是由热电效应比较显著、热电制冷效率比较高的半导体热电偶构成的。半导体热电偶由N 型半导体和P型半导体组成。N 型材料有多余的电子,有负温差电势。P 型材料电子不足,有正温差电势;当电子从P 型穿过结点至N 型时,其能量必然增加,而且增加的能量相当于结点所消耗的能量。这一点可用温差降低来证明。相反,当电子从N型流至P型材料时,结点的温度就会升高。
2.2 DS18B20工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如下图所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
2.3电磁继电器原理
电磁继电器一般由 电磁铁、衔铁、弹簧片、触点等组成的,其工作电路由低压控制电路和高压工作电路两部分构成。电磁继电器还可以实现远距离控制和自动化控制。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常闭触点”;处于接通状态的静触点称为“常开触点”。
3.软件原理
当整个系统接通电源开始工作时,程序先初始化lcd显示屏和温度传感器,之后进入循环体循环,不断检测外界的温度,不断接受用户设置的温度,并且比较用户设置的温度与当前温度之间的关系,如果当前温度高于用户设置的温度,程序则使电磁继电器吸合,使电源和制冷片工作,如果当前温度低于用户设置的温度,程序则使电磁继电器断开,使电源和制冷片停止工作,这样就可以使保温空间中的温度时刻恒定在用户设置的温度了。
程序流程图如下:
(1)温度检测子程序 /**********************************************************
复位子程序 *********************************************************/
uchar reset(void)
{
unsigned char Now;
DQ = 1; //DQ复位
delay(80); //稍做延时
DQ = 0; ///*拉低DQ总线开始复位*/
delay(800); ///*保持低电平 大于 480us
DQ = 1; /*释放总线*/
delay(100); /*在总线变为高电平后等待45US后将总线拉低60-240us*/
Now=DQ; //稍做延时后 获取应答信号 如果x=0则初始化成功 x=1则初始化失败
delay(50); /*延时以完成整个时序*/
return(Now);/*返回应答信号,有芯片应答返回0,无芯片返回1*/
}
/********************************************************
写一字节数据子程序
*******************************************************/
void writebyte(uchar dat)
{
uchar i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(50);
DQ = 1;
dat>>=1;
}
delay(50);
}
/******************************************************
读一字节数据子程序
*******************************************************/
uchar readbyte(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(50);
}
return(dat);
}
/*******************************************************