编程|第三章 逻辑函数编程 (2)

编程|第三章 逻辑函数编程 (2)

文章图片

编程|第三章 逻辑函数编程 (2)

文章图片

编程|第三章 逻辑函数编程 (2)

Buffer函数

Buffer函数可以理解为可开关的门 , 控制数据流通 。 当门开时 , 数据信号不做任何改变从输入端流向对应
的输出端;当门关闭时 , 所有的输出被置低电平 , 并且与输入的信号无关 。
“门”的开关是由enable输入端所控制的 , 当enable为高电平时 , Buffer使能(即门开) , 当信号为低电
平时 , 函数不可用(即门关)

Buffer与之前讨论的函数不同 , 它的输入端数量不仅可以扩展(enable除外) , 而且每个输入有一个对应
的输出 , 这与NOT、OR和AND函数只有一个输出端不同 。 而且Buffer每一对的输入输出与其它输入输出相
互独立 。 也就是说 , 一个输入端的信号只与对应的输出端有关系(当函数被使能时) , 不会影响其它输出端 。 因
为Buffer有时相当于复合的AND函数 , 每个输入端与enable端AND后决定对应输出端的状态 。
Buffer函数的输出端信号有一个有趣且非常实用的特点 。 前面我们讲到了数字信号时提到每个数字端只可
有一个驱动源 , 但是这里有一些例外 。 我们知道象按钮输入这样的系统输入是一个例外 , Buffer函数的输出是
另一个例外 。 即一个信号不仅可以由一个Buffer驱动同时也可以被其它Buffer驱动或者由一个按钮(或其它系
统输入)驱动 。 这个特点有一个深层次的逻辑关系 , 这将在手册后面详细讲解 。

Buffer举例:多设备控制
    对于Buffer函数一个典型的应用就是可以用一组共用的按钮实现对多个设备的控制 。 当对按钮有限的手持
遥控设备编程时 , 这一用法非常有用 。 针对这样的设备 , 通常的界面是定义一组共用按钮和不同的设备源按钮 ,
通过选择源按钮决定共用按钮控制某台设备 。
    因为Buffer函数相当于复合的AND函数 , 我们经常需要产生“状态”信号 。 就是定义系统中某一事件状
态的信号 。 在本例中 , 我们需要为每个源设备设定信号来确定某台设备是否被选中 。 在接下来的章节里 , 我们
将会了解到如何产生这些信号 , 但现在我们简单的假设我们已有这样的信号 , 请看下面例程 。

【编程|第三章 逻辑函数编程 (2)】
注意 , 在这个例子中 , 任一时间只能有一个Buffer是有效的 。 如果两个Buffer同时有效 , 按PLAY按钮就会发出多个命令 , 这是我们在这个例子中不需要的 。 为保证不会发生这种情况 , 我们强制在同一时刻只有一个状态信号为高电平 。

Buffer函数举例:多事件触发
    对于像快思聪这样可定制程序的控制系统 , 其优势在于可以为用户提供自动功能以满足他们的真正需求 。
一个设计良好的控制系统会让用户通过尽可能少的操作完成他们想要实现的控制功能 。 这就需要在许多情况中
用一个按钮去触发多个事件 。

SIMPL语言可以很容易的实现一个按钮触发多个事件(或相关的任何事件) 。 比如:一个标准功能为“System On”的按钮需要设计为同时降下屏幕 , 打开投影机 , 并且选择某种预先设置的灯光模式 , 这可通过将按钮的输出信号连接到一个继电器去降下屏幕 , 向投影机的红外接收端口发送“Power On”指令 , 并且向RS-232端口发送一个命令串控制灯光系统 。 不需要任何的逻辑编程便可完成 。 下面是程序图: