スイッチ押下時の論理式|科目A-1 令和7年 秋期午前試験 問21
出典:令和7年秋期 午前 問21
分野:ハードウェア(中分類) / ハードウェア(小分類)
組込みシステムのプログラムで,放された状態では0になり,押された状態では1になるスイッチの値を読み込んでいる。このプログラムによって,スイッチの値は周期的に適切なタイミングで読み込まれ,チャタリング処理などの適切な処理が行われるものとし,aが今回の値で,bが前回の値とする。このスイッチが放された状態から押された状態に変化したことを検出するための論理式はどれか。ここで,"・"は論理積,"+"は論理和," "は論理否定を表す。
- ア:a・b
- イ:a・b
- ウ:a+b
- エ:a+b
TSUNAGARU-ADVICE
まず押さえたいこと
放された状態が0、押された状態が1なので、「放された状態から押された状態に変化した」とは、前回bが0で、今回aが1になった場合です。つまり、今回が1、前回が0という変化を検出する論理式を考えます。
迷ったときの判断軸
状態変化の検出では、今回の値だけでなく前回の値も必ず使います。押された瞬間を見つけたい場合はaが1で、bが0であることが条件です。逆に、今回0で前回1なら「押された状態から放された状態」への変化を表すため、向きを取り違えないようにしましょう。
科目Bにつなげるために
特にプロフェッショナルデジタルスキル(システム)試験合格を目指す方は、スイッチやセンサーの入力を単なる0・1ではなく、前回値との差分でイベントとして検出する考え方を押さえると有効です。組込みシステムでは、立上り検出、チャタリング対策、状態遷移の実装につながります。
この問題では、スイッチが「放された状態」から「押された状態」に変化した瞬間を検出します。
スイッチの値は、放された状態では0、押された状態では1です。また、aが今回の値、bが前回の値です。
「放された状態から押された状態に変化した」とは、前回の値bが0で、今回の値aが1になった状態を表します。
したがって、条件は次のようになります。
今回の値aが1、かつ、前回の値bが0
これを論理式で表すと、a・bです。
したがって、アが適切です。
❌他選択肢が誤りの理由イ:a・b
⇒今回の値aが0、前回の値bが1の場合を表します。これは、押された状態から放された状態に変化したことを検出する式です。
ウ:a+b
⇒今回の値aが1、または前回の値bが0の場合に1になります。押された瞬間だけでなく、前回から放されていた場合なども含むため、変化の瞬間だけを検出する式ではありません。
エ:a+b
⇒今回の値aが0、または前回の値bが1の場合に1になります。これは、今回押されていない場合や、前回押されていた場合も含むため、放された状態から押された状態への変化を検出する式ではありません。