PIC16F84電子遊戯(46)
最終更新日:2001年11月15日 仮面ライダーシステム・その2(1ページ)へ (2ページ)へ (3ページ) (4ページ)へ
仮面ライダーシステム・その2(マルチマトリックス)の割り込み処理
今回のマルチマトリックスの割り込みでは大きく二つの処理を行っています。
まず一つ目は割り込みが入るごとにカウンタをインクリメントしてトータルの動作時間をカウントする部分です。
int_count2 int_count1 タイマー割り込み時間カウント2 タイマー割り込み時間カウント1 「int_count1,int_count2」を約20msecの割り込みが入るごとにインクリメントします。
トータル16ビットのカウンタですが、メインルーチンで10ビット目をチェックすることにより、約20秒の時間を得ることが出来ます。
二つ目はスクロールを移動する時間をカウントする部分です。
acount2 acount1 スクロール時間カウント2 スクロール時間カウント1 一応16ビットは用意しましたが、スクロールする時間が速いので、実際には2ビット目をチェックして約80msecの時間を得ることが出来ます。
このタイミングで左に文字を1行スクロールします。仮面ライダーシステム・その2(マルチマトリックス)のスクロール処理
実際の処理はLEDの左表示スタートのデータ位置を変えることによって、文字がスクロールしているように見せています。
文字データ上のデータの並びは左データから順に並んでいます。
スクロール時間(約80msec)ごとに、表示スタートオフセットを「0から15」に変化させています。オフセット「15」の次は文字位置をインクリメントしてオフセットは「0」にしています。
zurasu moji_count LED左の表示オフセット 表示文字位置 表示文字位置は8文字表示後「0」にクリアします。私はたまたま8文字表示させているだけなので、このあたりは皆さんの好みで改造して下さい。 仮面ライダーシステム・その2(マルチマトリックス)のSW2の動作
SW2は表示モードを切り換えています。「disp_mode」のビットの立つ位置を変えることによって8種類の表示モードを切り換えています。
disp_mode 7 6 5 4 3 2 1 0 モード8 モード7 モード6 モード5 モード4 モード3 モード2 モード1 ビットの立つ位置はデータを左シフトすることにより変化させます。 仮面ライダーシステム・その2(マルチマトリックス)のSW1の動作
ソフト的にはストップモードからはSW2でもSW1でも立ち上がることが出来ます。
外部接続出来るのはSW1と同等の処理が出来るポートにしていますので、とりあえずSW1をアクションスタートのスイッチとしておきます。
そこで、アクション動作中にはSW1は無用のスイッチとなってしまうので、写真撮影用の意味も含めてこのスイッチにアクション一時停止の機能を新たに設けることにします。
run_mode 7 6 5 4 3 2 1 0 - - - - - - - アクション一時停止 0ビット目が「0」の時アクション動作、「1」の時アクション一時停止とします。
アクション一時停止中は割り込みが入っても割り込み内での処理をしないようにすることによって文字のスクロールを止めています。仮面ライダーシステム・その2(マルチマトリックス)の全ソースリスト公開
上記の内容と前回の説明を理解できればソースを読むことは簡単と思います。
いつもいっておりますがソースは私からのひとつの提案にすぎません。皆さんで自由に改造してみて下さい。今回も長くなるので別ページにしました。
ソースリストはこちらへ仮面ライダーシステム・その2(マルチマトリックス)の全HEXコード
HEXコードです。メモ帳などのテキストエディタにコピー&ペーストしてファイルすればPICに書き込めるデータに出来ます。 :020000002A28AC :080008008C0003088D000B11B0 :1000100063308100101825280130AD07031C122819 :100020000130AE07013093070318940A131D2528E9 :100030009A0AE7201A08103C031D2528F820960A82 :100040001608083C031D2528F2200D0883008C0E9D :100050000C0E0900AA23FF308500C0308600B523AE :10006000EB20E720F220F520F820003090008B13E1 :1000700000008B1200000B1100000B1000008B150C :100080000000EE20C03086000000630000008B11ED :1000900000008B1700008B160000F220061F4E2870 :1000A0002E193728861A5B28E120E120861A5B2862 :1000B000FB20861E5928061B6428E120E120061B30 :1000C00064280121061F62282003103885000615C8 :1000D00000008615000019187C289918872819191E :1000E000922899199D28191AA828991AB328191B1A :1000F000BE28991BC928C9282E210721CD210721F7 :10010000061100006C2207210B230721D4286C2242 :1001100007210B230721061100006C2207210B2366 :100120000721D4282E210721CD2107210611000007 :10013000FF300721FF300721D428FF300721FF308F :100140000721061100006C2207210B230721D42868 :10015000FF300721FF300721061100002E21072163 :10016000CD210721D4286C2207210B23072106115A :100170000000FF300721FF300721D4286C2207211F :100180000B230721061100002E210721CD21072175 :10019000D4282E210721CD210721061100002E2170 :1001A0000721CD210721D428861100000512000067 :1001B000E12005160000A0030319DF286428EB20C6 :1001C0005028FF3095000000950BE3280800003010 :1001D0009300940008001030A00008000030AD002B :1001E000AE000800003096000800013099000800B9 :1001F00000309A000800991FFE28F5280310990D79 :100200000800101C052910100800101408009800A0 :100210008610981B861429218610181B8614292104 :100220008610981A861429218610181A86142921F6 :1002300086109819861429218610181986142921E8 :1002400086109818861429218610181886142921DA :10025000080006140000061000000800200897009F :10026000160E97071A0897073C30970701308A0047 :1002700003188A0A170882000034FF34FE348034E1 :10028000BF34BF3498349F34A734B3349F34CC3454 :100290009F34B334A0348F34FF34FF348034BF3400 :1002A000BF34A034BF34BF34A534A534BF34BF3409 :1002B000A034BF34BF348034FF34FF34FF34FE3405 :1002C000FE348E34AE34AE34A634B6349034DC34DE :1002D000CF34E334F834FF34FF34FF34FF34F834E0 :1002E000FA34FA34FB34F9348134BF34BF34803407 :1002F000FF34FF34FF34FF34FF34FF34FF348C34D9 :10030000AD34AD34A434B5349134DB34CE34EF3471 :10031000EB34E034FF34FF34FF34FF34FF34FE3479 :10032000FC34FD34FD34FD34FD34FD34FD34FD3446 :10033000FD34FD34FC34FF34FF34FF348E34AE34EE :10034000A034A734AF34BD34B534B534BD34AF3484 :10035000A734A034AE348E34FF34FF34E334EB34AE :10036000E834EF34C734D4349E34AF34B7349E34D9 :10037000AE34BE349E34C034FF34FF34FF34FF3417 :10038000FF34FF34FF34FF34FF34FF34FF34FF34D5 :10039000FF34FF34FF34FF34FF3420089700160E7B :1003A00097071A089707DB30970701308A00031870 :1003B0008A0A170882000034FF343F348F34E33454 :1003C000FB341B34FB34FB34CB34CB344B34CB34D5 :1003D000CB340B34E334FF34FF340334CB34CB342D :1003E0004B34CB34FB347B344B34CB34CB344B34B5 :1003F000CB34CB340334FF34FF34FF343F34873401 :100400009734973497349734973497349734973494 :1004100087343F34FF34FF34FF34FF34FF34FF347C :100420007F347F343F349F34CF34E73433349B34CC :10043000CB34E334FF34FF34FF34FF347F343F34B4 :100440008F34E3347B345B3443344334DB34DB3488 :100450001B34DB34C334FF34FF34FF343F34BF3448 :10046000BF343F347F347F347F347F347F347F34F4 :100470007F347F34FF34FF34FF343F348334AB3474 :10048000EB346B347B345B345B3473347734F73464 :10049000A7348F343F34FF34FF341F345F34433488 :1004A000FB34FB34C334FB34FB34AB34AB34FB34AC :1004B000FB3483343F34FF34FF34FF34FF34FF34E4 :1004C000FF34FF34FF34FF34FF34FF34FF34FF3494 :1004D000FF34FF34FF34FF3420089700160E9707CF :1004E0001A0897077A30970702308A0003188A0A99 :1004F000170882000034FF34FF34FF34C034C034A6 :10050000E734E034D834CC34E034F334E034CC3461 :10051000DF34FF34FF34FF34FF34C034C034DF3401 :10052000C034C034DA34DA34C034C034DF34C034D8 :10053000C034FF34FF34FF34FF34FF34FF34FF3462 :10054000DF34DF34DF34CF34EF34E334F034FC34E1 :10055000FF34FF34FF34FF34FF34FF34FD34FD3407 :10056000FC34FE34FE34C034C034FF34FF34FF3476 :10057000FF34FF34FF34FF34FF34FF34DE34DE3425 :10058000DF34CE34EE34E434F134F034F434FF3478 :10059000FF34FF34FF34FF34FF34FF34FF34FE34C4 :1005A000FE34FE34FE34FE34FE34FE34FE34FE34BB :1005B000FF34FF34FF34FF34FF34DF34DF34D8340A :1005C000D034C234CA34CA34C234D034D834DF341C :1005D000DF34FF34FF34FF34FF34F734F734F034C2 :1005E000F834EB34E134D034C834E134D134C1349C :1005F000E134FF34FF34FF34FF34FF34FF34FF3481 :10060000FF34FF34FF34FF34FF34FF34FF34FF3452 :10061000FF34FF34FF3420089700160E97071A089E :1006200097071930970703308A0003188A0A1708BA :1006300082000034FF34FF347F341F340734E73442 :100640000734073437343734B73437343734F73472 :10065000FF34FF34FF34FF3437343734B7343734A2 :1006600007348734B73437343734B7343734373412 :10067000FF34FF34FF34FF34FF347F346F346F3482 :100680006F346F346F346F346F346F347F34FF34B2 :10069000FF34FF34FF34FF34FF34FF34FF34FF34C2 :1006A000FF347F343F341F34CF34E734F734FF3422 :1006B000FF34FF34FF34FF34FF34FF347F341F3402 :1006C0008734A734BF34BF3427342734E734E734C2 :1006D000FF34FF34FF34FF34FF347F347F34FF3482 :1006E000FF34FF34FF34FF34FF34FF34FF34FF3472 :1006F000FF34FF34FF34FF347F34573417349734DA :100700008734A734A7348F348F340F345F347F3469 :10071000FF34FF34FF34FF34BF34BF3407340734B1 :100720003F340734073457345734073407347F34A1 :10073000FF34FF34FF34FF34FF34FF34FF34FF3421 :10074000FF34FF34FF34FF34FF34FF34FF34FF3411 :10075000FF34FF34831685018601861700000617D3 :100760000000861600008312080083168630810080 :080770008312633081000800D0 :02400E00F13F80 :00000001FF(V3mat.hex) 以上でマルチマトリックス大完成です。次回は番外編ということで、V3システムとマルチマトリックスとを連動させた姿を見ていただきましょう。 これからも益々面白くなる「PIC16F84電子遊戯」をよろしくお願いいたします。
不明点などあればメールお願いいたします。nonchansoft@nifty.com
Copyright(c)2000-2001 nonchansoft