图1 水位控制示意图 其中“水位”由水箱中的水位传感器提供。分三个档位:满水水位、条件补水水位和强制补水水位。满水水位用于实现水满后自动停水功能;条件补水水位可设置在一定水位如半箱水,当水箱水位低于此设置(高于强制补水水位)时实现有条件补水:当用水指示位有效(正在用水)时禁止补水,否则予以补水;强制补水水位可设置为水箱无水(或设置在较低水位),此时实现强制补水功能。为使用方便,控制器提供报警、指示功能:补水时补水指示灯亮,用户此时不能用水;水箱水位低于条件水位时发出提示音乐,此时用户若想继续间断用水,可通过键盘设置“补水禁止”,这样,即便不用水也不会补水,以便短时间内仍有热水可用,因此时有音乐提示,用户可在用水完毕及时撤销“补水禁止”位,为水箱补水;水箱水位到达强制补水水位而又被禁止补水时,发出报警信号,以便撤销补水禁止位及时补水,防止水箱长时间缺水。 3 水位控制器的VHDL代码 VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是IEEE工业标准硬件描述语言,是随着可编程逻辑器件(PLD)的发展而发展起来的。这种用语言描述硬件电路的方式,容易修改和保存,且具有很强的行为描述能力,所以在电路设计中得到了广泛应用。以下是描述水位控制的VHDL代码。 LIbRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY bushui IS PORT (ply,forbid : IN STD_LOGIC; --用水标示,用水禁止 level : IN INTEGER RANGE 0 TO 7; --水位 valve,alm,music : OUT STD_LOGIC; --补水电磁阀,报警,提示音乐 fil_l : bUFFER STD_LOGIC); --补水指示灯 END bushui; ARCHITECTURE behav OF bushui IS bEGIN PROCESS(ply,forbid,level) bEGIN CASE forbid ISWHEN '1' => valve 1 THEN music alm 1 THEN alm null; END CASE; END PROCESS; END behav;