| ホーム | 私の電子工作作品集 |
[ 初公開日:2020年7月24日 ] |
ページ "181. TMS1121 デジタルタイマー・シミュレータ" を公開してから、早くも1年が経とうとしていますが、お陰様で地道ながらもご好評を頂いております。 誠にありがとうございます。 しかしながら、先に公開をした "181. TMS1121 デジタルタイマー・シミュレータ" では、"088. TI社 TMS1121 デジタルタイマー II" からの借りものであるプリント基板2枚を再利用しての、 全体を構成させたものであったために、不要な回路も含まれていたりして、結果、ハードウエアとしての再現性には今一難があったのでは、と思われます。
したがって、本機 "シミュレータ II" ではハードウエア(プリント基板)の改良に重きを置いてはいますが、プログラムにも拡張機能としての新たな機能を追加してみました。 |
| 回路図 (TMS1121_SimulatorII.CE3) |
まずは、前作の "181. TMS1121 デジタルタイマー・シミュレータ" で示した 回路図 と比べて見てください。 "088. TI社 TMS1121 デジタルタイマー II" の名残りである、ロジックICによるアラーム回路を取り除いたことによって、
随分とすっきりしました。 "シミュレータ" ではこれらのアラーム回路は不要で、拡張機能の一部として PIC 内で作り出しています。 電源回路についても TMS1121 ICで必要であった 9V 電源は不要なため、直接 5V を得るようにしています。 ちなみに、電源トランスの 6.3V は昔の真空管時代のヒータ用と思われますが、手持ちにあったためにそれを使用することにしました。 本機では計時用のクロックパルスに、商用AC電源を降圧したものを使用するため、このような電源トランスが必要です。 また、4回路ある SW 出力については、リレー駆動用のトランジスタには前作と同様に 2SC509Y を使用していますが、このトランジスタはかなり古いもので、初代 "x09.TI社 TMS1121 デジタルタイマー" を作製時に購入したもので、 未だ残りがたくさんあるために使用をしました。 この型番に拘らず同程度の I C が流せるものを使用してください。 使用したリレーについては、1枚の同じプリント基板上に載せたかったために、本機では小型リレーを使用しています。 また、本回路ではリレーの ON/OFF 状態が一目で分かるように、モニタ用の LED を追加しておきました。 上回路図には、電流制限抵抗が 560Ωになっていますが、高輝度 LED を使用していることと、他の LED と違ってスタティック点灯であることもあって、実際に点灯させたときにかなり眩しかったため、現在では 2KΩに付け替えてあります。 (実測値: 560Ωのとき ≒ 5.64mA、1KΩのとき ≒ 3.21mA、2KΩのとき ≒ 1.63mA) <参考> 商用AC電源を制御する場合の例 本機で実際に商用AC電源を制御するような場合には、上図の小型リレーのままでは少々役不足で、次図の例のように、外部にもう一段パワーリレーの追加が必要になるでしょう。 そのために、 パワーリレーの駆動用の電源(下図において赤色ターミナル)が必要ですが、プリント基板パターン図 (部品面) には、その取り出し用のターミナルが考慮されていませんので、各自において適宜追加しておくようにしてください。 電源トランスについても、下図の例のように上図のものより、もう少しパワーアップが必要になるでしょう。 |
| 回路図 (SimulatorII_Power2.CE3) | ページトップ |
|
| ページトップ |
先に紹介をした "x09. TI社 TMS1121 デジタルタイマー" や "181. TMS1121 デジタルタイマー・シミュレータ" の操作方法とは、拡張機能の追加などを含めて一部異なっている部分があるため、 重複する部分も多いのですが、本機 "シミュレータ" のまとめとして再掲をします。 |
(注意) | この項の説明をご覧になるためには、ブラウザの横幅サイズを十分大きく取ってください。 サイズが不十分な場合には、思わぬところで改行されて正確な表示が行われません。 | |
↑↑ 上の(注意)の文章が、改行されずに1行で表示される程度以上の、横幅サイズが必要です。↑↑ |
< 目 次 > |
・ | 初めに本機の電源を投入するときに、50Hz 地域ではそのまま電源を ON にすれば良いが、60Hz 地域では 12H/24H スイッチ を ON にしながら電源を ON にする必要がある。 |
・ | すると、どちらの場合にも [AM] と [PM] の LEDが交互に点滅を始めるので、60Hz 地域ではそれ以降に 12H/24H スイッチを OFF にする。 |
・ | この [AM] と [PM] の点滅表示は、電源を投入する直前まで停電状態であったことを示している。 |
・ | そこで、 | キーを押すと 各種カウンタが初期設定され、[SUN] [PM] [ 12:00 ] と LED表示されて時計のカウントが始まる。 |
(注意) |
本操作を行うと、上述のように LED表示が初期設定されるが、当然、現在時刻とは異なっているので、時刻の変更設定が必要となる。 |
そこで、本機をオリジナルの動作をさせる場合には、次項のようにして曜日の設定も併せて現在時刻の設定を行うことになる。 |
しかし、拡張機能を有効にして動作をさせる場合には、カレンダー機能( 2020 年 07 月 26 日 (日曜日) として初期設定)の 年月日の設定モード による現在年月日の設定と、 現在時刻の設定も必要な場合には、拡張機能が有効時の時刻の設定 をする必要がある。 |
・ 時刻を変更設定するには、次の形式でキーを操作する。 (4) n は設定をする時刻を表し、xx 時 xx 分の形式で数字キーを押す。(先頭 "0" は省略可、以下同様) |
(1) | (2) | (3) | (4) n | (5) | ||||||||||||||
… | ||||||||||||||||||
・ (3) の | または | キーは、曜日 (1) の前、または 時分 (4) n の後でも良い。 |
・ なお、キーの操作を間違えた場合には、その時点で正しいキーを押し直して、LEDに自分が意図するように表示されれば、そのように修正がされている。 |
・ または、 | キーを押して LED表示を一旦消し、最初から押し直しをしても良い。 |
・ このとき、無効な時刻が指定されているようなときに、 (5) の | キーを押すと、 [ 99:99 ] と LEDがエラー表示をする。 |
(例-1) | "月曜日の午後 5時 00分" に設定するには、 | と、順にキーを押す。 | |||||||
すると、LED表示は [MON] [PM] [ 5:00 ] と変更される。 |
・ この機能は、"何番のスイッチを何曜日の何時何分にどのようにするか" を設定するもので、次の形式でキーを操作する。 |
(1) | (2) | (3) | (4) | (5) | (6) n | (7) | ||||||||||||||||||||
… | ||||||||||||||||||||||||||
・ (1) 〜 (7) のキー操作で LEDには押された内容が表示されているが、この後 | キーが押されると、LED表示は現在の時刻表示に戻る。 |
・ このとき、 | キーを押す前であれば下の(例-2)のように、同じスイッチに続けて機能を追加設定することができる。 |
・ (7) で | キーが押されていると、指定された曜日の時刻になると、指定されたスイッチが "ON" になる。 |
・ また、 | キーが押されていると、指定された曜日の時刻になると、指定されたスイッチが "OFF" になる。 |
・ また、 | キーが押されていると、指定された曜日の時刻になると、指定されたスイッチが "ON" になり、1時間が経過すると "OFF" になる。 |
・ なお、このとき( | キーのとき)下記の メモリ内容のスイッチ別表示 、または メモリ内容の曜日別表示 でメモリ内容を表示させると、 |
"ON" 動作の実行前には、指定したスイッチ、曜日、時刻と [SLP] LEDが表示されるが、"ON" 動作の実行後は、1時間後の "OFF" になる曜日、時刻と [OFF] LEDが表示される。 |
しかし、"OFF" 動作の実行後は、再び "ON" 動作の実行前の、指定した曜日、時刻と [SLP] LEDの表示に戻る。 |
・ メモリへの記憶単位は、これらの機能キー | / | / | のいずれかが押されるごとに1メモリが取られ、下の(例-2)では2メモリが取られる。 |
・ 本機で記憶できるメモリは最大 20 メモリまでで、それを超えるとエラーとなって [ 88:88 ] と LED表示がされ、メモリオーバーを知らせる。 |
(例-1) | "水曜日の午前 10時 00分に SW1 を ON" に設定するには、 | ( | ) と、順にキーを押す。 |
(例-2) | "日曜日の午後 8時 00分に SW2 を ON、30 分後に OFF" に設定するには、 | とキーを押し、 |
続けて | ( | ) とキーを押す。 |
・ この機能は、"何番のスイッチを現在の時刻から何時間何分後にどのようにするか" を設定するもので、次の形式でキーを操作する。 |
(1) | (2) | (3) n | (4) | |||||||||||||
… | ||||||||||||||||
・ 上記の 定時プログラム と同様に、 (1) 〜 (4) のキー操作で LEDには押された内容が表示されているが、この後 | キーが押されると、LED表示は現在の時刻表示に戻る。 |
・ また同様に、 | キーを押す前であれば下の(例-2)(例-3)のように、同じスイッチに続けて機能を追加設定することができる。 |
・ (4) で | / | / | キーのいずれかが押されると、それぞれの指定内容が一旦メモリに記憶される。 |
・ このとき、"現在の時刻から何時間何分後" と指定した時間が、"実際に動作するときの時刻(何時何分)" に変換されて、"ON"/"OFF"/"SLP" が記憶される。 |
・ やがて、記憶されている時刻になると、 | / | キーのいずれかが押された場合には、それぞれ "ON"/"OFF" 動作の実行後、自動的にメモリから消去される。 |
・ また、 | キーが押された場合には、下記の メモリ内容のスイッチ別表示 、または メモリ内容の曜日別表示 でメモリ内容を表示させると、 |
"ON" 動作の実行前には、指定された曜日、時刻と [SLP] LEDが表示されるが、"ON" 動作の実行後は、1時間後の "OFF" になる曜日、時刻と [OFF] LEDが表示される。 |
・ しかし、この記憶内容もやがて1時間が経過して "OFF" 動作の実行後は、自動的にメモリから消去される。 |
(例-1) | "現在時刻から 2時間 00分後に SW2 を ON" に設定するには、 | ( | ) と、順にキーを押す。 |
(例-2) | "現在時刻から 1時間後に SW3 を ON、1時間30分後に OFF" に設定するには、 | とキーを押し、 |
続けて | ( | ) とキーを押す。 |
(例-3) | "現在時刻から 5分後に SW4 を ON、10分後に OFF" に設定するには、 | ( | ) とキーを押す。 |
・ この機能は、"時間には関係なく、直ちに何番のスイッチをどのようにするか" を設定するもので、次の形式でキーを操作する。 |
(1) | (2) | (3) | ||||||
・ (3) で | / | / | キーのいずれかが押されると同時に、それぞれ "ON"/"OFF"/"ON" 動作が実行され、LED表示は現在の時刻表示に戻る。 |
・ このとき、 | / | キーのいずれかが押された場合には、メモリに記憶はされない。 |
・ しかし、 | キーが押された場合には、1時間後の "OFF" になる時刻が一旦メモリに記憶されるが、1時間が経過して "OFF" 動作の実行後は、自動的にメモリから消去される。 |
(例-1) | "直ちに SW2 を ON" に設定するには、 | と、順にキーを押す。 |
(例-2) | "直ちに SW1 を ON、1時間後に OFF" に設定するには、 | と、順にキーを押す。 |
・ 上記の 定時プログラム、間隔プログラム、直接制御 (SLP) で "設定されたメモリ内容を、スイッチ別に確認表示をする" もので、次の形式でキーを操作する。 |
ただし、間隔プログラムと直接制御 (SLP) では、自動的にメモリから消去される以前の場合のみ表示される。 |
(1) | (2) | (3) | ||||
・ 上記のキー操作で、"指定したスイッチが何曜日の何時何分にどのようにするか" を LED表示する。 |
・ この後 | とキー操作を繰り返すごとに、次に記憶されているメモリ内容が LED表示される。 |
・ 記憶している内容の LED表示がすべて終了すると、一旦ブランク表示になり、また最初の記憶の内容から LED表示が繰り返えされる。 |
・ すべてのメモリ内容を確認した後、 | キーが押されると、LED表示は現在の時刻表示に戻る。 |
(例-1) | "SW1 に設定されているメモリ内容を確認する" には、 | … | … | ( | ) と、順にキーを押す。 |
・ 上記の 定時プログラム、間隔プログラム、直接制御 (SLP) で "設定されたメモリ内容を、曜日別に確認表示をする" もので、次の形式でキーを操作する。 |
ただし、間隔プログラムと直接制御 (SLP) では、自動的にメモリから消去される以前の場合のみ表示される。 |
(1) | (2) | (3) | ||||
・ 上記のキー操作で、"指定した曜日にどのスイッチが何時何分にどのようにするか" を LED表示する。 |
・ この後 | とキー操作を繰り返すごとに、次に記憶されているメモリ内容が LED表示される。 |
・ 記憶している内容の LED表示がすべて終了すると、一旦ブランク表示になり、また最初の記憶の内容から LED表示が繰り返えされる。 |
・ すべてのメモリ内容を確認した後、 | キーが押されると、LED表示は現在の時刻表示に戻る。 |
(例-1) | "日曜日に設定されているメモリ内容を確認する" には、 | … | … | ( | ) と、順にキーを押す。 |
・ 上記の 定時プログラム、間隔プログラム、直接制御 (SLP) で "設定されたメモリ内容を、スイッチ別に消去をする" もので、次の形式でキーを操作する。 |
ただし、間隔プログラムと直接制御 (SLP) では、自動的にメモリから消去される以前の場合のみ対象となる。 |
(1) | (2) | (3) | ||||
(例-1) | "SW1 に設定されているメモリ内容を消去する" には、 | と、順にキーを押す。 |
・ 上記の 定時プログラム、間隔プログラム、直接制御 (SLP) で "設定されたメモリ内容を、曜日別に消去をする" もので、次の形式でキーを操作する。 |
ただし、間隔プログラムと直接制御 (SLP) では、自動的にメモリから消去される以前の場合のみ対象となる。 |
(1) | (2) | (3) | ||||
(例-1) | "日曜日に設定されているメモリ内容を消去する" には、 | と、順にキーを押す。 |
・ 上記の 定時プログラム、間隔プログラム、直接制御 (SLP) で "設定されたメモリ内容を、すべて消去をする" もので、次の形式でキーを操作する。 |
ただし、間隔プログラムと直接制御 (SLP) では、自動的にメモリから消去される以前の場合のみ対象となる。 |
(1) | ||
・ 1個のキー操作だけですべてのメモリ内容が消去されてしまうので、十分な注意を要する。 |
・ また、このとき 1 〜 4 のいずれか(複数を含む)のスイッチが "ON" になっていた場合には、それらが "OFF" にされてしまうので、併せて注意を要する。 |
(注意) |
ここで述べている "メモリ内容の全消去" は、本機をオリジナルの動作をさせた場合(EXT ジャンパースイッチ を OFF に設定)の方法で、 | |
拡張機能を有効にして動作をさせた場合(EXT ジャンパースイッチ を ON に設定)には、メモリ内容の全消去(操作方法と機能の変更) を参照のこと。 |
・ キーの操作を間違えた場合には、その時点で正しいキーを押し直して、LEDに自分が意図するように表示されれば、そのように修正がされている。 |
・ または、 | / | / | / | / | キーのいずれかを押す前であれば、 | キーを押すことにより LED表示が消えて、初めからやり直すことができる。 |
・ 数字キーで無効な時刻が指定されているようなときに、 | / | / | / | などのキーを押した場合には、 [ 99:99 ] と LED表示がされる。 |
・ また、本機で記憶できるメモリは最大 20 メモリまでで、それを超えるとエラーとなって [ 88:88 ] と LED表示がされ、メモリオーバーを知らせる。 |
本機 "シミュレータ" の拡張機能 |
EXT ジャンパースイッチ を ON に設定をすると拡張機能が有効となり、オリジナルの TMS1121 にはない本機 "シミュレータ" 独自の幾つかの機能を追加させることができる。 |
・ EXT ジャンパースイッチを ON に設定をして、拡張機能を有効にすると、コロン [COL] LED がブリンク表示をするようになる。 |
1秒間を "点"、次の 1秒間を "滅" の、2秒周期でブリンク表示を繰り返す。 (Ver. 3.0 で1秒→2秒周期に変更) |
・ オリジナルでは 12 時間表示専用の時計機能だったのを、スイッチ操作によって、いつでも簡単に 12 時間表示/24 時間表示を切り替えることができるように拡張。 |
・ EXT ジャンパースイッチが ON のときに、12H/24H タクトスイッチ の操作によって、12 時間表示にするか 24 時間表示にするかを、押す度に切り替える。 |
・ 時計機能に対する 時刻の変更設定 や タイマーの設定(定時プログラム) では、当面の間、入力情報の指定には、AM/PM 別 を含めた曜日、時分を 12 時間表示形式で行う。 |
ただし、将来的には、24 時間表示のときには指定方法を変更するかもしれない。 |
・ 上記の 定時プログラム、間隔プログラム、直接制御 (SLP) で "設定されたメモリ内容を、すべて消去をする" もので、次の形式でキーを操作する。 |
ただし、間隔プログラムと直接制御 (SLP) では、自動的にメモリから消去される以前の場合のみ対象となる。 |
(1) | (2) | (3) | (4) | (5) | |||||
・ オリジナルのキー操作では1回の押下だけであったのを、誤操作を防ぐために、5回の連続操作(5回連続で押下)で全消去を行うように改めた。 |
なお、5回未満の場合には無視をする。 |
・ このとき、オリジナルではメモリ内容の消去を行っても、見かけ上、何の反応も現れなかったのを、見かけ上の反応を現すように機能追加を行った。 |
MCLR キーを操作した直後に、約 270 mS 間は7セグ LED の4桁すべてに数字 "0" を点灯、次の 270 mS 間は4桁すべてを滅灯、の点滅表示を5回繰り返す。 |
この7セグ LED の点滅表示は、メモリ内容の全消去のときだけでなく、スイッチ別消去、および 曜日別消去 のときにも、同様に表示をする。 |
・ また、オリジナルでは全消去を行ったときに、現在、ON 動作中のスイッチもすべて OFF にしてしまったのを、メモリ内容の全消去とは無関係で OFF にはしないように改めた。 |
なお、すべてを OFF にしたい場合には次のキー操作を行う。 |
・ 次のように ダイレクト・コントロール (直接制御) を拡張した形式でキーを操作する。 |
(1) | (2) | (3) | |||
・ まず、スイッチとして有り得ない番号 | を、次に | と押すと、通常のスイッチ指定とは異なっていることを示すために、一旦 SW1 〜 SW4 のすべての LED を点灯させる。 |
続いて | と押すと、現在、ON 動作中のスイッチのすべてが OFF 状態になり、 LED表示は現在の時刻表示に戻る。 |
・ 上記の 定時プログラム、間隔プログラム、直接制御 (SLP) で "設定されたメモリ内容を、無条件ですべてを確認表示する" もので、次の形式でキーを操作する。 |
ただし、間隔プログラムと直接制御 (SLP) では、自動的にメモリから消去される以前の場合のみ表示される。 |
(1) | (2) | (3) | |||
・ まず、スイッチとして有り得ない番号 | を、次に | と押すと、通常のスイッチ指定とは異なっていることを示すために、一旦 SW1 〜 SW4 のすべての LED を点灯させる。 |
続いてもう一度 | と押すと、メモリに記憶されている1つ目の内容が "何番のスイッチが何曜日の何時何分にどのようにするか" を LED表示する。 |
・ 以降は、 | とキー操作を繰り返すごとに、スイッチ別/曜日別の区別なく、記憶されている順番でメモリ内容が LED表示される。 |
・ 記憶している内容の LED表示がすべて終了すると、一旦ブランク表示になり、また最初の記憶の内容から LED表示が繰り返えされる。 |
・ すべてのメモリ内容を確認した後、 | キーが押されると、LED表示は現在の時刻表示に戻る。 |
(例-1) | "記憶されているすべてのメモリ内容を確認する" には、 | … | … | ( | ) と、順にキーを押す。 |
・ オリジナルでは CPU 自体にアラーム音の発生機能はないが、本機 "シミュレータ" では次に示すように、7種類を用意している。 |
"ブッブッ" | .......... | カレンダー(年月日)の設定モードで、入力エラーのとき |
"ピポッ" | .......... | カレンダー(年月日)の設定モードで、更新されたとき(年、月、日 と 曜日)、 拡張機能が有効時に時刻の設定をして更新されたとき |
"ピッ" | .......... | カレンダー(年月日)の設定モードで、年 の入力がOKのとき |
"ピポッピポッ" | .......... | SW1 〜 SW4 (リレー 1 〜 4 ) のどれかが ON したとき |
"ブッブー" | .......... | SW1 〜 SW4 (リレー 1 〜 4 ) のどれかが OFF したとき |
"プッ" | .......... | 毎時のときの時報予報音(毎時 59 分 57、58、59 秒の各秒から 100 ミリ秒間) |
"ポッ〜〜ン" | .......... | 毎時のときの時報正報音(毎時 00 分 00 秒から1秒間) |
・ これらのアラーム音の鳴る時期が、2つ以上重なったときには上位に位置するものほど優先度が高く、下位のものは無視をされる。 |
・ なお、拡張機能が ON に設定のときには必ずこれらのアラーム音が鳴るので、不要な場合にはブザーのコネクタを抜いておく対処が必要である。 |
本機のカレンダー機能の年指定は、便宜上、4桁(0001年〜9999年)で、歴史上は存在しないがグレゴリオ暦元年1月1日から、最終未来 9999年12月31日 までに対応している。 |
年月日の自動表示モード |
・ カレンダー機能の一つとして、毎時 00 分 10 秒からの 18 秒間をカレンダーの自動表示モードに割り当てて、年月日を自動的に表示する。 |
・ 表示方法は、初めの3秒間を4桁で "年" を表示(コロンは滅灯)し、次の3秒間を2桁ずつで "月"、"日" を表示しその両者の区切りとして、間のコロン(下側だけ)も点灯させる。 |
以上の "年" の表示と "月"、"日" の表示を3回繰り返す。 すなわち、3 x 2 x 3 = 18 秒間を割り当てている。 |
・ また、その 18 秒間は、[PM] LED が ブリンク (初めの 0.5 秒間を "点"、次の 0.5 秒間を "滅" の1秒周期)表示をして、カレンダーの自動表示モード中であることを示す。 |
年月日の任意表示モード |
・ 上述の年月日の自動表示には関係なく、任意のときに次の形式でキーを操作することによって、いつでも年月日を表示させることができる。 |
(1) | (2) | (3) | (4) | ||||||||||||||
… | … | … | … | … | … | … |
・ まず、曜日として有り得ない番号 | を、次に | (2) と押すと、通常の曜日指定ではなく年月日の表示指定であることを示すために、[PM] LED を ブリンク 表示させる。 |
この [PM] LED のブリンク表示は、上述の自動表示のときと同様の1秒周期で "点"、"滅" を行い、任意表示モードを終了させるまで繰り返す。 |
・ 続いて | (3) を押すと、まず初めに、4桁で現在の "年" を表示する。 |
・ そして、もう一度 | (4) を押すと、次には、上述の自動表示のときと同様の形式で "月"、"日" を表示する。 |
・ これ以降は、(3) と (4) のキー操作を繰り返すごとに、 すなわち | キーを押すごとに、"年" の表示と "月"、"日" の表示を繰り返す。 |
・ 年月日の任意表示モードを終了させるには、 | キーを押すことで、LED表示は現在の時刻表示に戻る。 |
年月日の設定モード |
・ 本機の電源を入れ直したようなときには、カレンダーはプログラミングをしたときの設定値( 2020 年 07 月 26 日 (日曜日) )に、初期設定がされてしまう。 |
・ そこで、拡張機能が有効時の時刻の設定 と共に、年月日の設定変更も必要であり、次の形式でキーを操作する。 |
(1) | (2) | (3) | (4) | (5) | (6) | (7) n | (8) | (9) | (10) n | (11) | (12) | ||||||||||||||||||||||||
… | … | … | … | … | … | … | |||||||||||||||||||||||||||||
・ まず初めに、 | を、次に | (5) と押すと、年月日の設定指定であることを示すために、[AM] LED を ブリンク 表示させる。 |
この [AM] LED のブリンク表示は、上述の表示指定([PM] LED)のときと同様の1秒周期で "点"、"滅" を行い、設定モードを終了させるまで繰り返す。 |
・ 続いて | (6) を押すと、まず初めに、4桁で現在の "年" を表示するとともに、[COL] LED (上側) を ブリンク 表示させて設定値 "年" の入力を促す。 |
・ そこで、この [COL] LED (上側) がブリンク表示のときに、(7) n のところで設定をしたい新しい "年" を4桁で入力し、続いて | (8) を押す。 |
このとき入力された "年" のデータチェックが行われるが、0000 年以外はすべてOKとなる。 (0001 〜 9999 が指定可能) |
OKのときには [COL] LED (上側) のブリンク表示が 滅灯 に変わって、"ピッ" ブザー音を鳴らし "年" が仮変更されたことを知らせる。 |
エラーのときには "ブッブッ" ブザー音が鳴って、次の工程には進むことができないので、正しい "年" を再入力( (7) n と (8) )をする。 |
・ OKの場合には、もう一度 | (9) を押すと、次には現在の "月"、"日" が表示されるとともに、再び [COL] LED (上側) を ブリンク 表示させて設定値 "月"、"日" の入力を促す。 |
このとき "月"、"日" の区切りとして、[COL] LED (下側) を 点灯 して、"年" のときの表示(下側は滅灯)とは異なるように区別をしている。 |
・ そこで次には、(10) n のところで設定をしたい新しい "月"、"日" を4桁で入力をし、続いて | (11) を押す。 |
このときも入力されたデータチェックが行われるが、"月"、"日" だけでなく、先に入力されている "年"(閏年かどうか)も考慮して、3者の妥当性チェックが行われる。 |
OKのときには [COL] LED (上側) のブリンク表示が 滅灯 に変わって、"ピポッ" ブザー音を鳴らし "年"、"月"、"日" と "曜日" が更新されたことを知らせる。 |
エラーのときには "ブッブッ" ブザー音が鳴って、次の工程には進むことができないので、正しい "月"、"日" を再入力( (10) n と (11) )をする。 |
・ ここで、"年"、"月"、"日" の入力がすべてOKの場合には、 | (12) を押すことで設定モードが終了して、LED表示は現在の時刻表示に戻る。 |
・ このとき、 | キーではなく | キーを押した場合には、再度、(7) n に戻って "年" の設定からやり直すことが可能となる。 |
・ また、上述したように "年" を入力した後や、"月"、"日" を入力した後のデータチェックでエラーとなった場合に、正しい "年" や "月"、"日" を再入力しないと、 |
次の工程に進めないような場合に、 | キーを押すことで、設定途中であっても設定モードを打ち切って終了させ、LED表示が現在の時刻表示に戻る。 |
・ 時刻を変更設定するには、次の形式でキーを操作する。 (2) n は設定をする時刻を表し、xx 時 xx 分の形式で数字キーを押す。(先頭 "0" は省略可) |
(1) | (2) n | (3) | ||||||||||
… | ||||||||||||
・ (1) の | または | キーは、時分 (2) n の後でも良い。 |
・ なお、キーの操作を間違えた場合には、その時点で正しいキーを押し直して、LEDに自分が意図するように表示されれば、そのように修正がされている。 |
・ または、 | キーを押して LED表示を一旦消し、最初から押し直しをしても良い。 |
・ このとき、無効な時刻が指定されているようなときに、 (3) の | キーを押すと、 [ 99:99 ] と LEDがエラー表示をする。 |
・ なお、本操作で時刻の設定が正常に行われた場合には、"ピポッ" ブザー音を鳴らしてそれを知らせる。 |
・ したがって、 | キーを押しても "ピポッ" ブザー音が鳴らず、LED のエラー表示もなかった場合には、その他の理由のエラーで無視をされたときである。 |
(注意) | |
拡張機能が無効時(オリジナル)の 時刻の設定 では、曜日の指定をしないとエラーになるが、逆に、拡張機能が有効時には曜日の指定をするとエラーとなる。 | |
オリジナルでは、年月日の概念がまったく存在しないために、7日ごとの曜日の繰り返しだけの日の管理で、曜日指定を自由に変更をしても矛盾は起こらない。 | |
これに対して、拡張機能が有効時には年月日の管理をしているために、曜日は年月日によって一意的に決まるものであって、曜日だけを勝手に変更をすることは許されない。 | |
したがって、もしも曜日の変更を望む場合には、前項のカレンダー機能の 年月日の設定モード によって、年月日を変更する方法しかない。 | |
本機では、矛盾が起こるのを避けるために、オリジナル時用と拡張機能時用では、お互いに独立した曜日カウンタで管理をしているため、両者が干渉し合うことはない。 | |
すなわち、オリジナルのときに行った曜日の変更は、拡張機能に切り替えても反映されることはなく、その逆も同様で反映はされない。 | |
ただし、時分秒の各カウンタは矛盾が起こることはないので、共通のカウンタで管理をしている。 また、年月日の各カウンタについては言うまでもなく拡張機能専用である。 |
| ページトップ |
米TI(テキサス・インスツルメント)社の 4ビットマイコン時計用 LSI "TMS1121NLL" を、PICを使用して私が如何にしてシミュレートしたか、その考え方、方法については、前作 "181. TMS1121 デジタルタイマー・シミュレータ" の
プログラム の項で詳細に述べていますので、是非とも、そちらをご覧になってみてください。 前作からの変更点 前作 "181. TMS1121 デジタルタイマー・シミュレータ" では、EXT ジャンパースイッチが OFF のときに、NOR/BLK ジャンパースイッチを BLK にした場合には、[COL] LED が消灯してしまうという不都合が起こるのを、プログラムの修正で BLK のときにも点灯をするようにしました。 (NOR にした場合にはハードウエアで点灯) また、EXT ジャンパースイッチが ON で拡張機能が有効なときの、通常のコロン [COL] LED のブリンク表示の周期が、前作では 0.5 秒間を "点"、次の 0.5 秒間を "滅" の1秒周期であったものを、本機 "シミュレータ II" では、1秒間を "点"、次の 1秒間を "滅" の、 2秒周期に改めました。 前者の1秒周期では、見ている者(私)がかなり煩わしく感じられるため、変更をしました。 その結果、ゆっくりとブリンクをするようになって、余り煩わしさは感じなくなりました。 したがって本機 "シミュレータ II" では、EXT ジャンパースイッチが ON のときにも OFF のときにも、NOR/BLK ジャンパースイッチを NOR にする必要がなくなって、NOR/BLK ジャンパースイッチそのものの存在が不要となったために、回路から無くすことにしました。 ( 参考: 変更前の回路図、パターン図 ) その他、次の新拡張機能を追加したことによって、コロン [COL] LED を他目的のためにも制御をしていますが、前作の "シミュレータ" を使用して以上のような各種の制御をコロン [COL] LED に反映させるためには、すべてのときに NOR/BLK ジャンパースイッチを BLK にしておく必要があります。 プリント基板パターン図 で示した写真には、ハードウエアが先行でプリント基板が完成(写真撮影)後にプログラムと回路図の変更を行ったため、NOR/BLK ジャンパースイッチが存在していますが、実際に作製するときには 回路図 やパターン図に示すように、NOR/BLK ジャンパースイッチは不要なので無くすようにしてください。 新拡張機能としてカレンダー機能の追加 過日、前作 "181. TMS1121 デジタルタイマー・シミュレータ" のページをご覧になった方から、「カレンダー機能があるといいんじゃないか」というご意見をいただきました。 そこで、ハードウエアを一新したのを機に、本機 "シミュレータ II" で新拡張機能として実現をさせることにしました。 もちろん、前作においても PIC内のプログラムを Ver. 1.30 に入れ替えるだけで、同機能を追加することができます。 (今後も、プログラムの更新をしたような場合には、この "シミュレータ II" のページで公開をします。 前作のページでは行いません。) このカレンダー機能の追加でどのようなことができるようになったのか、については上述の 操作方法 内の カレンダー機能、および 拡張機能が有効時の時刻の設定 の項で詳細に述べているので、 そちらを参照してください。 拡張機能が有効時の時刻の設定は、従来の 時刻の設定 方法では曜日の管理に矛盾を生じてしまうために、新たに設けた(変更をした機能)方法で行い、拡張機能が無効時のオリジナル機能時には、従来の時刻の設定方法で行います。 両者の方法の違いは、設定のときに曜日も含めるかどうかの違いだけです。 |
現在の最新バージョン: Ver. 1.30 ( 2020/7/24 更新 ) Ver. 1.31 ( 2021/5/19 更新 )
今回の更新では機能の追加等の変更はありません。 更新前のプログラムは間違いではないのですが、私の思い違いからバンクの扱いが(他の方が見て)、まわりくどくて分かり辛いものになっていたのを改めました。 以前からずっと気にはなっていたのですが、 今までなかなか修正をすることができないでいたものです。 |
ソースファイル (TMS1121_SimulatorII.asm) | |
HEX ファイル (TMS1121_SimulatorII.hex) |
| ページトップ |
使用したプリント基板は、"サンハヤト" の "ICB-97(138 x 95 mm)" ガラスエポキシ片面ユニバーサル基板です。 |
| プリント基板部品配置図 (TMS1121_SimulatorIIPC0.CE3) | ページトップ |
(ヒント) 本機のように、たくさんのLEDを一列にプリント基板に取り付けるような場合に、それらを直に取り付けるのではなく、間にスペーサーを挟んで取り付けると、すべてのLEDの高さを一定に揃えることができます。
ただ、専用のスペーサーは高価なので、私はピンヘッダのピンを抜いた残りの黒色樹脂の部分を、LED数に応じて適度な長さにカットしたものを利用しています。 プログラム の項で述べたように、前作の "シミュレータ" に比べて NOR/BLK ジャンパースイッチ(と 470 Ωの抵抗)が不要になりました。 先行でプリント基板の完成後に写真撮影を行い、 その後プログラムの変更とパターン図の修正を行ったために、右下に示す写真には NOR/BLK ジャンパースイッチと抵抗が存在していますが、左下に示すパターン図が正解です。 ただし、右下の写真のように NOR/BLK ジャンパースイッチが存在していても、常に BLK に設定しておけば何の問題もありませんが。( 参考: 変更前の回路図、パターン図 ) |
| プリント基板パターン図 (部品面) (TMS1121_SimulatorIIPC.CE3) | ページトップ |
| プリント基板パターン図 (ハンダ面) (TMS1121_SimulatorIIPC1.CE3) | ページトップ |
最近(といっても、15 〜 6 年以上も前から)私が作製するプリント基板は、エッチングなどを施した専用のプリント基板を作製するのではなく、本機に限らずそれらのすべてがユニバーサル基板を使用して、ワイヤー配線で回路を構成させています。
そして、私が使用しているワイヤーは、ホームページの番外編で紹介をしている
"8080A CPU コンピュータシステム" を作製していた 1980 年頃の大昔に、"秋月電子" である量をまとめて購入をしたもので、ワイヤーサイズが AWG#30 (0.26mm) の単線でラッピング用のものです。 私はこのワイヤーをかなり気に入っていて、この 15 〜 6 年以上もの間、プリント基板の配線用に使い続けてきました。 しかし、購入をしたのは大昔のことで、現在の "秋月電子" では取り扱ってはいないようです。 また、メーカーも分かりませんが、 でも、潤工社のジュンフロン線とは違うようです。 このラッピング用ワイヤーを使用して、プリント基板上の各パーツ間の配線をするのですが、もちろん、ラッピング配線ではなく、通常ははんだ付けをして接続をしています。 このワイヤーを使用することの最大のメリットは、ワイヤーサイズが AWG#30 (0.26mm) とかなり細いこともあって、 上の プリント基板(部品面) の写真 のように、配線量が比較的多いにもかかわらず、随分すっきりとまとめることができることです。 本機のプリント基板の場合には、7セグメントLED の下やたくさんのタクトスイッチの下位置に、ワイヤーを通して半ば隠している?ことも一因ですが、これもワイヤーが細いからこそできる業だと思います。 このラッピング用ワイヤーを使用するようになった以前には、 細いビニール線を使用したこともありましたが、ラッピング用ワイヤーほど細くないため、ここまですっきりとはまとめることはできません。 (ビニール線の例.先のコンピュータシステムの 8 Kbyte Ram 基板 ←対→ ラッピング用ワイヤーの例.16 Kbyte Rom 基板 等) また、はんだ付けの手間(効率)の面からも、通常のビニール線は単線ではなく、ごく細い数本の複線で構成されているために、被覆を剥いた後に複線を指先で撚って、かつ、その線がバラけないように予備はんだの処理をしておく必要があります。 付け線の数が多くなればこれらの予備はんだの処理も多くなって、それだけでもめげてしまいそうになります。 これに対して、単線のラッピング用ワイヤーでは、単純に被覆を剥く作業だけで良く、これも大きなメリットに挙げられるでしょう。 話は少々それますが、本機のプリント基板のように、最近の製作物に使用のワイヤーの色が奇抜?になったのにはわけがあるのです。 以前には、白色や黄色のあまり目立たないような色のワイヤーを使用していたのですが、それらの色のワイヤーがだんだんと底をつき始めたため、 仕方なく本機では赤色を使用しました。 |
― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ― ―
さて、プリント基板上のワイヤー配線をするにあたっての、私の基本的な考え方、方法(テクニック)を次から述べて行きます。 まず初めに、ワイヤーの引き回しはやむを得ないような例外的な場合を除いて、すべてプリント基板の部品面側で行います。 裏側のハンダ面は、文字通りはんだ付けをするだけの面に徹するようにします。 やむを得ないような例外的な場合とは、例えば下の右写真のようにワイヤーを途中からハンダ面に取り出さないと、はんだ付けをすることができない、というような場合です。 |
次の写真は、手巻きのワイヤーラッピングをするための工具で、ワイヤーサイズ AWG#30 (0.26mm) 専用のものです。 左側部分でラッピングをし、右側部分はアンラップをするときに用い、また、真ん中の部分がワイヤーの被覆を剥くためのストリッパーです。
40 年も以前の大昔に、ラッピング用ワイヤーとともに "秋月電子" で購入したもので、今では被覆を剥くためだけに私が愛用をしている工具です。 真ん中の小さな穴の下位置からワイヤーを上方向に通し、次に楔(くさび)状のところで剥き代を残して右側に移動しワイヤーを固定させます。 後はワイヤーを下方向に引っ張ると、いとも簡単に被覆を剥くことができます。 実際には、左手でワイヤーをしっかり固定しておいて、 右手に持った工具を上方向に引っ張り上げるのですが。 |
次に示す写真は、ワイヤーを目的のピン等にはんだ付けをするときに、その直前で行うワイヤーの取り付け方に対する、基本的な注意すべき事項で、左側のプリント基板の部品面では、(2) のようにワイヤーの芯線が部品面上で露出することがないようにしないと、
ワイヤー数が混み入ったときに、ワイヤー同士でショートする原因にもなりかねません。 また、右側のハンダ面では、(3) のようにワイヤーの被覆がハンダ面より上に露出をしていると、その後のはんだ付けのときに、露出をしている被覆がはんだをはじいて、うまくランドに乗らなくなります。 またこの例では、芯線が長過ぎて下のランドとショートをしてしまうため、 (1) のようにはんだ付け対象のランド内に収まるように、余長をニッパーでカットをします。 この後ははんだ付けをするのですから、芯線を巻きつけなくても写真のようにU字でピンを折り返すだけで十分で、ピンが通っているランドとワイヤーを通したランドの2つがはんだ付けの対象です。 一般的なプリント基板の厚さは 1.6 mm ですが、ワイヤーを穴に通したときに剥いた残りの被覆と芯線との境界が、この基板の厚さ 1.6 mm の中に納まるようにするだけですから、それほど難しいことではないと思います。 これが基本中の基本で常に守り通すことです。 部品面の (2) やハンダ面の (2)、(3) のようになったときには、面倒と思わずにやり直すことが重要です。 |
|
|
本機の プリント基板の写真 に示した中で、ワイヤー配線をするにあたって最も難関と思われるのは、たくさんのタクトスイッチの下位置にワイヤーを通して配線をする辺りでしょうか。 かなりの量のワイヤーが密集するので、
不慣れな方には少々手こずるかもしれません。 7セグLEDの下位置にも同様にワイヤーを通して配線をしますが、こちらはそれほどワイヤーが密集しないので、比較的楽に配線作業をすることができると思います。 言い遅れましたが、これらの配線は7セグLEDやタクトスイッチを、プリント基板上に取り付ける前に行っておかなければなりません。 7セグLEDの下位置の配線では先にワイヤー配線が必要なことが、一目見れば分かると思います。 タクトスイッチの場合も同様で先にワイヤー配線を行わないと、タクトスイッチの下の空間が狭いため、後からでは数本のワイヤーであれば通すことも可能ですが、本機のようにたくさんのワイヤーを密集させることはできません。 また、これらの先に行うワイヤー配線ですが、タクトスイッチ等をプリント基板上に取り付ける前に行うわけですから、その段階ではまだピンにはんだ付けをすることができないため、ワイヤーを通した穴のランドとワイヤーとを 一時的に仮はんだをしておきます。 そして、この仮はんだをするときの注意として、はんだの量は極力少なく(微量)にすることで、ワイヤーが所定の穴位置から移動してしまうのを防止することを目的とします。 下に示す図は、上に示した プリント基板パターン図 (部品面) から、タクトスイッチのワイヤー配線に関する部分を切り取ったものに、KA、KF、KG の3種を例として、ワイヤー配線(緑色の線)を付け加えた図です。 (クリックすると拡大します) |
上述のワイヤーの取り付け方の説明で示した写真のプリント基板は、"秋月電子" のものでプリント基板の1つの穴には、3本のワイヤーまで通すことが可能ですが、本機で使用したプリント基板は "サンハヤト" の "ICB-97" で、
穴径が少々小さく2本のワイヤー(被覆の外周径)しか通すことができません。 したがって、上図のように同じ信号同士のタクトスイッチをワイヤーで配線を行う場合には、図に示したように基本的に一筆書きのように行うと、1つの穴には2本のワイヤーで済ますことができます。 ただ、私は左図のように配線をしてしまったため、 写真でも分かるように2段目のタクトスイッチ下の配線量が多くなって、ひどく密集してしまい配線作業がかなり難しい状態でした。 その解決策が右図で、このように配線を行えば2段目のタクトスイッチ下の配線量が半分に減って、配線作業もそれほど難しくはなくなります。 |
| ページトップ |
使用したケースは、100均で購入した "はがきケース (L-8821) サナダ精工株式会社" ポリプロピレンケースです。
今回の製作ではケース外との接続は、リレー接点の取り出しは止めて AC 6.3V の電源線のみとし、そのコネクタには 2.1ΦDCジャック を使用しました(左側面図の丸穴)。
| ケース加工図 (TMS1121_SimulatorII.CE3)
| ページトップ |
本機では 回路図 の下の説明で述べたように、手持ちにあった 6.3V の電源トランスを使用していますが、前項の ケース加工図 で示した同一のケース内には、スペースがないため収容することはできません。
そこで次の写真のような別ケースに収めて電源アダプタという形にまとめました。 といっても、トランスの他にはヒューズしか入っていませんが。 なるべくコンパクトなものにしたかったため、100 均でケースになりそうなものをいろいろと探したところ、次の写真のような円形のタッパーを見つけました。 当初は、四角形のものに拘って探していたのですが、サイズ的に見合ったものがなかなか見つからず、 ふっと目に入ったものが円形の手頃サイズのタッパーで、この形も面白いのでは ・・・ と思い直し決定をしました。 (ポリプロピレンケース: "ナカヤ化学産業" しっかりパックF 3個組 Φ85 x 48H mm) ヒューズホルダを、当初、電源トランスの端子が出ている側に配置してみたのですが、ケース内が狭くてトランスの端子とぶつかるために、写真のような反対側の配置となりました。 このヒューズホルダは、プリント基板の端材とヒューズ受け口金具を使用した、私の手作りのものです。 このアダプタの出力として AC 6.3V を取り出すのですが、そのコネクタには本体ケース側のコネクタに合わせて、2.1ΦDCプラグを使用しました。 また、コードも外皮が丸型のものに拘って手持ちにあったシールド線を使用しています。 これらのコネクタやシールド線の使用は、本来の使用方法とは異なっていますが、それが良いのか悪いのかはよく分かりません。 DC 5V に変換後の消費電流は、4個のリレーが同時に動作したときが最大で、約 30 mA x 4 = 約 120 mA + α 程度ですから、たぶん? 問題はないものと思います。 |
|
| ページトップ |
(主要部品: IC, トランジスタ等) | (データシート) | ||
PICマイコン | .................... | PIC16F886 | |
三端子レギュレータ | .................... | TA7805S | |
トランジスタアレイ | .................... | TD62003AP | |
トランジスタ | .................... | 2SC509 | |
トランジスタ | .................... | 2SC1815 | |
ダイオード | .................... | 1N4148 | |
7セグメントLED | .................... | C-551SRD |
| 部品表 | Excel ファイル (TMS1121_SimulatorII_parts.xls) | ページトップ |
181. TMS1121 デジタルタイマー・シミュレータ | ..... | http://xyama.sakura.ne.jp/hp/TMS1121_Simulator.html |
088. TI社 TMS1121 デジタルタイマー II | ..... | http://xyama.sakura.ne.jp/hp/TI_TMS1121_DegitalTimerII.html |
x09. TI社 TMS1121 デジタルタイマー | ..... | http://xyama.sakura.ne.jp/hp/TI_TMS1121_DegitalTimer.html |