某实验没备进行正常实验运行的操作过程是:首先,对实验样品放人机内的托盘上进行“预定时间的离心旋转”,然后进行“预定时间的加温”,最后再完成相关检测。该设备原采用两个传统“机械式定时器”,由于该类定时嚣的一致性较差,导致实验精度不高,特别是使用时必须在第一个定时器定时结束后,才能设置和启动第二个定时器,运行过程既不连贯,也不方便。笔者采用一片AT89C2051单片机与少量外围分立元件,构成了一个“双路输出的定时控制电路”,成功地对该实验设备进行了升级改造,取得了较理想的效果。该电路既可按照系统默认的双路定时时间参数自动运行,也可由使用者随时对两路输出的定时时间分别进行设置,通过按键输入新的定时间问参数。电路运行后,能自动顺序地完成该实验设备的“定时离心旋转”和“定时加温”操作过程。具有电路结构简单、制作容易、使用灵活、设置方便等优点,非常适台需要相似控制电路的用户单位使用。
一、电路的主要功能与特点
1.初始加电时,电路的两位数码显示器将自动显示系统默认的“定时时间l”(本例中为“离心旋转时间”),同时,继电器Jl自动吸合,使被控负载l(本例中为控制离心电机)处于加电状态,此时,两位数码显示器将以分钟为单位,按照倒计时工作方式进行显示,直至预定的“离心旋转时间”结束,才自动使Jl释放,使负载l断电。
2.“定时间l”结束后,数码显示器自动显示系统默认的“定时时间2”(本例中为“加温叫间”).同时,继电器J2自动吸合,使被控负载2(本例中为控制加热装置)处于加电状态,此时,两位数码显示器仍以分钟为单位,按照倒计时的r作方式进行显示,直至预定的“加热时间” 结束,才自动使J2释放,使负载2断电。
3.每次开机时,只要不进行新的时间设置操作,电路都将顺序地按系统默认的工作时间方式(本例为:离心旋转10分钟、加温35分钟)依次控制负载I和负载2的运行。
4.该电路允许使用者随时通过两个按键开关,自行输入设置新的“定时离心旋转“和“定时加温”时间参数,其时间范围均可在1分钟(最短时间)至99分钟(最长时间)之间任意设置(分辨率为1分钟).为用户根据实验设备的使用季节、环境温度、实验物品的种类及数量等具体情况和实验要求,适时进行设置,为选用合适的“定时离心旋转”和“定时加温”时间提供了方便。
5.在进行新的时间参数设置时,数码管上的小数点若自动停止闪动,则表明电路已退出工作状态,进入了设置状态,此时,继电器Jl、J2将释放,使负载停止加电工作。
6.在进行时间参数设置和正常运行的过程中,系统均采用两位数码管作“十位”和“个位”的倒计时显示.同时用数码管上小数点的同步闪亮作为秒显示,显示直观、准确。
二、硬件电路
电路见附下图。IC1为AT89C2051单片机,作本电路的控制核心.C3和Rl构成简单的上电自动复位电路。JT、Cl、C2与ICI的相关引脚构成单片机的时钟电路。显示器采用两只其阳数码管。IC1的15个I/0口全部使用。其中.Pl.0为秒显示输出口,通过一只限流电阻接至各数码管的小数点段上.正常工作时,将以小数点的闪亮作为秒信号显示;P1.1~P1.7作为七段数码管的段选信号输出口(低电平有效),分别通过一H限流电阻.接至各数码管的相应段上。数码管采用动态扫描的方式进行显示,其动态位选信号分别由ICI的P3.3和P3.4输出,高电平有效,其输出信号分别通过Q1、Q2驱动两只数码管交替(动态)显示。ICI的P3.0和P3.1为定时时间设置输入口.各接有一只常开型自复位式按键开关SI和S2.其中.S1为“设置功能键”.S2约“减1操作键”,通过与软件的配合,利用SI、S2即可完成对控制“定时离心旋转”和“定时加温”时间的输入与设置。P3.2为”定时加温”时间设置状态的指示控制口,通过一只电阻接至LED1。当电路在处于“定时离心旋转”时间设置和工作状态时.LEDI不会亮,只有电路处于“定时加温”时间设置和工作状态时.LED1才会点亮。P3.5为“定时离心旋转”输出控制口。当电路处于“定时离心旋转”的工作期间.P3.5输出高电平,Q3导通,驱动Jl吸台,控制外部离心电机运转;当“定时离心旋转”定时结束时,P3.5输出低电平,Q3截止,Jl释放,控制外部离心电机停转。这样,通过与程序事配合,即可完成“离心旋转”的定时控制功能。P3.7为“定时加温”的输出控制口。当电路处于“定时加温”工作期间.P3.7输出高电平.04导通,驱动J2吸合,控制外部加热装置加电工作:“定时加媪”结束时.P3.7输出低电平,Q4截止,J2释放,控制外部加热装置停止加热。这样,通过与程序配合,即可完成“加温”的定时控制功能。电源变压器T1、桥式整流器Qz、三端稳压器7805及C4~C6组成电源电路,为整个电路提供稳定的+5v直洗工作电源。
三、程序介绍主程序和定时中断子程序流程图如下图所示。
在初始化程序中,首先对片内RAM空间进行分配和定义。其中.42H和43H分别存放个位和十位数码管中待显示的数据;4AH、4BH、4CH、4DH为四个记忆单元,分别存放设置好的“定时离心旋转时间”和“定时加温时间”的十位和个位数据,当电路工作时,该数据被适时、分别读人42H和43H中。在定时计数中断子程序中,要完成秒信号的产生、60秒计数、定时时间到否的查询等功能。其中,秒信号的产生是利用对单片机内部定时器Tl产生的中断信号进行多次累加后形成的。该信号由PI.0输出,用以完成秒闪烁功能。同时,该信号还经过60次计数后产生分信号,最后以分钟为时间间隔,从设置好的定时时间数据内逐一递减并随时显示剩余的定时时间参数,形成倒计数的显示方式。
在电路处于“定时离心旋转”工作状态,且当42H和43H同时都减为0时,该状态下的定时过程完成,系统将控制电路自动进入“定时加温”工作状态。此时,系统将首先在42H和43H中读入保存于“记忆单元”中的”定时加温”状态下的时间参数,并进行显示,随后开始该状态下的定时控制,直至定时结束。
为了实现每次初始加电时“定时离心旋转”自动启动功能,在初始化程序中还要将P3.5置为高电平,使03导通.Jl吸合.离心电机开始进入定时运转状态。
在按键处理子程序中,要先置P3.5和P3.7为输出低电平,使Q3、Q4截止,JIJ2释放,保证在进入设置状态时外控负载为断电状态。同时,要完成对两种按键信号的输入识别、键接点的软件延时除颤、十位和个位定时数据的分别减一设置等功能。
在显示子程序中,采用查表程序,分别完成十位和个位数码管的动态显示,其段码表如附表所示。
四、自行设置时间参数的方法本电路的定时时间参数自行设置采用循环方式。需要设置时,先按一下Sl(设置键).进行“定时离心旋转”时间个位的设置,此时.LED1和数码管上的秒闪动处于熄灭状态,十位数码管的显示被消隐,按动S2(减l键),可使个位的数码管进行倒计数显示,选择到所需的数字即可停止按S2。再按一下sl.可进行“定时离心旋转”时间十位数的设置,此时,个位数码管的显示被消隐,按动S2,可选择十位上所需的数字。
第三次按动Sl时.LEDI被点亮,表示开始进行“定时加温”时间个位数的设置,按动S2,可选择个位上所需的数字。第四次接动S1,可进行“定时加温”时间十位数的设置,按动S2.可选择十位上所需的数字。第五次按动S1,电路恢复到正常工作状态,此时.LEDI熄灭,两位数码管自动,显示新设置好的“定时离心旋转”时间,数码管上的秒显示开始闪亮,整个电路开始按照新设置的时间参数运行工作。
在进行上述设置时,当调整到数码管显示为o时再按动S2键,对应的数码管将自动回到9.因此,每位数的设置都是可以循环调整和显示的。