不知道发哪个分类里,就发常逛的这个smart里了。
首先是搞好IO表,如图。对IO表有疑问的请往下看

考虑到可能在任何时候需要复位,因此复位功能放在首段。

ac应多用可省地址空间,这个很多朋友已经知道了。给ac清零怎样最高效呢?没错就是异或。这儿把清零放在常执行下,是因为下边也要用到为0的ac0。复位就不多说了,没用到的q点是可以当m用的。这儿的复制用值为0的ac0,而不使用常数0,是因为可以省点地址空间。
下一段是禁用模式,这个不解释。

再下一段是测试模式。

逻辑指令又来了,测试模式下,任意工位按下抢答,对应工位的成功和出错灯都常亮。主持人按下启动,则3个允许灯常亮。实现题目要求。

抢答模式的图这么大
。q0.0是已开始抢答标志,3秒内依次点亮允许抢答的3灯,符合题目要求。灯全亮前有人按下则为错误,点亮对应q2组的灯,灯全亮后有人按下则为抢答成功,点亮对应q1组的灯。
当然前提条件是考虑,不可能有两人绝对同时按下灯(输入滤波约十毫秒级时间差内)。当然如果确实有这样的特殊情况怎么办?可以补上下边这段程序

有没有人注意到14和15的差别?