一种高精度智能毫秒计的设计
发布时间:2008/5/27 0:00:00 访问次数:838
毫秒计时的启、停控制逻辑
毫秒计在电力行业中通常用于测量继电器或某个控制装置从发出启动指令到实际执行完成的间隔时间,因其间隔时间为毫秒级,故计时器通常采用毫秒计。在实际使用中,计时器的启动与停止控制不是仅仅由一级开关量(某一个单独的开关)所控制,而常常是由二级开关量控制,即先由两个开关量决定计时器的启、停控制逻辑,再由这个启、停控制逻辑控制计时器的启动与停止。
设启动开关量为a,停止开关量为b,启、停控制逻辑为c(c=“1”为计时,c=“0”为停止计时),则有:
其中;开关量a可有两个逻辑状态(“1”或“0”),同样开关量b也可有两个逻辑状态(“1”或“0”),这样,计时器的启、停控制逻辑有下列真值表。 状态 启动(c=“1”) 停止(c=“0”) 1 a=“1”∧b=“0” b=“1”va=“0” 2 a=“1”∧b=“1” b=“0”va=“0” 3 a=“0”∧b=“0” b=“1”va=“1” 4 a=“0”∧b=“1” b=“0”va=“1” 为了精确地获得控制逻辑c,我们必须通过硬件逻辑电路,将a、b两个开关量转换成控制逻辑c。利用ttl集成电路工作电压为+5v时,其逻辑“1”的电平为+3v~+5v、逻辑“0”的电平为0v~+2v的特性,并设开关量“闭合”为“1”、“断开”为“0”。则对控制逻辑c 可作如下(图2)设计:
在“状态1”图中,r1的作用是当a、b都闭合时作限流之用,r2的作用是当a、b都断开时作下拉电阻之用。因此,r1、r2应满足5v×r2/(r1+r2)>3.0v;5v/r1<2ma。同样,在“状态2”图中,r1、r2应满足5v×r2/(r1+r2)>3.0v;5v/(r1+r2)<2ma。在“状态3”图中,r1应满足5v/r1<2ma。在“状态4”图中,r1、r2应满足5v×r2/(r1+r2)>3.0v;5v/r1<2ma。
受单片机控制的启、停控制逻辑实际电路
在mcs-51系列单片机中,其ctc(定时/计数器)的工作方式寄存器中有一gate位,该位为“1”时所对应ctc的启动与停止可由特定的外部引脚上的逻辑电平所控制,“1”为启动,“0”为停止。有了这个控制逻辑c,我们就可以将它引入单片机,由单片机作精确计时。四种计时状态也可由单片机来选择。为了简化设计并方便使用,笔者采用了四片4066(四双向模拟开关)对图2中的r1、r2进行了四种组合(见图3),以满足四种状态的逻辑要求。计时器为8031的t0,故计时器的启动与停止由p3.2引脚上的逻辑电平所控制。
图中4066(1)~4066(4)分别由p3.0、p3.1、p3.4、p3.5控制,p3.0、p3.1、p3.4、p3.5在任一时刻仅有其中的一个有效(“1”有效)。当4066的第5、6、12、13脚为高电平(“1”)时,则1~2、3~4、8~9、10~11引脚连通,为低电平(“0”)时则断开。这样,任一时刻就只能有一片4066有效。实际中,a、b开关的一端通常是要接地的,所以笔者使用了两片4n30对开关量a、b的接法作了一个转换,当开关闭合时c、e连通,反之,则c、e断开。当p3.0为“1”时,4066(1)被选中,其它无效。此时,a、b开关量与计时器启、停控制逻辑的关系就是图2中的状态1(此时r1=2kω、r2=3.3kω)。同样,当4066(2)、4066(3)、4066(4)分别被选中时,就分别对应图2中的状态2至状态4。图3中的74ls04是对启、停控制逻辑电平进行整形,使8031的p3.2引脚获得标准的逻辑电平。
软件设计
软件任务主要有三个:①键盘扫描,确定计时方式;②精确计时;③显示计时结果。为节省篇幅,在此仅介绍软件的关键之处和特色部分。
现对8031的资源作如下分配:t0用作计时器;8位初值自动装入;定时方式(计算8031的机器周期);门控(p3.2为高电平计数);初值9ch(-100 mhz);5位bcd码显示窗口;显示缓冲区为r7、r6、r5(r7为高位字节,但最高四位
毫秒计时的启、停控制逻辑
毫秒计在电力行业中通常用于测量继电器或某个控制装置从发出启动指令到实际执行完成的间隔时间,因其间隔时间为毫秒级,故计时器通常采用毫秒计。在实际使用中,计时器的启动与停止控制不是仅仅由一级开关量(某一个单独的开关)所控制,而常常是由二级开关量控制,即先由两个开关量决定计时器的启、停控制逻辑,再由这个启、停控制逻辑控制计时器的启动与停止。
设启动开关量为a,停止开关量为b,启、停控制逻辑为c(c=“1”为计时,c=“0”为停止计时),则有:
其中;开关量a可有两个逻辑状态(“1”或“0”),同样开关量b也可有两个逻辑状态(“1”或“0”),这样,计时器的启、停控制逻辑有下列真值表。 状态 启动(c=“1”) 停止(c=“0”) 1 a=“1”∧b=“0” b=“1”va=“0” 2 a=“1”∧b=“1” b=“0”va=“0” 3 a=“0”∧b=“0” b=“1”va=“1” 4 a=“0”∧b=“1” b=“0”va=“1” 为了精确地获得控制逻辑c,我们必须通过硬件逻辑电路,将a、b两个开关量转换成控制逻辑c。利用ttl集成电路工作电压为+5v时,其逻辑“1”的电平为+3v~+5v、逻辑“0”的电平为0v~+2v的特性,并设开关量“闭合”为“1”、“断开”为“0”。则对控制逻辑c 可作如下(图2)设计:
在“状态1”图中,r1的作用是当a、b都闭合时作限流之用,r2的作用是当a、b都断开时作下拉电阻之用。因此,r1、r2应满足5v×r2/(r1+r2)>3.0v;5v/r1<2ma。同样,在“状态2”图中,r1、r2应满足5v×r2/(r1+r2)>3.0v;5v/(r1+r2)<2ma。在“状态3”图中,r1应满足5v/r1<2ma。在“状态4”图中,r1、r2应满足5v×r2/(r1+r2)>3.0v;5v/r1<2ma。
受单片机控制的启、停控制逻辑实际电路
在mcs-51系列单片机中,其ctc(定时/计数器)的工作方式寄存器中有一gate位,该位为“1”时所对应ctc的启动与停止可由特定的外部引脚上的逻辑电平所控制,“1”为启动,“0”为停止。有了这个控制逻辑c,我们就可以将它引入单片机,由单片机作精确计时。四种计时状态也可由单片机来选择。为了简化设计并方便使用,笔者采用了四片4066(四双向模拟开关)对图2中的r1、r2进行了四种组合(见图3),以满足四种状态的逻辑要求。计时器为8031的t0,故计时器的启动与停止由p3.2引脚上的逻辑电平所控制。
图中4066(1)~4066(4)分别由p3.0、p3.1、p3.4、p3.5控制,p3.0、p3.1、p3.4、p3.5在任一时刻仅有其中的一个有效(“1”有效)。当4066的第5、6、12、13脚为高电平(“1”)时,则1~2、3~4、8~9、10~11引脚连通,为低电平(“0”)时则断开。这样,任一时刻就只能有一片4066有效。实际中,a、b开关的一端通常是要接地的,所以笔者使用了两片4n30对开关量a、b的接法作了一个转换,当开关闭合时c、e连通,反之,则c、e断开。当p3.0为“1”时,4066(1)被选中,其它无效。此时,a、b开关量与计时器启、停控制逻辑的关系就是图2中的状态1(此时r1=2kω、r2=3.3kω)。同样,当4066(2)、4066(3)、4066(4)分别被选中时,就分别对应图2中的状态2至状态4。图3中的74ls04是对启、停控制逻辑电平进行整形,使8031的p3.2引脚获得标准的逻辑电平。
软件设计
软件任务主要有三个:①键盘扫描,确定计时方式;②精确计时;③显示计时结果。为节省篇幅,在此仅介绍软件的关键之处和特色部分。
现对8031的资源作如下分配:t0用作计时器;8位初值自动装入;定时方式(计算8031的机器周期);门控(p3.2为高电平计数);初值9ch(-100 mhz);5位bcd码显示窗口;显示缓冲区为r7、r6、r5(r7为高位字节,但最高四位