秋月ファンクラブ掲示板

daruma(2017/11/24 Fri 16:46) [ 編集 ] [ 返信 ]

Re^82: LED Cube

JPG 768x1024 121.5kb

試作3号機をケースに収めました。
3mm厚のシナベニヤをカッターで切って木工ボンドで貼りました。この写真ではよく見えませんが、天面には1mm幅のスリットを3本彫って、キューブを装着した基板を後方から差し入れています。当初はヘッダソケットの位置に穴を開けて足を外から差し込む構想でしたが、足が軟らかくて挿し難くてこのようにしました。
塗装は水性ウレタンニスを刷毛塗りしてみたのですが、きれいにいかなくて意図せぬアンティーク調になってしまいました。素人塗装はやはりスプレーがいいです。
キューブ部作りは4個めで多少熟達しましたがこの程度です。足が少々長すぎて背が高くなってしまいました。これでは立方体じゃありませんね。


残り15件

  1. [3286] 「ネオン管を使ったオーディオレベルメーター」スレに脱線で書いた「LED Cube」、私も作ろうと思っていたら、inara1さん、OKWaveの回答続きで見直した回路を提示なさいましたね。
    それで、スレッドを立てさせてもらうことにしました。
    私が貼るのもなんなので、回路図をここへお出しいただけますか。

    > タイマIC(NE555)はLMC555に替えて、
    とのことですが、私はどっちも同じものなんだと思っておりました。なにか違う点があるのですか?
    LED Cube
    daruma 2017/08/14 12:09
    1. [3290] 修正した回路図を提示します。

      LMC555のほうが消費電流が小さく、最低動作電圧も低いのですが、LED Cubeのような用途ではどちらでもいいです。

      NE555の内部はバイポーラトランジスタ、LMC555はMOS-FET(CMOS)で作られています。555はいろいろなメーカから互換品が出ています。
      http://toragi.cqpub.co.jp/Portals/0/backnumber/2011/01/furoku/p002.pdf

      バイポーラかCMOSかは型番で区別できますが、回路初心者には難しいかもしれません。

      今はなきナショナルセミコンダクタ社の型番の付け方は分かりやすいです。LMならバイポーラ、LMCならCMOSです。よく使うLM358はバイポーラトランジスタを使ったオペアンプ、LMC6482はCMOSオペアンプです。

      オーディオマニアの間で有名なハイブリッドオペアンプの型番はLH0032ですが、Hがハイブリッドの意味です。冒頭のLはリニアIC(デジタルでないアナログIC)の意味です。LMのMはモノリシック(チップ部品を並べたハイブリッド構成でなく、1つのシリコン基板に集積した)という意味です。
      Re: LED Cube
      inara1 2017/08/15 04:55 *
      1. [3291] 以前、motomuraさんの織機用の回路でも使いましたが、4017を複数使うと、10以上の周期のリングカウンタが作れます。

        添付図は周期25の例ですが、2段目の部分を繰り返せば、さらに大きな周期のカウンタも作れます。周期25というのは、5×5のLED Cubeに相当しますが、縦が5段だと合計125個のLEDが必要となるので作るのが大変そうです。
        Re^2: LED Cube
        inara1 2017/08/15 08:15 *
        1. [3292] 上の回路では4017のCout(Carry Out)端子は使っていませんが、Carry Out端子には、15pinのクロック信号の1/10の周波数の信号が出てきます。この信号を次段の4017のクロックに入力すると、次段の出力は10クロックおきに出力が変わるようになるので、添付図のように結線すると4017を2個使うだけで60進カウンタを作れます(上の回路のように、クロック信号が入るたびに出力が右に1つずつ進むようなカウンタだと、60進カウンタを作るには7個の4017が必要です)。1段目のq0〜q9の出力を数字の0〜9を割り当てて、2段目のq00〜q50に0〜5の数字を割り当てると、00〜59の表示(59の次は00)ができます。

          ニキシー管の数字表示器は、10本の信号線に対して0〜9の数字が対応しているので、この回路を使えばニキシー管時計が作れます。秒も分も60進数なので、4017を4個使えば00分00秒〜59分59秒の表示が可能になります。4017というICは相当古いですが、当初はニキシー管のように、セグメントごとに数字を表示させるもののために開発されたのかもしれません。
          Re^3: LED Cube
          inara1 2017/08/15 09:09 *
          1. [3293] 555各種はメーカーが違うだけで同じものと思っていました。どれでもいい場合のほかにこれでなければならないという場合もあるのですね。部品箱を見たらLMCばかりでした。NEも買っておこうと思います。

            4017を複数使うのは、OUT_10を次の4017に入れれば11〜・・・というように連続させたり、n進で桁上がりをつくったりできるというわけですね。

            ニキシー管時計はいつかはと思いながらなかなか着手できません。
            Re^4: LED Cube
            daruma 2017/08/15 09:59
            1. [3350] 配線図が描けました。なかなかぎっしりです。ジャンパがたくさんありますが、空中配線は無しにできました。

              4017は、TC4017BPが1個だけしかないので発注しようと思いますが、現在秋月にはCD74HC4017しか無いようです。これでもいいですか。 TC4017BPをよそで探したほうがいいですか。

              A,B,Cの2SC1815のエミッタに入れる抵抗は150〜2.2kΩとなっていますが、これはどのように決めたらいいですか。その範囲ならいいということでしょうか。

              ※ この図には誤りがあるので、
              http://mpga.jp/akizuki-fan/index.php?mode=article&id=3353&page=1
              に添付の図を修正してあります。
              Re^5: LED Cube
              daruma 2017/09/03 15:04 *
              1. [3351] >配線図が描けました
                合宿の成果ですね。

                >ジャンパがたくさんあります
                4017のピン配置は順番になっていないのでジャンパ線だらけになります。なぜ順番になっていないのでしょうか。Siチップ内部の配線でどうにでもできるはずですが。

                >秋月にはCD74HC4017しか無いようです。これでもいいですか
                CD74HC4017だと、電源電圧の上限は6Vになります。TC4017(HCがついていないとき)なら電源電圧の上限は18Vです。
                74HC4017 http://akizukidenshi.com/catalog/g/gI-09416/
                TC4017 http://www.kansai-event.com/kinomayoi/PDF/4017B.pdf

                > A,B,Cの2SC1815のエミッタに入れる抵抗
                このLED Cubeは同時に1個のLEDしか光らないので、どのLEDが光っていてもその抵抗に電流が流れます。したがってその抵抗値によって全てのLEDの明るさが変わります。その部分を150Ω+2kΩVRなどにすれば、明るさを調節できます。パネル取り付け型のVRにして外部から調整できるようにすれば、部屋の明るさに応じて調整できて便利かもしれません。

                そのLED Cubeは、発光部の配線をいかに見えないようにするかが肝だと思います。針金などで枠を作るのではなく、アクリル樹脂などの透明なもので梁や床面を作って、配線もできるだけ目立たないように(できれば透明)するとLEDが浮いて見えるので幻想的になりそうです。
                Re^6: LED Cube
                inara1 2017/09/03 15:36
                1. [3352] ピンの並びがゴチャゴチャでなければいいのにとぶつぶつ言いながら描きました。内部配線の都合なんだろなと思いましたが、そこはどうにでもなるものなんですか。

                  TC4017を探します。地元ショップにあるかもしれません。無ければ千石ででも。

                  > > A,B,Cの2SC1815のエミッタに入れる抵抗
                  150Ω+2kΩVRにします。

                  > そのLED Cubeは、発光部の配線をいかに見えないようにするかが肝だ
                  そのことも考えていました。レジンに封入するというのはどうでしょう。配線はごく細い単線にして。発熱はさほどでもないですよね。
                  逆にステンレス線などで整然と美しい格子を組むとか。

                  今日はVRを使うところまで配線図を固めて、それから応答時間測定器のほうに戻ります。
                  Re^7: LED Cube
                  daruma 2017/09/03 17:02
                  1. [3353] 電源スイッチとVRを付けました。

                    ※配線図にあやまりがあったので、2017/09/17に差し替えました。
                    ※VRにいくヘッダピンの位置向きを変更しました。
                    Re^8: LED Cube
                    daruma 2017/09/03 17:15 *
                  2. [3354] >そこはどうにでもなるものなんですか
                    仕事でICチップの配線も描いています。仕事でも家でも配線作業です。仕事の配線は0.01μmから1μm幅です。

                    汎用ロジックICは幅10μmくらいのアルミ配線でトランジスタをつないで、最終的にチップ外周の電極パッドから、金線(Gold Wire)でパッケージの端子と接続しています。

                    よく使う74HC00の内部はこんな感じです。
                    https://zeptobars.com/en/read/NXP-74AHC00

                    チップ外周近くにある8角形や四角形が電極パッドです(直径は100μmくらい)。IC外部の端子配列は、このパッドの配列に近くなります(金線を放射状に出して接続するので)。パッドに出す信号線はチップ内部の配線次第でどうにでもなります。基板の配線と同じです。

                    >レジンに封入するというのはどうでしょう。配線はごく細い単線にして。発熱はさほどでもないですよね。
                    配線の発熱は気にしなくていいです。直径0.1mmくらいの単線が現実的ですかね。

                    >逆にステンレス線などで整然と美しい格子を組むとか
                    いろいろ工夫の余地がありそうです。
                    Re^8: LED Cube
                    inara1 2017/09/03 17:53
                    1. [3355] 上で紹介した74AHCのチップとIC端子配列の関係は添付図のようになります。Vdd(14pin)が電源、Vss(7pin)がGNDですが、電極パッドの配列と端子配列が似ていることが分かります。VddとVssの配線が太くなっているのは配線インピーダンスを下げるためです。Re^9: LED Cube inara1 2017/09/03 18:26 *
                    2. [3356] > 仕事でも家でも配線作業です

                      お家では肉眼手仕事の世界ですね。

                      >(金線を放射状に出して接続するので)

                      放射状に引き出すので交差できないと思っていました。それ以前のところで「どうにでもなる」のですね。

                      > いろいろ工夫の余地がありそうです。

                      そうですね。回路が動いてからの道のりが長そうです。
                      Re^9: LED Cube
                      daruma 2017/09/03 18:33
                      1. [3359] TC4017BP、地元ショップ梅澤無線にありました。棚に8個、買い占めてきました。
                        私みたいな人が店のおじさんに「ほかの店は・・」と訊いて、「○○はパーツ扱わなくなったし、○○は無くなったし、西島無線もご主人亡くなって閉めたし・・」と話していました。ここも売り場の配置が変わって品数が減ったような気がします。
                        Re^10: LED Cube
                        daruma 2017/09/04 13:13
                        1. [3366] > TC4017BP、地元ショップ梅澤無線にありました。棚に8個、買い占めてきました。
                          >

                          秋月と比較すると少々高いですが、かなりの在庫がマルツにありますよ。
                          https://www.marutsu.co.jp/pc/i/35914/

                          以前、バスケ用の24秒カウンタの製作に使いました。
                          この時もかなり捜しましたが秋月にも千石にも在庫がありませんでした。
                          私の手元にも20個ほどあります。

                          それともしキット化のためなどでSMD無しで2層までの基板を起こすようなら、業者用のアートワーク図を描くくらいならEagleで簡単にできるので言ってください。
                          Re^11: LED Cube
                          sealockman 2017/09/06 16:38
                          1. [3367] sealockmanさんお久しぶりです。

                            TC4017BP、探せばあるようですね。マルツは130円ですか。やや高めですね。私が買ったのは118円でした。

                            基板の件、ありがとうございます。とりあえずプロトタイプはユニバーサル基板で作りますが、もしいくつも作るとなってもアイロン転写で自家製がせいぜいかなと思います。多くても5〜6枚でしょうし。基板外注も安くなったとは聞きますがある程度の枚数をつくらないと単価が下がらないですよね。

                            LEDマジックアイのときは、Pcbeで描いたものをレーザプリンタで出力してアイロンで転写してエッチングという家内工業でやりました。
                            Eagleはとっつきやすいですか?
                            Re^12: LED Cube
                            daruma 2017/09/06 18:30
                            1. [3368] > Eagleはとっつきやすいですか?

                              「慣れ」だと思います。

                              以前ご説明した記憶がありますが、機能的にはDesignSparkPCBとほぼ同等ですが、LTSpiceとの連携や、部品ライブラリの豊富さからEagleの方が人気があるようです。

                               重宝なのは基板上の部品の配置が決まれば、配線は自動配線機能「AUTO ROUTER」がやってくれることです。
                              基板の材質や放熱、絶縁距離などから配線の太さや間隔、PADの大きさ、多層基板でのVIAの大きさなどをデザインルールで指定するだけでアートワーク図まで仕上げてくれます。(サンプル図参照)

                              GND付きのネジ固定用穴がドリル径0.1mmごとに用意されていることや
                              入手可能な殆どのメーカーのデバイスやコネクタなどが網羅されていて
                              申し分ないですね。
                              Re^13: LED Cube
                              sealockman 2017/09/06 19:44 *
                              1. [3371] 本格活用にはEagleは優れものなんですね。こんど勉強してみようと思います。Re^14: LED Cube daruma 2017/09/07 05:04
                                1. [3374] 配線の見えないLED Cubeというのは見当たりません(全部見たわけではありません)。
                                  https://www.google.co.jp/search?q=%22LED+cube%22&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwil576o4pbWAhWIfbwKHUMPBwcQsAQIJQ&biw=1346&bih=615#imgrc=_&spf=1504914214879

                                  レジンに入れても配線は見えますし、レジンに入れるとメンテナンスできなくなります。
                                  Re^15: LED Cube
                                  inara1 2017/09/09 08:51
                                  1. [3383] 製作にとりかかったら、配線図に不都合な部分があったので、
                                    http://mpga.jp/akizuki-fan/index.php?mode=article&id=3353&page=1
                                    の図を差し替えました。
                                    トランジスタのコレクタから出すジャンパ線が足と同じ穴に入るようになっていました。

                                    LEDの造形を考えているのですが、結局はリードを直線的に整えてきれいにハンダ付けし立方体のフォルムを正確に出すのが現実的だと思います。これが乱れていると作り方の工夫以前に美しくないですから。

                                    若松のホームページにこんなLEDがあるので、使うかどうかは別として取り寄せてみました。こんなふうに足が出ていると直交の交点にLEDが来る形を作るのに向いているかなと思って。

                                    古い製品のようで、30mAくらい流さないと明るく光りません。
                                    赤とオレンジと緑があります。

                                    ところで、回路基板の高さを低く抑えたいので、三端子レギュレータを78M05Fにしようかと思うのですが、LEDは同時には光らないから500mAあれば足りますよね。78L05Sにまでしなくても高さは同じくらいですし。
                                    Re^16: LED Cube
                                    daruma 2017/09/17 09:24 *
                                    1. [3385] こちらも更新されていたのに気づきませんでした。

                                      >結局はリードを直線的に整えてきれいにハンダ付けし立方体のフォルムを正確に出すのが現実的
                                      そうですね。透明配線は誰も実現していません。

                                      >古い製品のようで、30mAくらい流さないと明るく光りません
                                      LEDは高輝度とそうでないものの2種類あります。発光材料が違います。古い売れ残りを高値で売っていませんか。

                                      >LEDは同時には光らないから500mAあれば足りますよね
                                      最大消費電流が50mAとしても、電源電圧が15Vのときの発熱量は0.5Wですが、TA78M05Fの最大発熱量(絶対最大定格)は1Wなので問題ないです。78L05の最大発熱量は0.5Wなので78L05は使わないほうがいいです。以前、何かの作製でLEDを追加したとき、78L05が発熱したことがありましたね。
                                      Re^17: LED Cube
                                      inara1 2017/09/17 14:19
                                      1. [3386] > そうですね。透明配線は誰も実現していません。
                                        極細い線で繋いでレジンにという案は、封入する前の状態で立方体のフォルムを保てないのでボツです。

                                        > 古い売れ残りを高値で売っていませんか。

                                        高くはないです。50個500円ほどです。若松のサイトに何年も前から出ていて、気になってはいました。かつてはこうした変わった形のLEDが見られたように思いますが、いまは片側に足が出たタイプ(なんというのでしょう)のものばかりになってこうした形のものは他で見かけません。

                                        > 何かの作製でLEDを追加したとき、78L05が発熱したことがありましたね。

                                        ありましたね。78M05Fで行きます。
                                        Re^18: LED Cube
                                        daruma 2017/09/17 14:40
                                        1. [3387] >50個500円ほどです。
                                          高いです。1個1円もしないはずです。そういう特殊なリード形状のものは汎用性がないので相当安く仕入れているはずです。昔のLEDは発光材料が今のとは違っていて、光度が数十ミリカンデラしかなく、20年くらい前から生産されていないので20年モノの在庫品でしょう。LEDチカチカブームに便乗していると思います。
                                          Re^19: LED Cube
                                          inara1 2017/09/17 14:56
                                          1. [3388] > >50個500円ほどです。
                                            あ、間違えました。100個500円です。
                                            http://www.wakamatsu-net.com/cgibin/biz/pageshousai.cgi?code=19090311&CATE=1909
                                            それでも高いですか。
                                            > 20年モノの在庫品でしょう。
                                            きっとそうですね。以前は見かけたのにこのごろ見ないような形のものが他にもあるようです。
                                            Re^20: LED Cube
                                            daruma 2017/09/17 15:21
                                            1. [3389] 単価5円なら許せる範囲です。在庫数が29680個もあるのですか。でも全部買い占めても14万8400円ですね。

                                              まぶしいほど光らせる必要がないけど大量に使う場合はこういう格安LEDでも需要はあるのかもしれません

                                              1個5円というのは我々の世代では駄菓子屋の世界です。グッピーラムネが確か5円、パッケージがサイコロになったキャラメルが10円、ベビーラーメン(ベビースターではない)が20円くらいだった記憶があります。ポンカン飴、都コンブ、のしいか、麩菓子、粉ジュースというのがありましたが今でもあるのでしょうか。

                                              20年くらい前まで、勤務先で半導体レーザやLEDの開発をやっていました。残念ながら製品にはなりませんでしたが。
                                              Re^21: LED Cube
                                              inara1 2017/09/17 16:37
                                              1. [3390] 三角形のニッキ、ビニールでくるんだ丸い棒マンボーったかな?、喉が詰まりそうなおっきな飴、口の中が赤や緑に染まる味付きの紙・・・、どれも5円だったような。ベビーラーメンはまだ登場していなかったのが世代の差ですね。

                                                > 20年くらい前まで、勤務先で半導体レーザやLEDの開発をやっていました。
                                                以前おっしゃっていた、ノーベル賞の中村さんと学会発表競い合ってた頃ですね。

                                                半固定VR2個が銘柄そろわずちぐはぐで、休み明けまで完成できません。そういうとここだわってしまいます。
                                                Re^22: LED Cube
                                                daruma 2017/09/18 09:51
                                                1. [3391] ちょうど今頃、台風の中心が札幌付近にありますが大丈夫ですか。
                                                  こちらは台風一過の猛暑で、海老名アメダスの最高温度は34℃でした。
                                                  Re^23: LED Cube
                                                  inara1 2017/09/18 14:16
                                                  1. [3392] テレビはずうっと台風情報をやっていますが、我が家のあたりは雨こそ一時降っていましたがいつのまにか地図の上では通り過ぎたことになっていました。そちらは暑いんですね。北海道は台風が来ても来なくてももう秋です。

                                                    ここまでできました。あとは半固定VR待ちです。
                                                    高さを抑えるのに、電解コンは低背のものを使いました。無駄にオーディオ用の金ピカですが。ヘッダピンも横出しです。
                                                    上に載るのはキューブだから、基板の狭い側にピンを出して全体が正方形に収まるように考えています。その関係で、VRに行くピンの位置向きを変えました。(サンハヤトの基板は品番記載のためこの列一部ランドが無いんです)
                                                    http://mpga.jp/akizuki-fan/index.php?mode=image&file=3353.jpg

                                                    回路試運転のLED群をブレッドボードに組むのもたいへんそうです。いっそキューブ試作版をいきなり作ろうかとも・・・。
                                                    Re^24: LED Cube
                                                    daruma 2017/09/18 16:04 *
                                                    1. [3398] ネタ並走であっちこっちやっています。
                                                      LED群のブレッドボード配線を描いてみました。こんな感じでどうでしょう。
                                                      Re^25: LED Cube
                                                      daruma 2017/09/20 21:03 *
                                                      1. [3463] すったもんだがありましたが、うまく動きました。
                                                        写真を軽くするPCを持ってきていないので、写真は帰宅してから載せます。
                                                        すったもんだというのは、
                                                        ヘッダピンからブレッドボードに繋ぐのに、できあいの片側オス片側メスのケーブルを使ったのですが、これが12本中3本導通不良でした。散々悩んだあげく判明しました。それが解決したら、1本だけ点かず、これはハンダ不良でした。毎度ながらのお粗末。
                                                        Re^26: LED Cube
                                                        daruma 2017/10/08 07:44
                                                        1. [3464] 動画を揚げる方法をあとで勉強しようと思いますが、順調に動いています。ネットでいろいろ見た中には点灯パタンが変わって行くものもありましたが、あれはPICで作ったものなんですかね。
                                                          半固定VRの調整で微妙なずれで変わって行くようにできるかなと思ったのですが、そうはいかないようです。

                                                          そこで、VRを外出しにしてユーザが調整による変化を楽しめるようにと考えたんですが、それよりもセンサで周囲の変化に応じるようにするのはどうでしょう。半固定VRをそのままCdSに置き換えるのが安直ですが、CdSというのも今ふうじゃないので、以前「暗くなったらパッと点く」で使った照度センサはどうでしょう。
                                                          温度では変化が無さすぎるし、音だと目まぐるしく変化してパタン変化に見えないでしょうし、明るさだと室内の変化に対応するほか手をかざしたりして変化させることもできて楽しいと思います。
                                                          Re^27: LED Cube
                                                          daruma 2017/10/08 09:36
                                                          1. [3477] LED Cube試作1号機はこんな姿です。LED群はテスト用なのでブレッドボードに平面配置です。一本ごとのケーブルを使っていますが、できあがり時には5ピンソケットを1ピンおきにして使います。
                                                            テンポ調整を外出しVRにしてもセンサにしても、ヘッダピンを外周部に立てる必要があるので、配線図を若干変えようと思います。
                                                            Re^28: LED Cube
                                                            daruma 2017/10/10 16:58 *
                                                            1. [3480] 試作2号機はこのようにしようと思います。
                                                              以前使った可視光センサNJL7502LはCdSと置き換えて使えるとのことでしたから、単純に「固定抵抗+VR」を「固定抵抗+NJL7502L」に置き換えて固定抵抗の値をカットアンドトライすることでどうでしょう。安直すぎますか?
                                                              Re^29: LED Cube
                                                              daruma 2017/10/10 18:29 *
                                                              1. [3482] 3×3×3個のLEDを並べるのに、いつもの基板が入る正方形の敷地では広すぎます。LED間があまり離れていると群として光るように見えないと思いますから。

                                                                そこで、ぎゅうぎゅう詰め虫が騒いで、こんなふうにしてみました。
                                                                秋月の45mm角正方形基板は穴数が足りなくて無理でした。50mm角に切った基板です。

                                                                ※ 下の試作2号機のあと少し修正を加えたので、図を差し替えました。
                                                                Re^30: LED Cube
                                                                daruma 2017/10/18 16:10 *
                                                                1. [3483] 製作は一発完動でした。
                                                                  ※上の図を差し替える前の製作ですから、上図とは少し違います。

                                                                  テンポ変化は、[固定抵抗−VR−照度センサ]を直列にして実験してみます。固定抵抗の適切値を見つけてからと、基板上はゼロΩ抵抗がわりのジャンパ線にしてあります。

                                                                  図で右側の方は1kΩ+1MΩVRになっていますから、CdS(最大1MΩ程度)と置き換えられるNJL7502Lなら行けるのではと予想していますが、左側のVは10kΩ+50kΩVRですから、NJL7502Lの抵抗値相当では大きすぎるかもしれません。VRと並列に入れてはどうかなと思ったりしています。

                                                                  札幌も山寄りの郊外では雪が降ったとTVで行っています。我が家のあたりはまだですが、そう遠いことではないでしょう。
                                                                  Re^31: LED Cube
                                                                  daruma 2017/10/18 16:25 *
                                                                  1. [3484] NJL7502Lを1MΩVRに付け加えても、VRを外して置き換えても、ダメです。点灯が移動しない状態のままで、明るくしても暗くしても変わりません。NJL7502Lの極性はどうなんでしょう、向きを変えても同じです。

                                                                    最大1MΩのCdSにしてみました。こちらは明るさで変化します。変化幅はあまり大きくありません。
                                                                    Re^32: LED Cube
                                                                    daruma 2017/10/18 17:12
                                                                    1. [3485] NJL7502Lに流れる電流が微小過ぎて繋がっていないと同然ということでしょうか。
                                                                      それで、VRと直列にするとOFFのまま、VRと並列に入れても変化に影響しないと。

                                                                      そうであれば、トランジスタで増幅すればよいでしょうか。
                                                                      同サイズ基板を2階建てに重ねて、そこにVRとLEDへの土台を設ける格好にする計画です。その基板上に小さな回路なら置けるスペースがあると思いますが。
                                                                      Re^33: LED Cube
                                                                      daruma 2017/10/19 11:55
                                                                      1. [3486] 北海道は山間部では雪だそうですね。こちらも今週日曜からずっと10数℃の気温です。エアコンは暖房にしています。コタツを出したいくらいです。1984年に自転車で北海道を回ったときは、9月末に音威子府あたりでミゾレが降りました。その日は豊富温泉の民宿に泊まりましたが、温泉が石油臭かったです。

                                                                        > NJL7502Lに流れる電流が微小過ぎて繋がっていないと同然ということでしょうか
                                                                        フォトトランジスタは一方向にしか電流が流れないので、VRの代わりにはなりません。

                                                                        CdSは明るさによって抵抗値が変わる素子(双方向に電流が流れる)なのでVRの代わりになります。添付図は、CdSの抵抗値が50kΩから150kΩまで変わったときのLMC555の出力波形をLTspiceで見た結果です。明るくなって抵抗値が下がるとLEDは速く進み、暗くなるとLEDの進行が遅くなります。

                                                                        どうしてもNJL7502を使いたい場合は、NJL7502の出力電流に応じて、LMC555の5pin電圧を変えるという方法もあります。5pin電圧を下げるとLEDは速く進むようになります。
                                                                        Re^34: LED Cube
                                                                        inara1 2017/10/19 18:05 *
                                                                        1. [3487] 関東も北海道並みに寒い昨日今日だそうですね。
                                                                          豊富温泉に泊まりましたか。私も十年余り前に行ったことがあります。石油臭いので有名な温泉で、それを目当てに来る人も多いようです。アトピーに効くと湯治滞在する人たちもいるそうです。

                                                                          > フォトトランジスタは一方向にしか電流が流れないので、VRの代わりにはなりません。
                                                                          CdSと置き換えられるというので単純に期待したんですが、「CdSはVRに置き換えられる→NJL7502LはCdSに置き換えられる→∴VRをCdSと置き換えられる」とはいかないんですね。甘かった。

                                                                          ここはCdSで行くのが無難でしょうか。明日、最大抵抗値2M/1M/500kのCdS3種が秋月から届きます。いろいろ実験してみます。いかにも昔の素子で今日的でないのと、樹脂封入でなくて5mmφの表面がむき出しなのでケース入れがスマートに行かなそうなのとで、NJL7502Lでできるならと思ったんですが。

                                                                          > LMC555の5pin電圧を変えるという方法もあります。
                                                                          今の回路では5pin使っていないですね。大幅に手を入れることになりそうですか。1階基板からピンで2階基板に持って行って2階でなんとかできるといいんですが・・・。

                                                                          やっぱりCdSかな・・・。
                                                                          Re^35: LED Cube
                                                                          daruma 2017/10/19 19:00
                                                                          1. [3488] > 関東も北海道並みに寒い昨日今日だそうですね
                                                                            北海道並なんて言ったら怒られます。

                                                                            豊富温泉は石油目当てで掘ったら温泉が出てきたという経緯だそうなので石油臭いのは当然ですね。あのときは札幌から宗谷岬まで4日かかりました。宿泊したのは、北大(恵迪寮)→滝川(たまねぎ畑で野宿)→塩狩YH→豊富温泉→宗谷岬(バス停)です。日本最北端で野宿というのは痛快でした。

                                                                            >今の回路では5pin使っていないですね。大幅に手を入れることになりそうですか。
                                                                            抵抗とトランジスタとNJL7502を追加しますがスペースはなさそうですね。ちょっと実験してみますが、うまくいっても2号機以降ですね。

                                                                            CdSはいろいろ持っています。Cd(カドミウム)が入っているのに販売しているのが不思議ですが、趣味の部品だとRoHS規制など関係ないのでしょう。
                                                                            Re^36: LED Cube
                                                                            inara1 2017/10/20 05:40
                                                                            1. [3489] NJL7502を使った速度可変回路です。波形は回路シミュレータの結果です。明るくなるとLEDのスピードが落ちます。Re^37: LED Cube inara1 2017/10/20 08:48 *
                                                                              1. [3490] この時間に、今日はお休みですか? ありがとうございます。

                                                                                LMC555まわりをこれに置き換えて、outを4017の14pinに入れればよいのですね。
                                                                                Re^38: LED Cube
                                                                                daruma 2017/10/20 10:01
                                                                                1. [3491] 荷物が届いたので最寄りヤマト営業所に取りに行ってきました。不在再配達も悪いしいつ来るかと待っているのもいやなので、配達予定メールが来たらネットで営業所留めにしてこのようにしています。

                                                                                  CdSの抵抗値をざっと調べてみました。変化がけっこうゆっくりですし、バラツキも大きいと思われますから、たまたま手に取った品の1回きりの試行結果です。
                                                                                  「室内明」は机上の照明下、「室内暗」は手をかざして陰に、「暗」は太い熱収縮チューブをすっぽり被せ、「明」はスマホのLEDライトを直近2cm程からあてました。

                                                                                  特に暗側はスペックからはかなり離れています。おおざっぱに、明るいときは似たり寄ったりで暗くなったときの抵抗値の上がり方に違いがあるといったところのようです。
                                                                                  Re^39: LED Cube
                                                                                  daruma 2017/10/20 12:03 *
                                                                                  1. [3492] いろいろやってみました。
                                                                                    基板左側のLMC555には暗抵抗0.5MΩのCdS、最小抵抗値が結構あるので下駄ばきの固定抵抗は入れず、これでそこそこ変化するのですが調整余地を持たせるために1kΩVR、基板右側のLMC555には暗抵抗2MΩのCdS、下駄ばきの固定抵抗は元のまま10kΩ、調整余地を持たせるために100kΩVR、これがカットアンドトライの落ち着きどころとなりました。
                                                                                    特に左側回路でですが抵抗値最小でさらに早くなるようシフトしたいところですが、このあたり決めているのは6pin(2pin)の10μFでしょうか。
                                                                                    Re^40: LED Cube
                                                                                    daruma 2017/10/20 14:32
                                                                                    1. [3493] 今日はお休みです。平日の日中は職場なので気づきませんでしたが、選挙カーがウルサイです。

                                                                                      CdSはいろいろ実験して調整してください。

                                                                                      抵抗値最小でさらに早くなるようシフトさせるのなら10μFの容量を小さくしてください。1μFにすると10倍速くなります。

                                                                                      こちらはNJL7502と2SC1815を使った回路
                                                                                      http://mpga.jp/akizuki-fan/index.php?mode=image&file=3489.jpg
                                                                                      の実験をしてみましたが、R3は22kΩでなく100kΩくらいが良さそうです。この回路では明るくなると遅くなりますが、明るくなると速くなるようにするには、NJL7502とR3を入れ替えればいいです。
                                                                                      Re^41: LED Cube
                                                                                      inara1 2017/10/20 15:19
                                                                                      1. [3494] >LMC555まわりをこれに置き換えて、outを4017の14pinに入れればよいのですね
                                                                                        darumaさんの回路のLMC555
                                                                                        http://mpga.jp/akizuki-fan/index.php?mode=image&file=3290.jpg
                                                                                        はそのままで、LMC555の5pinに新たに回路(抵抗2本と2SC1815とNJL7502)を付け足すだけです。

                                                                                        今日は15時くらいからSTVラジオ(1440kHz)が良好に入感します。
                                                                                        Re^42: LED Cube
                                                                                        inara1 2017/10/20 15:45
                                                                                        1. [3495] 10μFを小さくするんですね。あとで4.7μFに取り替えてみます。今は弐階の基板を描いています。

                                                                                          > 明るくなると速くなるようにするには、NJL7502とR3を入れ替えればいいです。

                                                                                          なるほど、中点がVRの真ん中端子でその両側端子に相当するわけですね。

                                                                                          > LMC555の5pinに新たに回路(抵抗2本と2SC1815とNJL7502)を付け足すだけです。

                                                                                          3pinと6pinをピンで取り出すのに加えて5pinも2階に持って行って、そこに追加部分を置くんですね。CdSバージョンが終わったら、試作3号機の配線図を描いてみます。

                                                                                          > 今日は15時くらいからSTVラジオ(1440kHz)が良好に入感します。

                                                                                          私は、穴蔵のPCでradiko.jpからSTVを聞いています。机の上が狭いので便利です。radiko.jpでよそのエリアの局を聴くには有料の登録をしなきゃならないので、電波が入感すればそれに越したことはありませんね。
                                                                                          Re^43: LED Cube
                                                                                          daruma 2017/10/20 17:04
                                                                                          1. [3496] 2階基板の配線図が描けました。
                                                                                            ノンスルーホールの両面基板を使い、1階の連結ピンに対応する丸ピンソケットを裏側に付けます。したがって、ピンからの配線は表側に張ります。VR等の部品は表側に付け裏で配線します。
                                                                                            LED群からの足は丸ピンを付けて丸ピンソケットで受けます。

                                                                                            基板に組んだものをケース背面から差し入れてVRのナットで取り付けます。

                                                                                            工作がうまくいくかどうか、これでやってみます。
                                                                                            Re^44: LED Cube
                                                                                            daruma 2017/10/20 19:02 *
                                                                                            1. [3497] 2階基板ができて試作2号機の完成です。DCジャックと隣の丸ピンソケットはわずかにスペースが足りなかったので、ジャック側面をサンドペーパーで削りました。Re^45: LED Cube daruma 2017/10/21 17:01 *
                                                                                              1. [3498] 連結するとこのようになります。背の低いパーツを使ったのでこの高さにおさまりました。

                                                                                                LMC555のコンデンサは、左回路だけ4.7μFにしました。右回路は10μFのままとしました。
                                                                                                左回路は早くなったぶん下駄ばきの1kΩを復活しましたが、もう少し小さいほうがいいかもしれません。
                                                                                                ※ 結局470Ωにしました。

                                                                                                動作テストも合格しました。

                                                                                                さて、いよいよCube部分の製作です。
                                                                                                Re^46: LED Cube
                                                                                                daruma 2017/10/21 17:07 *
                                                                                                1. [3499] Cube部分よりも先にこっちに手をつけました。
                                                                                                  基板の固定用に四隅を空けてあったのですが、リアパネルの固定に右下隅だけ使うことにして、このように描いてみました。

                                                                                                  CdS版とそろえて「暗くなると遅くなる」にするため、NJL7502Lと抵抗とをチェンジしましたが、これでいいでしょうか。NJL7502Lの極性はこれでいいですか。
                                                                                                  抵抗は100kΩにしていますが、これはスピードを見てカットアンドトライでしょうか。VRは2個とも50kΩに変更ですか。
                                                                                                  VRと直列の抵抗はメイン基板にあるので、前作のまま470Ωと10kΩにしてありますが、これらは1kΩにしたほうがいいですか。

                                                                                                  前バージョンでVRが基板から突出していたので1列下げました。
                                                                                                  Re^47: LED Cube
                                                                                                  daruma 2017/10/22 10:50 *
                                                                                                  1. [3500] NJL7502を使った回路
                                                                                                    http://mpga.jp/akizuki-fan/index.php?mode=image&file=3489.jpg
                                                                                                    では、R2は22kΩのままで、R3を100kΩに変更しました。R2を100kΩにすると明るくなったときのスピードが遅くなりますが、スピードはVRで広範囲に変えられるのでカットアンドトライで決めてください。
                                                                                                    Re^48: LED Cube
                                                                                                    inara1 2017/10/22 13:04
                                                                                                    1. [3501] 1週間余りのご無沙汰でした。

                                                                                                      NJL7502L版はスイッチの調達に手間取ったりで一時停止しています。
                                                                                                      LED群を作りました。

                                                                                                      まず板に穴を開けて治具(冶具?)を作りました。これで水平ラインは作業が楽になりました。9本のカソードを「山」の字型に繋げば事足りるところ、構造強度を持たせるのに「田」の字形に配線しようと考えたのですが、手間を少し省いて「日」の字形にしました。カソードのリードを隣へ隣へと繋いで行って最後に中央の1個に1本だけ付け足してできあがりです。
                                                                                                      垂直ラインはアノードを縦に注ぎ足して最下層の足が基板への差し込みピンとなります。

                                                                                                      なんとか形になりましたが、「頑張ってハンダ付けしました」程度のできで仕上げ品質としてはいまひとつです。

                                                                                                      「田」の字形の枠組みをハンダ以外で整然と作っておいてそこに各カソードを留め付けるようにできれば工作精度はもっと上がると思うのですが、なにか方法はないかと考えています。ステンレス線をスポット溶接するとか、金網のように交点をねじって固定するとか。

                                                                                                      垂直ラインを整然とするのはもっと大変そうです。ステンレス線に各アノードを留め付ければ直線性は保てると思うのですが、LEDを上向きに付ける場合、柱を樹脂外周の外にしなければならないのでやっかいです。

                                                                                                      例のリードが左右に出た異形のLEDを使えばなにかいい形が作れるかもしれません。
                                                                                                      Re^49: LED Cube
                                                                                                      daruma 2017/10/31 13:36 *
                                                                                                      1. [3502] 試作2号機(CdS版)に取り付けて試運転しました。

                                                                                                        うまく動きはしましたが、改善課題が。

                                                                                                        LEDを上向きに付けているので、直下のLEDに照らされて真上のLEDも点灯しているように見えます。在庫の都合でクリア樹脂のLEDを使ったのですが、乳白樹脂のものにすれば抑えることができるかもしれません。また、明るさをやや控えればいくらか軽減できます。
                                                                                                        LEDを真上ではなく少し斜め外側向きに付けるようにすればこの問題は起こらないわけですが、せっかく作ったひとつだけの実験機を曲げたりねじったりするのもためらわれて手を出していません。
                                                                                                        例の異形LEDを使って作ることを考えてみます。

                                                                                                        ところで、そもそも動機となった
                                                                                                        https://www.youtube.com/watch?v=AUAEgxfq36A
                                                                                                        を改めて見てみたのですが、点灯パタンが周期的に変わっています。この回路では、VRの調整で決めたパタンに固定されるんですよねえ。で、明るさに反応するようにと考えたわけですが・・・。
                                                                                                        Re^50: LED Cube
                                                                                                        daruma 2017/10/31 14:10 *
                                                                                                        1. [3506] 試作3号機(NJL7502L版)ができました。
                                                                                                          明るさ調整は半固定にして1階基板に置きました。ここのピンが無くなったのでDCジャックと電源スイッチを無理なく置くことができました。

                                                                                                          スピードにかかわる定数は、とっかえひっかえの末、電解コンは両方とも4.7μF、抵抗は左回路は1.5kΩ+100kΩVR、右回路は10kΩ+100kΩVRに落ち着きました。

                                                                                                          明るさによる変化があまり大きくありません。少し変わる程度です。R2(エミッタからGND)は22kΩ、R3(コレクタベース間)は100kΩにしています。
                                                                                                          > R2を100kΩにすると明るくなったときのスピードが遅くなりますが、
                                                                                                          これは全体に遅い方へシフトするのですか。
                                                                                                          変化幅を大きくすることはできないでしょうか。
                                                                                                          Re^51: LED Cube
                                                                                                          daruma 2017/11/03 11:29 *
                                                                                                          1. [3507] > 明るさによる変化があまり大きくありません
                                                                                                            LMC555の5pin電圧が4V〜5Vのときに発振周期が大きく変わります。普通の明るさのときに5pin電圧が4Vくらい、明るく(暗く)なったときに4.8Vくらいになるようにうまく調整すれば変化幅が大きくなります。
                                                                                                            Re^52: LED Cube
                                                                                                            inara1 2017/11/04 14:52 *
                                                                                                            1. [3508] 5pin電圧がそのようになる点をVRでうまく見つければいいのでしょうか。5pin電圧を見ながらVRを動かしてみようと思います。
                                                                                                              今は、ステンレス線でキューブを形よく作ろうと苦心しているところです。
                                                                                                              Re^53: LED Cube
                                                                                                              daruma 2017/11/04 15:12
                                                                                                              1. [3509] 周囲の明るさが変わったときに5pin電圧が4V〜5Vの範囲になるようにしてください。周囲の明るさによっては4Vを下回ってしまうかもしれませんが、全ての明るさに対してその範囲に収めることは難しいです。電源電圧が5Vなので、上側が5Vを超えることはないです。Re^54: LED Cube inara1 2017/11/04 16:32
                                                                                                                1. [3510] まだやってみていないのですが、その範囲にできるだけ収まるように抵抗値を調整して、その設定でのスピードについては電解コンのほうで調整すればいいのですか。

                                                                                                                  ステンレス線用の冶具がなんとかできました。
                                                                                                                  Re^55: LED Cube
                                                                                                                  daruma 2017/11/04 16:46
                                                                                                                  1. [3511] ふたつの555とも照明下の明るい状態で0.9V程度、手をかざして陰になると4.05V程度になります。スピードは目に見えてはっきり変化します。(暗くなると遅くなる形にNJL7502Lを入れてあります)
                                                                                                                    以前の実験で抵抗値を固めるのに大きいVRを付けていたので、変化の裾野あたりで変化幅が小さかったのですね。いい具合です。
                                                                                                                    Re^56: LED Cube
                                                                                                                    daruma 2017/11/05 10:23
                                                                                                                    1. [3512] うまくいきましたか。屋内でも屋外でも周囲の明るさは速く変化するものではないので、実環境でのスピードは急には変わらないですね。暗くなると遅くなるのは感覚的に合っていると思います。

                                                                                                                      光センサをLEDに近づけるとどうなりますかね。速くなったまま安定してしまうのでしょうか。

                                                                                                                      以前、darumaさんは、光を渡せるキャンドルという、LEDでろうそくのようなものを作ろうとしていましたが、1/fゆらぎのように、ランダムに、ゆっくりと明るさやスピードが変わるようにできると面白いかもしれません。

                                                                                                                      秋月に三端子LEDキャンドルIC
                                                                                                                      http://akizukidenshi.com/catalog/g/gI-08752/
                                                                                                                      というのがあります(手元にあります)。これにLEDをつなぐと明るさがランダムに変わるのですが、ゆっくりと明滅するのでなく、発光と消灯の2パターンだけで、しかも、10秒周期くらいで同じ明滅パターンの繰り返しなので、全然ローソクっぽくないです。

                                                                                                                      LEDの光をやわらげるには拡散キャップ
                                                                                                                      http://akizukidenshi.com/catalog/g/gI-01120/
                                                                                                                      というのを被せればいいです(これも手元にあります)。お坊さんの頭が光っているような感じになりますが、集光性はなくなるので、上側のLEDが照らされるようなことはなくなるはずです。
                                                                                                                      Re^57: LED Cube
                                                                                                                      inara1 2017/11/06 17:20
                                                                                                                      1. [3513] ステンレス線作戦はうまく行かず苦労していました。ステンレス用フラックスとヤニ無しハンダのセットがホームセンターに有ったので買ってきましたが、大き目のコテで大胆に付けることはできるものの、LEDの足をちまちまと付けようとすると流れてくれず悪戦苦闘、そのうちにフラックスの残渣のような黒いこびりつきが生じてなおさらダメという状態です。ある程度大きな接合面をエイッとつけるのに適しているようです。
                                                                                                                        なんとかいちばん下の層だけ作りましたが、労多くして仕上がりは大したことなく、これならばと当初のリードを曲げて注ぎ足していく作戦に戻ろうと思います。縦のライン用の冶具も作ろうと思います。くぼみのある枕を等間隔に置くイメージです。

                                                                                                                        > 光センサをLEDに近づけるとどうなりますかね。速くなったまま安定してしまうのでしょうか。

                                                                                                                        LEDの光を拾ってはいけないと、センサは正面パネルに前向きで付けるつもりで、とりあえず今は首を曲げて外向きにしています。「どうなるか」はやってみるべきですね。さっそくやってみました。個々のLEDが一瞬光るだけなので影響は受けないようです。スピードを速くして盛大に点いているように見える状態にもしてみましたが、知らん顔しています。手で暗がりにしてやるくらいの変化でないと関知しないようです。
                                                                                                                        これなら、天面に付けてもいいのかもしれません。そのほうが工作はしやすいのです。でも、まあ計画どおり正面向きにします。

                                                                                                                        > 以前、darumaさんは、光を渡せるキャンドルという、LEDでろうそくのようなものを

                                                                                                                        はい、具体化はしませんでしたが。
                                                                                                                        そうなんです。ゆっくり変化していくようにしたいんです。試作してみて、調整したスピードでずっと一定なんだとわかったのですが、先日も書いたように、
                                                                                                                        > ところで、そもそも動機となった
                                                                                                                        > https://www.youtube.com/watch?v=AUAEgxfq36A
                                                                                                                        > を改めて見てみたのですが、点灯パタンが周期的に変わっています。
                                                                                                                        なので、どうやっているんだろうと不思議です。まさか、外出しのケーブルの先にVRが付いていて手動で変えているなんてことはないと思いますが。
                                                                                                                        あちらの回路には、A,B,Cトランジスタのコレクタに電解コンが入ってますよね。これはどういう働きなんでしょう。

                                                                                                                        拡散キャップも考えたんですが、ぼんやりしてしまうかなと思ったり・・・。LEDの底面に不透明な塗料をチョンと付けてみようかなと思いつつまだやっていません。

                                                                                                                        今週は仕事がたてこんで、平日取りかかれないのが痛いです。
                                                                                                                        Re^58: LED Cube
                                                                                                                        daruma 2017/11/06 18:14
                                                                                                                        1. [3514] >> あちらの回路には、A,B,Cトランジスタのコレクタに電解コンが入ってますよね。これはどういう働きなんでしょう。

                                                                                                                          OKWAVEでinara1さんから質問者さんへの回答では不要とのことですが、無意味無用なのですか?元回路の作者さんはどんな意図で入れたんでしょうね。

                                                                                                                          点灯パタンが移り変わっていくようには、PICを使えば自由自在なんでしょうが、555+4017回路では無理なんでしょうか。明るさ感応型で変化を持たせるのが正解ですかね。
                                                                                                                          Re^59: LED Cube
                                                                                                                          daruma 2017/11/08 11:32
                                                                                                                          1. [3515] >あちらの回路には、A,B,Cトランジスタのコレクタに電解コンが入ってますよね。これはどういう働きなんでしょう。
                                                                                                                            LED Cubeの上中下が切り替わったときに、残像を残すためでしょうが、10μFくらいではほとんど効果はないと思います。上中下の切り替わりを非常に速くすれば効果が見えてくるかもしれません。実験してみてはいかがでしょうか。

                                                                                                                            点灯パタンが移り変わっていく関連動画がありますがPICを使ったものでしょう。USBケーブルなどで外部からコントロールしていなくて、ICが1個だけという構成だとPICでしょう。

                                                                                                                            555+4017回路では、いろいろな発光パターンをDIPスイッチなどで作って、そのパターンを切り替える方法も可能ですが、回路が複雑になります。以前、motomuraさんの要望で作った織機のパターンはその方法です。
                                                                                                                            Re^60: LED Cube
                                                                                                                            inara1 2017/11/09 02:56
                                                                                                                            1. [3517] 変速にしたいなら、クロックだけマイコンで生成すればよいのでは?

                                                                                                                              まあ、マイコンを使うんなら、PIC16F87が1個あれば、4017やドライバーTRが無くても似たようなものが作れます。

                                                                                                                              面倒な初期設定はこのあたりでしょうか。
                                                                                                                              ;LED CUBE駆動(ソース動作) PIC16F87
                                                                                                                              ;
                                                                                                                              ;
                                                                                                                              ; PORTA-1(18) A COMON
                                                                                                                              ; PORTA-0(17) 9
                                                                                                                              ; PORTA-7 OSC(16) Input Only(使用しない場合プルアップ)
                                                                                                                              ; PORTA-6 OSC(15) (使用しない場合プルアップ)
                                                                                                                              ; 電源+(14)
                                                                                                                              ; PORTB-7(13) 8
                                                                                                                              ; PORTB-6(12) 7
                                                                                                                              ; PORTB-5(11) 6
                                                                                                                              ; PORTB-4(10) 5

                                                                                                                              ; PORTB-3(9) 4
                                                                                                                              ; PORTB-2(8) 3
                                                                                                                              ; PORTB-1(7) 2
                                                                                                                              ; PORTB-0(6) 1
                                                                                                                              ; VSS(-)(5)
                                                                                                                              ; PORTA-5(4) MCLR(要プルアップ)
                                                                                                                              ; PORTA-4(3) (オープンドレイン 要プルアップ)
                                                                                                                              ; PORTA-3(2) C COMON
                                                                                                                              ; PORTA-2(1) B COMON

                                                                                                                              ;
                                                                                                                              list p=16f87
                                                                                                                              #include <p16f87.inc>

                                                                                                                              ERRORLEVEL -207,-302,-306
                                                                                                                              ;PDF132P
                                                                                                                              __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
                                                                                                                              __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_ON

                                                                                                                              ;******************************
                                                                                                                              ; 変数レジスタ割付定義
                                                                                                                              ;******************************

                                                                                                                              DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
                                                                                                                              CNT1 EQU 21H ;タイマ用カウンタ
                                                                                                                              CNT2 EQU 22H
                                                                                                                              CNT3 EQU 23H
                                                                                                                              CNT4 EQU 24H
                                                                                                                              CNT5 EQU 25H
                                                                                                                              DPCNT EQU 26H
                                                                                                                              FASE EQU 27H
                                                                                                                              DPCNTW EQU 28H
                                                                                                                              MDCNT EQU 29H
                                                                                                                              TEMP EQU 2AH

                                                                                                                              ORG 00H

                                                                                                                              ;************************************
                                                                                                                              ; 入出力ピンモード初期化
                                                                                                                              ;************************************

                                                                                                                              PORT_INI

                                                                                                                              ;OSCON
                                                                                                                              ;
                                                                                                                              ;bit7 NO USE
                                                                                                                              ;bit6-4 INTRC CLOCK 000=31.25KHz 001=125KHz 以降1ビット増加毎に周波数が倍になる
                                                                                                                              ;bit3 OSCT オシレータ・スタートアップ・タイムアウト状態に、
                                                                                                                              ;1=優先クロックを使う 0=T1OSC or INTRC を使う
                                                                                                                              ;bit2 IOFS INTOSC Frequency Stable bit
                                                                                                                              ;1 = 安定
                                                                                                                              ;0 = 不安定
                                                                                                                              ;
                                                                                                                              ;bit1-0 Oscillator Mode Select bits
                                                                                                                              ;
                                                                                                                              ;00 = Oscillator mode defined by FOSC(2:0) FOSCレジスタ(2-0ビット)によってdefine(定義)する
                                                                                                                              ;01 = T1OSC is used for system clock タイマー1を使う
                                                                                                                              ;10 = Internal RC is used for system clock 内蔵RCを使う
                                                                                                                              ;11 = Reserved 予約済み

                                                                                                                              BSF STATUS,RP0 ;Set page 1

                                                                                                                              MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
                                                                                                                              MOVWF OSCCON ;BANK1

                                                                                                                              MOVLW B'00000000' ; 0-7 OUTPUT
                                                                                                                              MOVWF TRISB ;PortB set
                                                                                                                              MOVLW B'11110000' ;RA0〜3以外IN
                                                                                                                              MOVWF TRISA ;PortA set

                                                                                                                              BSF OPTION_REG,7 ;BANK1 0でプルアップ有効

                                                                                                                              MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
                                                                                                                              MOVWF CMCON ; コンパレータOFF
                                                                                                                              BCF STATUS,RP0 ;Set Page 0

                                                                                                                              CLRF PORTA
                                                                                                                              CLRF PORTB ;all clear

                                                                                                                              BSF PORTA,1 ;桁コントロール クリア済み
                                                                                                                              BSF PORTA,2 ;桁コントロール クリア済み
                                                                                                                              BSF PORTA,3 ;桁コントロール クリア済み




                                                                                                                              単にクロックだけをマイコンで生成するなら12F609が1個で、555の2個分のクロックを生成できます。

                                                                                                                              一応7段階変速になっていますが、動作確認をしていないので動くかどうかは判りません。

                                                                                                                              時間変化型12F609用可変クロック出力
                                                                                                                              :020000000528D1
                                                                                                                              :08000800090083169F010A3074
                                                                                                                              :10001000850000309500811383129A131A139A12E7
                                                                                                                              :100020001A169A111A159A101A1099171913991667
                                                                                                                              :10003000191299151915991019100B1783168C118F
                                                                                                                              :1000400083128C118B1385010B108B11CD01CD14F4
                                                                                                                              :10005000F030C900CD1C0515952005110930C700E9
                                                                                                                              :10006000CD1C0514CD1095200510D320C70B3228C8
                                                                                                                              :10007000C90B2B287830C9000515952005110930CA
                                                                                                                              :10008000C700051495200510D920C70B4128C90BBE
                                                                                                                              :100090003C283C30C9000515952005110930C700E2
                                                                                                                              :1000A000051495200510DF20C70B5028C90B4B28DD
                                                                                                                              :1000B0002830C9000515952005110930C700051421
                                                                                                                              :1000C00095200510E520C70B5F28C90B5A2814306E
                                                                                                                              :1000D000C9000515952005110930C70005149520A4
                                                                                                                              :1000E0000510EB20C70B6E28C90B69280C30C9001E
                                                                                                                              :1000F0000515952005110930C70005149520051038
                                                                                                                              :10010000F120C70B7D28C90B78280830C9000515D8
                                                                                                                              :10011000952005110930C700051495200510F7201A
                                                                                                                              :10012000C70B8C28C90B8728282800000000000076
                                                                                                                              :1001300000000000000000000000000000000000BF
                                                                                                                              :1001400000000000000000000000000000000000AF
                                                                                                                              :10015000000000000000000000000000000000009F
                                                                                                                              :100160000000000008000930C0000000000000008E
                                                                                                                              :10017000000000000000000000000000C00BB528D7
                                                                                                                              :100180000800B320B320B320B320B32008000A3006
                                                                                                                              :10019000C300B320C30BC92808003230C300B3200A
                                                                                                                              :1001A000C30BCF2808000530C400CD20C40BD528D0
                                                                                                                              :1001B00008000A30C400CD20C40BDB2808006430DE
                                                                                                                              :1001C000C400C720C40BE1280800FA30C400C720CF
                                                                                                                              :1001D000C40BE72808006430C400CD20C40BED2810
                                                                                                                              :1001E00008009630C400CD20C40BF3280800C830A6
                                                                                                                              :0A01F000C400CD20C40BF92808005C
                                                                                                                              :02400E00443F2D
                                                                                                                              :00000001FF

                                                                                                                              回数変化型12F609用可変クロック出力
                                                                                                                              :020000040000FA
                                                                                                                              :020000000528D1
                                                                                                                              :08000800090083169F010A3074
                                                                                                                              :10001000850000309500811383129A131A139A12E7
                                                                                                                              :100020001A169A111A159A101A1099171913991667
                                                                                                                              :10003000191299151915991019100B1783168C118F
                                                                                                                              :1000400083128C118B1385010B108B11CD01CD14F4
                                                                                                                              :100050000430C900CD1C0515952005110930C700D5
                                                                                                                              :10006000CD1C0514CD1095200510D320C70B3228C8
                                                                                                                              :10007000C90B2B280430C90005159520051109303E
                                                                                                                              :10008000C700051495200510D920C70B4128C90BBE
                                                                                                                              :100090003C280430C9000515952005110930C7001A
                                                                                                                              :1000A000051495200510DF20C70B5028C90B4B28DD
                                                                                                                              :1000B0000430C9000515952005110930C700051445
                                                                                                                              :1000C00095200510E520C70B5F28C90B5A2804307E
                                                                                                                              :1000D000C9000515952005110930C70005149520A4
                                                                                                                              :1000E0000510EB20C70B6E28C90B69280430C90026
                                                                                                                              :1000F0000515952005110930C70005149520051038
                                                                                                                              :10010000F120C70B7D28C90B78280430C9000515DC
                                                                                                                              :10011000952005110930C700051495200510F7201A
                                                                                                                              :10012000C70B8C28C90B8728282800000000000076
                                                                                                                              :1001300000000000000000000000000000000000BF
                                                                                                                              :1001400000000000000000000000000000000000AF
                                                                                                                              :10015000000000000000000000000000000000009F
                                                                                                                              :100160000000000008000930C0000000000000008E
                                                                                                                              :10017000000000000000000000000000C00BB528D7
                                                                                                                              :100180000800B320B320B320B320B32008000A3006
                                                                                                                              :10019000C300B320C30BC92808003230C300B3200A
                                                                                                                              :1001A000C30BCF2808000530C400CD20C40BD528D0
                                                                                                                              :1001B00008000A30C400CD20C40BDB2808006430DE
                                                                                                                              :1001C000C400C720C40BE1280800FA30C400C720CF
                                                                                                                              :1001D000C40BE72808006430C400CD20C40BED2810
                                                                                                                              :1001E00008009630C400CD20C40BF3280800C830A6
                                                                                                                              :0A01F000C400CD20C40BF92808005C
                                                                                                                              :02400E00443F2D
                                                                                                                              :00000001FF

                                                                                                                              7ピンの9クロックに対して5ピンが1クロック出力されます。

                                                                                                                              初期設定はこれで
                                                                                                                              ;変速クロック発生モジュール PIC12F609/615
                                                                                                                              ; 電源−(8)
                                                                                                                              ; GPIO-0/CIN+ (7) セグメント切り換えクロック出力
                                                                                                                              ; GPIO-1/CIN0-(6) 判定入力
                                                                                                                              ; GPIO-2/COUT (5) コモン切り換えクロック出力
                                                                                                                              ; GPIO-3/MCLR (4) (入力ビット)
                                                                                                                              ; GPIO-4/CIN1-(3) OSC用予備
                                                                                                                              ; GPIO-5/OSC (2) OSC用予備
                                                                                                                              ; 電源+(1)

                                                                                                                              list P=PIC12F609
                                                                                                                              include "P12F609.INC"
                                                                                                                              ;PDF96P CONFIG
                                                                                                                              __CONFIG _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTOSCIO & _IOSCFS_4MHZ

                                                                                                                              ;メモリー設定
                                                                                                                              CNT1 EQU 40H
                                                                                                                              CNT2 EQU 41h
                                                                                                                              CNT3 EQU 42h
                                                                                                                              CNT4 EQU 43h
                                                                                                                              CNT5 EQU 44h
                                                                                                                              CNT6 EQU 45h
                                                                                                                              CNT7 EQU 46h
                                                                                                                              U1CNT EQU 47h
                                                                                                                              U2CNT EQU 48h
                                                                                                                              STGCNT EQU 49H
                                                                                                                              PCN EQU 4AH
                                                                                                                              ZEROCNT EQU 4BH
                                                                                                                              PCNT EQU 4CH
                                                                                                                              MODE EQU 4DH

                                                                                                                              ORG 00H
                                                                                                                              GOTO INIT

                                                                                                                              ORG 04H
                                                                                                                              RETFIE

                                                                                                                              ;初期設定
                                                                                                                              INIT BSF STATUS,RP0 ;SET BANK1

                                                                                                                              CLRF ANSEL ;DIGITAL I/O INPUT SET at BANK1(12F609/615) PDF35P
                                                                                                                              ; BSF ANSEL,1 ;ANALOG I/O INPUT GPIO,1 SET at BANK1(12F609/615) PDF35P

                                                                                                                              MOVLW B'001010' ;bit6-7は使用されていない GPIO-0,2,4-5を出力
                                                                                                                              MOVWF TRISIO ;I/Oピンの入出力方向を決める(BANK1)

                                                                                                                              MOVLW B'000000' ; プルアップするピンを選択(GP3は指定しても無効)
                                                                                                                              MOVWF WPU ; プルアップするピンを個別に設定(BANK1)
                                                                                                                              BCF OPTION_REG,7 ;(BANK1); 入力ピンのプルアップ全体の設定(最上位のbit7を0で有効)

                                                                                                                              BCF STATUS,RP0 ;SET BANK0

                                                                                                                              ;CMCON0(BANK0)の設定 58P
                                                                                                                              BCF CMCON0,7 ;コンパレータ無効
                                                                                                                              BCF CMCON0,6 ;判定状態内部出力
                                                                                                                              BCF CMCON0,5 ;判定をI/Oピン出力 0=しない
                                                                                                                              BSF CMCON0,4 ;反転ビット 1=反転 Vref<CIN- 時にBIT6がHIGHに
                                                                                                                              BCF CMCON0,3 ;未定義
                                                                                                                              BSF CMCON0,2 ;非反転入力の接続設定 1=内部基準電圧を使う
                                                                                                                              BCF CMCON0,1 ;未定義
                                                                                                                              BCF CMCON0,0 ;コンパレータチャンネルセレクトビット 0=CIN0-を使用 1=CIN1-を使用

                                                                                                                              ;VRCONの設定(BANK0) TTL入力 VDD2〜4.5V時 HIGH判定電圧=0.25×VDD+0.8V LOW判定電圧0.15×VDD
                                                                                                                              BSF VRCON,7 ;0 固定基準電圧  1 電源電圧基準による基準電圧
                                                                                                                              BCF VRCON,6 ;未定義
                                                                                                                              BSF VRCON,5 ;基準電圧レンジ選択 1=LOWレンジ (VR(0:3)/24)×電源電圧
                                                                                                                              BCF VRCON,4 ;0.6V固定基準電圧有効ビット 0=無効 1=有効

                                                                                                                              BSF VRCON,3 ;基準電圧指定 HIGHレンジ VDD/4+(VR(0:3)/32)×VDD
                                                                                                                              BSF VRCON,2 ;(1111=15)/24×VDD LOWレンジ最高値
                                                                                                                              BCF VRCON,1 ;15/24=0.625 VDD(2)×0,625=1.25V
                                                                                                                              BCF VRCON,0 ;14/24=0.59  12/24=0.5 電源電圧の50%をしきい値に=1100

                                                                                                                              BSF INTCON,PEIE ;(BANK0)周辺機器割り込み有効

                                                                                                                              BSF STATUS,RP0 ;SELECT BANK1
                                                                                                                              BCF PIE1,CMIE ;(BANK1)コンパレータ割り込み無効
                                                                                                                              BCF STATUS,RP0 ;SELECT BANK0

                                                                                                                              BCF PIR1,CMIF ;(BANK0)コンパレータ割り込みフラグクリア

                                                                                                                              BCF INTCON,GIE ;BANK0 全割り込み禁止
                                                                                                                              CLRF GPIO ;GPIO をクリアする

                                                                                                                              BCF INTCON,GPIF ;IO割り込みフラグクリア
                                                                                                                              BCF INTCON,GPIE ;IO割り込み無効
                                                                                                                              Re^61: LED Cube
                                                                                                                              なんじゃらほい 2017/11/09 20:06
                                                                                                                              1. [3518] コンデンサは残像のためですか。それなら納得できます。なにかスピードに遅れを生み出してそれが累積することでスピードが変わるようなことなのかと考えたのですが、555が送り出すクロックに影響はしませんものね。この回路では点灯パタンが移り変わることはないのですね。
                                                                                                                                してみると、
                                                                                                                                https://www.youtube.com/watch?v=AUAEgxfq36A
                                                                                                                                の動画は、提示されている回路のとおりではないということになりましょうか。あるいは、外出しケーブルは電源ではなくVRが付いていて撮影中に変化させているとか・・・。動画に繋ぎ合わせた様子は見られないし。
                                                                                                                                555と4017でという作例の中でこれはパタン変化するのかと思ったのですが、・・。
                                                                                                                                明るさで変化でするようにというのはひと味加えるという意味では正解でしたね。

                                                                                                                                Cubeその2を作りました。リード線を折り曲げる細工を少なくすれば歪みも少なくできるだろうと、配列を変えました。アノードの柱を外側にして、カソードを内側で格子にしてみました。四隅の内側にLEDを置くので小さくなってしまいますが、工作はしやすく仕上がりも比較的よくなりました。でも、完成度高いものではありません。難しいです。
                                                                                                                                乳白樹脂のLEDを使って、あの「直下から照らされる」問題は解決しました。LED間が近くなったので3mmφのほうがよさそうですが、手もちに3mmφ乳白のものがなかったので、こんな感じです。
                                                                                                                                大きさ的には、前作のカソード格子を外に出すほうがよいかもしれません。

                                                                                                                                さて、なんじゃらほいさんお久しぶりです。またお世話になります。

                                                                                                                                クロックだけPICで作るということは、4017と併用するということですよね、せっかくPICを使うなら併用無しでいきたいと思います。12F609は、以前買っておくならと紹介された中に有ったので持っているのですが。

                                                                                                                                PIC16F87を調達すればPIC版がなんとかなるでしょうか。3x3x3を越える例えば5x5x5などになるとカウンタICでは現実的でないので、せっかくPIC版を作るなら5x5x5をと思うのは私にはハードル高すぎでしょうか。ポートをたくさん持っているPICを使って、そのぶんプログラムはたいへんになりますか?

                                                                                                                                ・PIC版をブレッドボードで作る。
                                                                                                                                ・プログラムを作っ(ていただい)て、変化パタンのよいパラメータを加減する
                                                                                                                                ・変化の面白いパタンをいくつか循環させるプログラムにする。
                                                                                                                                ・かたまったら、基板で実作する。
                                                                                                                                と、こんな段取りでいいでしょうか。
                                                                                                                                Re^62: LED Cube
                                                                                                                                daruma 2017/11/10 14:45 *
                                                                                                                                1. [3519] >せっかくPIC版を作るなら5x5x5をと思うのは私にはハードル高すぎでしょうか。
                                                                                                                                  >ポートをたくさん持っているPICを使って、そのぶんプログラムはたいへんになりますか?

                                                                                                                                  所詮はLEDチカチカの延長なので、単純なものだけならそうでもないでしょうが、複雑な点灯パターンを作ろうとすると、厄介になります。

                                                                                                                                  結局はどのようなもの(複雑さの)を作るか次第でしょうね。

                                                                                                                                  混乱を最小限に125個を制御するのには25×5でやる必要があるので最低でも40ピンクラスのデバイスが必要です。
                                                                                                                                  http://akizukidenshi.com/catalog/g/gI-02241/

                                                                                                                                  手間を掛けて極限的ポート節約にチャレンジする気なら5×5×5のマトリックスで20ピン1個という可能性もなきにしもあらずですが、相当の事前検討が必要です。



                                                                                                                                  >・PIC版をブレッドボードで作る。

                                                                                                                                  ICソケットを使いたくないなら、この流れでしょうか。

                                                                                                                                  ICSP用の配線をつけていきなり実作でも良いと思います。
                                                                                                                                  https://synapse.kyoto/glossary/glossary.php?word=ICSP

                                                                                                                                  http://www.picfun.com/icsp02.html
                                                                                                                                  Re^63: LED Cube
                                                                                                                                  なんじゃらほい 2017/11/10 21:00
                                                                                                                                  1. [3520] 前作のスピード加減を何パタンか書き込んでそれを循環させる発想でいましたが、確かにスピード調整にとらわれずさまざまなパタンを作ることができるのですね。でも、おもしろいパタンを作り出すのがたいへんそうです。

                                                                                                                                    3x3x3は555+4017回路ですでにできたので、PIC版はもう少し大きいものでと考えたのですが、3x3x3で変化パタン多様版のほうがとっつきやすいようです。それでいこうかなと思い始めました。キューブ工作もLED数が多くなるときれいに仕上げるのがますますたいへんになりそうですし。

                                                                                                                                    基板が現在の延長だと2階建てなので、ICSPのピンを設けて抜き差しするように配置するのがきついかなと思うのですが、それがいけるならそのほうがいいです。
                                                                                                                                    Re^64: LED Cube
                                                                                                                                    daruma 2017/11/12 09:03
                                                                                                                                    1. [3521] > 3x3x3は555+4017回路ですでにできたので、PIC版はもう少し大きいものでと考えたのですが、

                                                                                                                                      28ピンで4X4X4というのもあるかと思いますが、最初は3X3で行く方がいいでしょうね。



                                                                                                                                      とりあえず、18ピン用の参考回路図をあげますが、ICソケットを使うことをためらわなければ、点線で書かれたICSP用の配線すら不要です。

                                                                                                                                      > 基板が現在の延長だと2階建てなので、

                                                                                                                                      マイコン版なら、むしろ無理矢理2階建てにするの?・・・という感じですね。
                                                                                                                                      4017版と同様+速度可変程度の機能で良ければ上記回路で十分のはずです。

                                                                                                                                      複数のLEDを同時点灯させて、より複雑なパターンを作りたい場合で、上記のようにABCのトランジスタを省略する場合は、ダイナミック点灯にして実際には同時点灯させないか、セグメント電流を2.5mA(ポート許容値の25mA÷同時点灯個数)以下に抑えるという条件付きになります。
                                                                                                                                      Re^65: LED Cube
                                                                                                                                      なんじゃらほい 2017/11/12 15:17 *
                                                                                                                                      1. [3522] 16F84Aと16F84A-201Pはもっていますが16F87はありません。16F87を買います。PIC16F87-I/Pでいいんですよね。

                                                                                                                                        これだけの回路なら、これまで同様19穴19列の1枚にLED用のピンソケットも含めいれることができそうですね。配線図を描いてみます。ICSPのピンも入れて。

                                                                                                                                        LED1個を2.5mA以下に抑えるのはちょっと苦しいと思います。トランジスタを入れて1枚基板になんとかなればいいんですが。
                                                                                                                                        ダイナミック点灯にできればうれしいです。電流制限抵抗も1個でそれを半固定VRにできますし。
                                                                                                                                        Re^66: LED Cube
                                                                                                                                        daruma 2017/11/12 18:14
                                                                                                                                        1. [3523] とりあえず、参考回路図でのサンプルファイルをあげます。

                                                                                                                                          HEXファイル
                                                                                                                                          :020000040000FA
                                                                                                                                          :10000000831660308F0000308600F0308500811745
                                                                                                                                          :10001000831207309C00850186018514051585151E
                                                                                                                                          :100020001128AD01AD0A01302D02031D1B288510DA
                                                                                                                                          :1000300005158515332802302D02031D232885144C
                                                                                                                                          :1000400005118515332803302D02031D2B28851437
                                                                                                                                          :1000500005158511332804302D02031D54288514FD
                                                                                                                                          :100060000511851533280510860106147D208601AB
                                                                                                                                          :1000700086147D20860106157D20860186157D204B
                                                                                                                                          :10008000860106167D20860186167D2086010617CC
                                                                                                                                          :100090007D20860186177D20860105147D20043091
                                                                                                                                          :1000A0002D020319AD01122886010514851089203F
                                                                                                                                          :1000B0000510892054281330A10000000000000022
                                                                                                                                          :1000C000A10B5D280000000008006430A3000000C0
                                                                                                                                          :1000D000000000000000000000000000A30B6728E3
                                                                                                                                          :1000E00008003230A4005B20A40B732808006430A1
                                                                                                                                          :1000F000A4005B20A40B792808002830A5007120FB
                                                                                                                                          :10010000A50B7F2808006430A5007120A50B852869
                                                                                                                                          :0E0110000800C930A5007120A50B8B2808003F
                                                                                                                                          :02400E00503F21
                                                                                                                                          :02401000FD3F72
                                                                                                                                          :00000001FF

                                                                                                                                          ソースはこれ
                                                                                                                                          ;LED CUBE SAMPLE(ソース動作) PIC16F87
                                                                                                                                          ;
                                                                                                                                          ;
                                                                                                                                          ; PORTA-1(18) A COMON
                                                                                                                                          ; PORTA-0(17) 9
                                                                                                                                          ; PORTA-7 OSC(16) Input Only
                                                                                                                                          ; PORTA-6 OSC(15)
                                                                                                                                          ; 電源+(14)
                                                                                                                                          ; PORTB-7(13) 8
                                                                                                                                          ; PORTB-6(12) 7
                                                                                                                                          ; PORTB-5(11) 6
                                                                                                                                          ; PORTB-4(10) 5

                                                                                                                                          ; PORTB-3(9) 4
                                                                                                                                          ; PORTB-2(8) 3
                                                                                                                                          ; PORTB-1(7) 2
                                                                                                                                          ; PORTB-0(6) 1
                                                                                                                                          ; VSS(-)(5)
                                                                                                                                          ; PORTA-5(4)
                                                                                                                                          ; PORTA-4(3)
                                                                                                                                          ; PORTA-3(2) C COMON
                                                                                                                                          ; PORTA-2(1) B COMON

                                                                                                                                          ;
                                                                                                                                          list p=16f87
                                                                                                                                          #include <p16f87.inc>

                                                                                                                                          ERRORLEVEL -207,-302,-306
                                                                                                                                          ;PDF132P
                                                                                                                                          __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
                                                                                                                                          __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_ON

                                                                                                                                          ;******************************
                                                                                                                                          ; 変数レジスタ割付定義
                                                                                                                                          ;******************************

                                                                                                                                          DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
                                                                                                                                          CNT1 EQU 21H ;タイマ用カウンタ
                                                                                                                                          CNT2 EQU 22H
                                                                                                                                          CNT3 EQU 23H
                                                                                                                                          CNT4 EQU 24H
                                                                                                                                          CNT5 EQU 25H

                                                                                                                                          STAGECNT EQU 2DH

                                                                                                                                          ORG 00H

                                                                                                                                          ;************************************
                                                                                                                                          ; 入出力ピンモード初期化
                                                                                                                                          ;************************************

                                                                                                                                          PORT_INI

                                                                                                                                          ;OSCON
                                                                                                                                          ;
                                                                                                                                          ;bit7 NO USE
                                                                                                                                          ;bit6-4 INTRC CLOCK 000=31.25KHz 001=125KHz 以降1ビット増加毎に周波数が倍になる
                                                                                                                                          ;bit3 OSCT オシレータ・スタートアップ・タイムアウト状態に、
                                                                                                                                          ;1=優先クロックを使う 0=T1OSC or INTRC を使う
                                                                                                                                          ;bit2 IOFS INTOSC Frequency Stable bit
                                                                                                                                          ;1 = 安定
                                                                                                                                          ;0 = 不安定
                                                                                                                                          ;
                                                                                                                                          ;bit1-0 Oscillator Mode Select bits
                                                                                                                                          ;
                                                                                                                                          ;00 = Oscillator mode defined by FOSC(2:0) FOSCレジスタ(2-0ビット)によってdefine(定義)する
                                                                                                                                          ;01 = T1OSC is used for system clock タイマー1を使う
                                                                                                                                          ;10 = Internal RC is used for system clock 内蔵RCを使う
                                                                                                                                          ;11 = Reserved 予約済み

                                                                                                                                          BSF STATUS,RP0 ;Set page 1

                                                                                                                                          MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
                                                                                                                                          MOVWF OSCCON ;BANK1

                                                                                                                                          MOVLW B'00000000' ; 0-7 OUTPUT
                                                                                                                                          MOVWF TRISB ;PortB set
                                                                                                                                          MOVLW B'11110000' ;RA0〜3以外IN
                                                                                                                                          MOVWF TRISA ;PortA set

                                                                                                                                          BSF OPTION_REG,7 ;BANK1 0でプルアップ有効

                                                                                                                                          MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
                                                                                                                                          MOVWF CMCON ; コンパレータOFF
                                                                                                                                          BCF STATUS,RP0 ;Set Page 0
                                                                                                                                          CLRF PORTA
                                                                                                                                          CLRF PORTB ;all clear

                                                                                                                                          BSF PORTA,1 ;桁コントロール クリア済み
                                                                                                                                          BSF PORTA,2 ;桁コントロール クリア済み
                                                                                                                                          BSF PORTA,3 ;桁コントロール クリア済み

                                                                                                                                          GOTO MAIN

                                                                                                                                          ;...............................
                                                                                                                                          MAIN
                                                                                                                                          CLRF STAGECNT

                                                                                                                                          STAGE_T INCF STAGECNT,F

                                                                                                                                          S1CHK MOVLW D'1'
                                                                                                                                          SUBWF STAGECNT,W ;F-W
                                                                                                                                          BTFSS STATUS,Z
                                                                                                                                          GOTO S2CHK

                                                                                                                                          TOP BCF PORTA,1
                                                                                                                                          BSF PORTA,2
                                                                                                                                          BSF PORTA,3
                                                                                                                                          GOTO DOWN_S

                                                                                                                                          S2CHK MOVLW D'2'
                                                                                                                                          SUBWF STAGECNT,W ;F-W
                                                                                                                                          BTFSS STATUS,Z
                                                                                                                                          GOTO S3CHK

                                                                                                                                          MID BSF PORTA,1
                                                                                                                                          BCF PORTA,2
                                                                                                                                          BSF PORTA,3
                                                                                                                                          GOTO DOWN_S

                                                                                                                                          S3CHK MOVLW D'3'
                                                                                                                                          SUBWF STAGECNT,W ;F-W
                                                                                                                                          BTFSS STATUS,Z
                                                                                                                                          GOTO S4CHK

                                                                                                                                          LOWER BSF PORTA,1
                                                                                                                                          BSF PORTA,2
                                                                                                                                          BCF PORTA,3
                                                                                                                                          GOTO DOWN_S

                                                                                                                                          S4CHK MOVLW D'4'
                                                                                                                                          SUBWF STAGECNT,W ;F-W
                                                                                                                                          BTFSS STATUS,Z
                                                                                                                                          GOTO ERR

                                                                                                                                          MID2 BSF PORTA,1
                                                                                                                                          BCF PORTA,2
                                                                                                                                          BSF PORTA,3
                                                                                                                                          GOTO DOWN_S

                                                                                                                                          DOWN_S BCF PORTA,0
                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,0
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,1
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,2
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,3
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,4
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,5
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,6
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTB,7
                                                                                                                                          CALL TIME2HM

                                                                                                                                          CLRF PORTB
                                                                                                                                          BSF PORTA,0
                                                                                                                                          CALL TIME2HM

                                                                                                                                          MOVLW D'4'
                                                                                                                                          SUBWF STAGECNT,W
                                                                                                                                          BTFSC STATUS,Z
                                                                                                                                          CLRF STAGECNT
                                                                                                                                          GOTO STAGE_T

                                                                                                                                          ERR CLRF PORTB
                                                                                                                                          BSF PORTA,0
                                                                                                                                          BCF PORTA,1
                                                                                                                                          CALL TIME1S
                                                                                                                                          BCF PORTA,0
                                                                                                                                          CALL TIME1S
                                                                                                                                          GOTO ERR

                                                                                                                                          ;*********************************
                                                                                                                                          ; タイマーサブルーチン 4MHZ
                                                                                                                                          ;; TIME100 :100MicroSec
                                                                                                                                          ; TIME1M :1msec
                                                                                                                                          ; TIME5M :5msec
                                                                                                                                          ;*********************************

                                                                                                                                          TIME100 MOVLW D'19' ;2+(5*19)-1+2+3=100 1×100=100MicroSec
                                                                                                                                          MOVWF CNT1
                                                                                                                                          T_LP1 NOP
                                                                                                                                          NOP
                                                                                                                                          NOP
                                                                                                                                          DECFSZ CNT1,F
                                                                                                                                          GOTO T_LP1
                                                                                                                                          NOP
                                                                                                                                          NOP
                                                                                                                                          RETURN ;99Micro sec(about)

                                                                                                                                          TIME1M MOVLW D'100' ;SET
                                                                                                                                          MOVWF CNT3
                                                                                                                                          T_LP3 NOP
                                                                                                                                          NOP
                                                                                                                                          NOP
                                                                                                                                          NOP
                                                                                                                                          NOP
                                                                                                                                          NOP
                                                                                                                                          NOP
                                                                                                                                          DECFSZ CNT3,F
                                                                                                                                          GOTO T_LP3
                                                                                                                                          RETURN ;2cycle

                                                                                                                                          TIME5M MOVLW D'50' ;50 SET
                                                                                                                                          MOVWF CNT4
                                                                                                                                          T_LP4 CALL TIME100
                                                                                                                                          DECFSZ CNT4,F
                                                                                                                                          GOTO T_LP4
                                                                                                                                          RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

                                                                                                                                          TIME10M MOVLW D'100' ;50 SET
                                                                                                                                          MOVWF CNT4
                                                                                                                                          T_LP4A CALL TIME100
                                                                                                                                          DECFSZ CNT4,F
                                                                                                                                          GOTO T_LP4A
                                                                                                                                          RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

                                                                                                                                          TIME2HM ;
                                                                                                                                          MOVLW D'40' ;20SET (4980*40)
                                                                                                                                          MOVWF CNT5
                                                                                                                                          T_LP5A CALL TIME5M ;2+(4980+3)*20-1=?
                                                                                                                                          DECFSZ CNT5,F
                                                                                                                                          GOTO T_LP5A
                                                                                                                                          RETURN ; STEP ?ICRO SEC.

                                                                                                                                          TIME5HM ;1SEC(about)
                                                                                                                                          MOVLW D'100' ;201SET (4980*101)
                                                                                                                                          MOVWF CNT5
                                                                                                                                          T_LP50 CALL TIME5M ;2+(4980+3)*20-1=?
                                                                                                                                          DECFSZ CNT5,F
                                                                                                                                          GOTO T_LP50
                                                                                                                                          RETURN ; STEP ?ICRO SEC.

                                                                                                                                          TIME1S ;1SEC(about)
                                                                                                                                          MOVLW D'201' ;201SET (4980*201)
                                                                                                                                          MOVWF CNT5
                                                                                                                                          T_LP5 CALL TIME5M ;2+(4980+3)*20-1=?
                                                                                                                                          DECFSZ CNT5,F
                                                                                                                                          GOTO T_LP5
                                                                                                                                          RETURN ; STEP ?ICRO SEC.

                                                                                                                                          END

                                                                                                                                          改造しやすいように、簡単な記述で書いてあります。

                                                                                                                                          この STAGE_T から

                                                                                                                                          GOTO  STAGE_T

                                                                                                                                          までの間に、同様のループを入れれば、プログラムサイズ限界までいくらでもパターンを増やせます。

                                                                                                                                          トランジスタを入れて論理を反転するなら、コモンはPORTA 1-3
                                                                                                                                          セグメントも反転するならPORTBの0−7とPORTAの0を反転して下さい。
                                                                                                                                          Re^67: LED Cube
                                                                                                                                          なんじゃらほい 2017/11/16 20:08
                                                                                                                                          1. [3524] ありがとうございます。
                                                                                                                                            仕事で今週平日は取りかかれずにいます。
                                                                                                                                            今度の土日に作って動かしてみます。

                                                                                                                                            あの回路は、複数同時点灯なのでLED電流を小さく抑えなければならないのですね。
                                                                                                                                            ダイナミック点灯にするには、回路をかなり変更することになりますか?
                                                                                                                                            Re^68: LED Cube
                                                                                                                                            daruma 2017/11/16 23:08
                                                                                                                                            1. [3525] > あの回路は、複数同時点灯なのでLED電流を小さく抑えなければならないのですね。

                                                                                                                                              いいえ。
                                                                                                                                              ポートの許容範囲以内で複数同時点灯<可能>回路です。

                                                                                                                                              20mAなら1個、10mAなら2個、5mAなら4個、同時点灯が可能だという事です。

                                                                                                                                              サンプルプログラム内では同時点灯させていないので、20mAも設定可能です。



                                                                                                                                              > ダイナミック点灯にするには、回路をかなり変更することになりますか?

                                                                                                                                              同じ回路でダイナミック点灯も可能です。



                                                                                                                                              2スピード版サンプル
                                                                                                                                              アセンブル時のエラーのみのチェックです。
                                                                                                                                              :020000040000FA
                                                                                                                                              :10000000831660308F0000308600F0308500811745
                                                                                                                                              :10001000831207309C00850186018514051585151E
                                                                                                                                              :1000200011288510051585153220851405118515B3
                                                                                                                                              :10003000322085140515851132208514051185158A
                                                                                                                                              :1000400032208510051585154F208514051185155D
                                                                                                                                              :100050004F208514051585114F2085140511851530
                                                                                                                                              :100060004F2011280510860106148E208601861463
                                                                                                                                              :100070008E20860106158E20860186158E2086012B
                                                                                                                                              :1000800006168E20860186168E20860106178E2083
                                                                                                                                              :10009000860186178E20860105148E200800051023
                                                                                                                                              :1000A0008601061494208601861494208601061584
                                                                                                                                              :1000B00094208601861594208601061694208601D8
                                                                                                                                              :1000C00086169420860106179420860186179420B0
                                                                                                                                              :1000D00086010514942008001330A10000000000E0
                                                                                                                                              :1000E0000000A10B6E280000000008006430A3008F
                                                                                                                                              :1000F0000000000000000000000000000000A30B52
                                                                                                                                              :10010000782808003230A4006C20A40B8428080052
                                                                                                                                              :100110006430A4006C20A40B8A2808002830A500B5
                                                                                                                                              :100120008220A50B902808006430A5008220A50B32
                                                                                                                                              :1001300096280800C930A5008220A50B9C2808003D
                                                                                                                                              :02400E00503F21
                                                                                                                                              :02401000FD3F72
                                                                                                                                              :00000001FF

                                                                                                                                              ソース
                                                                                                                                              ;LED CUBE SAMPLE(ソース動作) PIC16F87
                                                                                                                                              ;
                                                                                                                                              ;
                                                                                                                                              ; PORTA-1(18) A COMON
                                                                                                                                              ; PORTA-0(17) 9
                                                                                                                                              ; PORTA-7 OSC(16) Input Only
                                                                                                                                              ; PORTA-6 OSC(15)
                                                                                                                                              ; 電源+(14)
                                                                                                                                              ; PORTB-7(13) 8
                                                                                                                                              ; PORTB-6(12) 7
                                                                                                                                              ; PORTB-5(11) 6
                                                                                                                                              ; PORTB-4(10) 5

                                                                                                                                              ; PORTB-3(9) 4
                                                                                                                                              ; PORTB-2(8) 3
                                                                                                                                              ; PORTB-1(7) 2
                                                                                                                                              ; PORTB-0(6) 1
                                                                                                                                              ; VSS(-)(5)
                                                                                                                                              ; PORTA-5(4)
                                                                                                                                              ; PORTA-4(3)
                                                                                                                                              ; PORTA-3(2) C COMON
                                                                                                                                              ; PORTA-2(1) B COMON

                                                                                                                                              ;
                                                                                                                                              list p=16f87
                                                                                                                                              #include <p16f87.inc>

                                                                                                                                              ERRORLEVEL -207,-302,-306
                                                                                                                                              ;PDF132P
                                                                                                                                              __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
                                                                                                                                              __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_ON

                                                                                                                                              ;******************************
                                                                                                                                              ; 変数レジスタ割付定義
                                                                                                                                              ;******************************

                                                                                                                                              DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
                                                                                                                                              CNT1 EQU 21H ;タイマ用カウンタ
                                                                                                                                              CNT2 EQU 22H
                                                                                                                                              CNT3 EQU 23H
                                                                                                                                              CNT4 EQU 24H
                                                                                                                                              CNT5 EQU 25H

                                                                                                                                              STAGECNT EQU 2DH

                                                                                                                                              ORG 00H

                                                                                                                                              ;************************************
                                                                                                                                              ; 入出力ピンモード初期化
                                                                                                                                              ;************************************

                                                                                                                                              PORT_INI

                                                                                                                                              ;OSCON
                                                                                                                                              ;
                                                                                                                                              ;bit7 NO USE
                                                                                                                                              ;bit6-4 INTRC CLOCK 000=31.25KHz 001=125KHz 以降1ビット増加毎に周波数が倍になる
                                                                                                                                              ;bit3 OSCT オシレータ・スタートアップ・タイムアウト状態に、
                                                                                                                                              ;1=優先クロックを使う 0=T1OSC or INTRC を使う
                                                                                                                                              ;bit2 IOFS INTOSC Frequency Stable bit
                                                                                                                                              ;1 = 安定
                                                                                                                                              ;0 = 不安定
                                                                                                                                              ;
                                                                                                                                              ;bit1-0 Oscillator Mode Select bits
                                                                                                                                              ;
                                                                                                                                              ;00 = Oscillator mode defined by FOSC(2:0) FOSCレジスタ(2-0ビット)によってdefine(定義)する
                                                                                                                                              ;01 = T1OSC is used for system clock タイマー1を使う
                                                                                                                                              ;10 = Internal RC is used for system clock 内蔵RCを使う
                                                                                                                                              ;11 = Reserved 予約済み

                                                                                                                                              BSF STATUS,RP0 ;Set page 1

                                                                                                                                              MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
                                                                                                                                              MOVWF OSCCON ;BANK1

                                                                                                                                              MOVLW B'00000000' ; 0-7 OUTPUT
                                                                                                                                              MOVWF TRISB ;PortB set
                                                                                                                                              MOVLW B'11110000' ;RA0〜3以外IN
                                                                                                                                              MOVWF TRISA ;PortA set

                                                                                                                                              BSF OPTION_REG,7 ;BANK1 0でプルアップ有効

                                                                                                                                              MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
                                                                                                                                              MOVWF CMCON ; コンパレータOFF
                                                                                                                                              BCF STATUS,RP0 ;Set Page 0
                                                                                                                                              CLRF PORTA
                                                                                                                                              CLRF PORTB ;all clear

                                                                                                                                              BSF PORTA,1 ;桁コントロール クリア済み
                                                                                                                                              BSF PORTA,2 ;桁コントロール クリア済み
                                                                                                                                              BSF PORTA,3 ;桁コントロール クリア済み

                                                                                                                                              GOTO MAIN

                                                                                                                                              ;...............................
                                                                                                                                              MAIN
                                                                                                                                              TOP BCF PORTA,1
                                                                                                                                              BSF PORTA,2
                                                                                                                                              BSF PORTA,3
                                                                                                                                              CALL DOWN_S

                                                                                                                                              MID BSF PORTA,1
                                                                                                                                              BCF PORTA,2
                                                                                                                                              BSF PORTA,3
                                                                                                                                              CALL DOWN_S

                                                                                                                                              LOWER BSF PORTA,1
                                                                                                                                              BSF PORTA,2
                                                                                                                                              BCF PORTA,3
                                                                                                                                              CALL DOWN_S

                                                                                                                                              MID2 BSF PORTA,1
                                                                                                                                              BCF PORTA,2
                                                                                                                                              BSF PORTA,3
                                                                                                                                              CALL DOWN_S

                                                                                                                                              TOPM BCF PORTA,1
                                                                                                                                              BSF PORTA,2
                                                                                                                                              BSF PORTA,3
                                                                                                                                              CALL DOWN_M

                                                                                                                                              MIDM BSF PORTA,1
                                                                                                                                              BCF PORTA,2
                                                                                                                                              BSF PORTA,3
                                                                                                                                              CALL DOWN_M

                                                                                                                                              LOWERM BSF PORTA,1
                                                                                                                                              BSF PORTA,2
                                                                                                                                              BCF PORTA,3
                                                                                                                                              CALL DOWN_M

                                                                                                                                              MID2M BSF PORTA,1
                                                                                                                                              BCF PORTA,2
                                                                                                                                              BSF PORTA,3
                                                                                                                                              CALL DOWN_M

                                                                                                                                              GOTO MAIN

                                                                                                                                              DOWN_S BCF PORTA,0
                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,0
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,1
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,2
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,3
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,4
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,5
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,6
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,7
                                                                                                                                              CALL TIME2HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTA,0
                                                                                                                                              CALL TIME2HM
                                                                                                                                              RETURN

                                                                                                                                              DOWN_M BCF PORTA,0
                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,0
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,1
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,2
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,3
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,4
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,5
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,6
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTB,7
                                                                                                                                              CALL TIME5HM

                                                                                                                                              CLRF PORTB
                                                                                                                                              BSF PORTA,0
                                                                                                                                              CALL TIME5HM
                                                                                                                                              RETURN

                                                                                                                                              ;*********************************
                                                                                                                                              ; タイマーサブルーチン 4MHZ
                                                                                                                                              ;; TIME100 :100MicroSec
                                                                                                                                              ; TIME1M :1msec
                                                                                                                                              ; TIME5M :5msec
                                                                                                                                              ;*********************************

                                                                                                                                              TIME100 MOVLW D'19' ;2+(5*19)-1+2+3=100 1×100=100MicroSec
                                                                                                                                              MOVWF CNT1
                                                                                                                                              T_LP1 NOP
                                                                                                                                              NOP
                                                                                                                                              NOP
                                                                                                                                              DECFSZ CNT1,F
                                                                                                                                              GOTO T_LP1
                                                                                                                                              NOP
                                                                                                                                              NOP
                                                                                                                                              RETURN ;99Micro sec(about)

                                                                                                                                              TIME1M MOVLW D'100' ;SET
                                                                                                                                              MOVWF CNT3
                                                                                                                                              T_LP3 NOP
                                                                                                                                              NOP
                                                                                                                                              NOP
                                                                                                                                              NOP
                                                                                                                                              NOP
                                                                                                                                              NOP
                                                                                                                                              NOP
                                                                                                                                              DECFSZ CNT3,F
                                                                                                                                              GOTO T_LP3
                                                                                                                                              RETURN ;2cycle

                                                                                                                                              TIME5M MOVLW D'50' ;50 SET
                                                                                                                                              MOVWF CNT4
                                                                                                                                              T_LP4 CALL TIME100
                                                                                                                                              DECFSZ CNT4,F
                                                                                                                                              GOTO T_LP4
                                                                                                                                              RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

                                                                                                                                              TIME10M MOVLW D'100' ;50 SET
                                                                                                                                              MOVWF CNT4
                                                                                                                                              T_LP4A CALL TIME100
                                                                                                                                              DECFSZ CNT4,F
                                                                                                                                              GOTO T_LP4A
                                                                                                                                              RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

                                                                                                                                              TIME2HM ;
                                                                                                                                              MOVLW D'40' ;20SET (4980*40)
                                                                                                                                              MOVWF CNT5
                                                                                                                                              T_LP5A CALL TIME5M ;2+(4980+3)*20-1=?
                                                                                                                                              DECFSZ CNT5,F
                                                                                                                                              GOTO T_LP5A
                                                                                                                                              RETURN ; STEP ?ICRO SEC.

                                                                                                                                              TIME5HM ;1SEC(about)
                                                                                                                                              MOVLW D'100' ;201SET (4980*101)
                                                                                                                                              MOVWF CNT5
                                                                                                                                              T_LP50 CALL TIME5M ;2+(4980+3)*20-1=?
                                                                                                                                              DECFSZ CNT5,F
                                                                                                                                              GOTO T_LP50
                                                                                                                                              RETURN ; STEP ?ICRO SEC.

                                                                                                                                              TIME1S ;1SEC(about)
                                                                                                                                              MOVLW D'201' ;201SET (4980*201)
                                                                                                                                              MOVWF CNT5
                                                                                                                                              T_LP5 CALL TIME5M ;2+(4980+3)*20-1=?
                                                                                                                                              DECFSZ CNT5,F
                                                                                                                                              GOTO T_LP5
                                                                                                                                              RETURN ; STEP ?ICRO SEC.

                                                                                                                                              END
                                                                                                                                              Re^69: LED Cube
                                                                                                                                              なんじゃらほい 2017/11/18 08:23
                                                                                                                                              1. [3526] なんと!! パソコンが動かなくなってしまいました。悪戦苦闘しています。これが復活しないと仕事になりません。OSが立ち上がるところまでは行くんですが。
                                                                                                                                                いまこれはiPadで書いています。
                                                                                                                                                せっかくプログラムを書いていただいたのに。なんとか今日中に解決すればと焦っています。
                                                                                                                                                Re^70: LED Cube
                                                                                                                                                daruma 2017/11/19 08:11
                                                                                                                                                1. [3527] 昨夜ようやくパソコンが復旧し、今日仕事から帰ってPICにHEXを書き込んでみました。
                                                                                                                                                  回路はPICまわりだけ組み、電源は安定化電源から5Vを直接供給しています。

                                                                                                                                                  > 2017/11/16 Thu 20:08
                                                                                                                                                  > とりあえず、参考回路図でのサンプルファイルをあげます。
                                                                                                                                                  を走らせるとうまく走りました。順繰りにLEDが点灯します。
                                                                                                                                                  次に、
                                                                                                                                                  > 2017/11/18 Sat 08:23
                                                                                                                                                  > 2スピード版サンプル
                                                                                                                                                  を書き込んでみたのですが、先のと動作が変わらないのです。HEXを眺めてみたのですが、もしや後のも同じものじゃないでしょうか。
                                                                                                                                                  ソースからbuildしてみようとしたのですが、MPLAB X IDEの使い方の記憶が薄れているためかうまくいきません。ソースの部分を別ファイルにして.asmで保存しNewProjectを作ってソースを読みこませ・・・とやったのですが。
                                                                                                                                                  pickit3の電源の設定はしています。あと2バイトスペースを1バイトスペースに置換することはやったのですが、2バイト文字はコメント以外にはありませんでした。
                                                                                                                                                  Re^71: LED Cube
                                                                                                                                                  daruma 2017/11/20 18:13 *
                                                                                                                                                  1. [3528] > > 2017/11/16 Thu 20:08
                                                                                                                                                    > > とりあえず、参考回路図でのサンプルファイルをあげます。
                                                                                                                                                    > を走らせるとうまく走りました。順繰りにLEDが点灯します。

                                                                                                                                                    安心しました。

                                                                                                                                                    > 次に、
                                                                                                                                                    > > 2017/11/18 Sat 08:23
                                                                                                                                                    > > 2スピード版サンプル
                                                                                                                                                    > を書き込んでみたのですが、先のと動作が変わらないのです。HEXを眺めてみたのですが、もしや後のも同じものじゃないでしょうか。

                                                                                                                                                    両方の文字列を並べエディッターで検索したら一致・・・なので同じでしたね。

                                                                                                                                                    で上のものは修正しました



                                                                                                                                                    > ソースからbuildしてみようとしたのですが、MPLAB X IDEの使い方の記憶が薄れているためかうまくいきません。ソースの部分を別ファイルにして.asmで保存しNewProjectを作ってソースを読みこませ・・・とやったのですが。

                                                                                                                                                    ASMの拡張子でテキストファイルをつくり、mpasmx(mpasmx.exe)を直接起動して、アセンブルしエラーがなければ、MPLAB_IDEではなくMPLAB_IPEで書き込むという方法もあります。

                                                                                                                                                    インクルードされるp16f87.incのバージョンが違うと正確にコピーされていてもエラーが出ることがあります。

                                                                                                                                                    半角スペースをTABに変換するといいかも知れません。
                                                                                                                                                    Re^72: LED Cube
                                                                                                                                                    なんじゃらほい 2017/11/20 18:48
                                                                                                                                                    1. [3529] > 両方の文字列を並べエディッターで検索したら一致・・・なので同じでしたね。
                                                                                                                                                      やっぱりそうでしたか。さっそく差し替え版を書き込んでみました。ばっちりです。最初早い目で往復、そのあと遅い目・・の繰り返しですね。

                                                                                                                                                      buildは方法をじっくりおさらいします。HEXをいただいて楽させていただいてすみません。

                                                                                                                                                      さて、変化パタンのバリエーションをどう作っていくかですねえ。
                                                                                                                                                      Re^73: LED Cube
                                                                                                                                                      daruma 2017/11/20 19:03
                                                                                                                                                      1. [3530] > さて、変化パタンのバリエーションをどう作っていくかですねえ。

                                                                                                                                                        とりあえず、2段階verのソースをこちらにアップしました
                                                                                                                                                        https://yahoo.jp/box/nXo-jn

                                                                                                                                                        恐らくバグがある上に、30回ぐらいで動かなくなるサンプル版
                                                                                                                                                        :020000040000FA
                                                                                                                                                        :10000000831660308F0000308600F0308500811745
                                                                                                                                                        :10001000831207309C00850186018514051585151E
                                                                                                                                                        :10002000FF30A6000030AD00DE222E08AC00AC0888
                                                                                                                                                        :10003000031928281F302C02031C28280130AC0289
                                                                                                                                                        :100040000319D6292C08AE000030AD00BB222E28A3
                                                                                                                                                        :100050001E30AE000030AD00BB222E280230A700BB
                                                                                                                                                        :10006000E321EB21F321FB2103220B2213221B228C
                                                                                                                                                        :1000700023222B2233223B2243224B2253225B2278
                                                                                                                                                        :1000800063226B2273227B2283228B2293229B2268
                                                                                                                                                        :10009000A322AB22B322B322AB22A3229B22932220
                                                                                                                                                        :1000A0008B2283227B2273226B2263225B225322C8
                                                                                                                                                        :1000B0004B2243223B2233222B2223221B221322B8
                                                                                                                                                        :1000C0000B220322FB21F321EB21E321E3212B224D
                                                                                                                                                        :1000D0007322EB2183223B22F321EB2133221B22CB
                                                                                                                                                        :1000E0006322AB22B32283224322FB2123226B22F1
                                                                                                                                                        :1000F00013225B22A3229B2293224B2203220B2258
                                                                                                                                                        :1001000053223322EB21F3213B228322EB21732262
                                                                                                                                                        :100110002B22E3216B222322FB2143228322B322C1
                                                                                                                                                        :10012000AB2263221B2253220B2203224B22932257
                                                                                                                                                        :100130009B22A3225B221322E3212B227322AB22D8
                                                                                                                                                        :10014000A3225B2213221B226322EB2133227B2278
                                                                                                                                                        :10015000B3229B2253220B2223226B22F3213B2228
                                                                                                                                                        :1001600083228B2293224B220322FB214322E32171
                                                                                                                                                        :100170002B227322EB2133227B22F3213B22832289
                                                                                                                                                        :10018000FB2143228B2203224B2293220B22532258
                                                                                                                                                        :100190009B2213225B22A3221B226322AB22232257
                                                                                                                                                        :1001A0006B22B322B3226B222322AB2263221B22B7
                                                                                                                                                        :1001B000A3225B2213229B2253220B2293224B2247
                                                                                                                                                        :1001C00003228B224322FB2183223B22F3217B2229
                                                                                                                                                        :1001D0003322EB2173222B22E321E32133228322DA
                                                                                                                                                        :1001E000432203225322A3226322E3212B227B22D8
                                                                                                                                                        :1001F0003B22FB214B229B225B221B226B22732280
                                                                                                                                                        :100200003322F32143229322532213226322B32267
                                                                                                                                                        :10021000EB213B228B224B220B225B22AB226B2257
                                                                                                                                                        :10022000E32133228322432203225322A322632287
                                                                                                                                                        :1002300023222B227B223B22FB214B229B225B226F
                                                                                                                                                        :100240001B226B22732273226B221B225B229B22B6
                                                                                                                                                        :100250004B22FB213B227B222B2223226322A3223F
                                                                                                                                                        :1002600053220322432283223322E3216B22AB2237
                                                                                                                                                        :100270005B220B224B228B223B22EB21B3226322F7
                                                                                                                                                        :100280001322532293224322F321332273226B221F
                                                                                                                                                        :100290001B225B229B224B22FB213B227B222B2217
                                                                                                                                                        :1002A000E3216322A3225322032243228322332207
                                                                                                                                                        :1002B000E321A708031979290130270203198129AD
                                                                                                                                                        :1002C00002302702031989290330270203199129D3
                                                                                                                                                        :1002D0000430270203199929053027020319A1299F
                                                                                                                                                        :1002E000063027020319A929073027020319B1296B
                                                                                                                                                        :1002F000A7011030A6020318CD291030A600A70AC6
                                                                                                                                                        :10030000CD291030A607031CCD29FF30A600A70A6F
                                                                                                                                                        :10031000CD291830A6020318CD291030A600A70A4F
                                                                                                                                                        :10032000CD291830A607031CCD29FF30A600A70A47
                                                                                                                                                        :10033000CD292030A6020318CD291030A600A70A27
                                                                                                                                                        :10034000CD292030A607031CCD29FF30A600A70A1F
                                                                                                                                                        :10035000CD292D30A6020318CD291030A600A70AFA
                                                                                                                                                        :10036000CD292D30A60780302607031CCD298030EB
                                                                                                                                                        :10037000A600A70ACD290A30A6020318CD291030FD
                                                                                                                                                        :10038000A600A70ACD290A30A60780302607031C3D
                                                                                                                                                        :10039000CD29FF30A600A70ACD290A30270203196C
                                                                                                                                                        :1003A000A70130280323A80BD22908008601851055
                                                                                                                                                        :1003B00005141523860105110514152386018511E1
                                                                                                                                                        :1003C00005141523D6292608A800013086000C3014
                                                                                                                                                        :1003D0008500D22108002608A800023086000C30D3
                                                                                                                                                        :1003E0008500D22108002608A800043086000C30C1
                                                                                                                                                        :1003F0008500D22108002608A800083086000C30AD
                                                                                                                                                        :100400008500D22108002608A800103086000C3094
                                                                                                                                                        :100410008500D22108002608A800203086000C3074
                                                                                                                                                        :100420008500D22108002608A800403086000C3044
                                                                                                                                                        :100430008500D22108002608A800803086000C30F4
                                                                                                                                                        :100440008500D22108002608A800003086000D3063
                                                                                                                                                        :100450008500D22108002608A800013086000A3055
                                                                                                                                                        :100460008500D22108002608A800023086000A3044
                                                                                                                                                        :100470008500D22108002608A800043086000A3032
                                                                                                                                                        :100480008500D22108002608A800083086000A301E
                                                                                                                                                        :100490008500D22108002608A800103086000A3006
                                                                                                                                                        :1004A0008500D22108002608A800203086000A30E6
                                                                                                                                                        :1004B0008500D22108002608A800403086000A30B6
                                                                                                                                                        :1004C0008500D22108002608A800803086000A3066
                                                                                                                                                        :1004D0008500D22108002608A800003086000B30D5
                                                                                                                                                        :1004E0008500D22108002608A800013086000630C9
                                                                                                                                                        :1004F0008500D22108002608A800023086000630B8
                                                                                                                                                        :100500008500D22108002608A800043086000630A5
                                                                                                                                                        :100510008500D22108002608A80008308600063091
                                                                                                                                                        :100520008500D22108002608A80010308600063079
                                                                                                                                                        :100530008500D22108002608A80020308600063059
                                                                                                                                                        :100540008500D22108002608A80040308600063029
                                                                                                                                                        :100550008500D22108002608A800803086000630D9
                                                                                                                                                        :100560008500D22108002608A80000308600073048
                                                                                                                                                        :100570008500D2210800831603178C18BD2A831228
                                                                                                                                                        :1005800003132D08831203178D00831203132E0803
                                                                                                                                                        :10059000831203178C00831603178C130C158B130F
                                                                                                                                                        :1005A00055308D00AA308D008C14831603178C18DB
                                                                                                                                                        :1005B000D72A8B170C118312031308002D088312FE
                                                                                                                                                        :1005C00003178D00831603178C130C148312031763
                                                                                                                                                        :1005D0000C0883120313AE0008001330A1000000C2
                                                                                                                                                        :1005E00000000000A10BEF2A0000000008006430AA
                                                                                                                                                        :1005F000A300000000000000000000000000000058
                                                                                                                                                        :10060000A30BF92A08003230A400ED22A40B052B1D
                                                                                                                                                        :1006100008006430A400ED22A40B0B2B0800283046
                                                                                                                                                        :10062000A5000323A50B112B08006430A5000323AC
                                                                                                                                                        :10063000A50B172B0800C930A5000323A50B1D2B04
                                                                                                                                                        :020640000800B0
                                                                                                                                                        :02400E00503F21
                                                                                                                                                        :02401000FD3F72
                                                                                                                                                        :00000001FF
                                                                                                                                                        Re^74: LED Cube
                                                                                                                                                        なんじゃらほい 2017/11/20 20:34
                                                                                                                                                        1. [3531] > とりあえず、2段階verのソースをこちらにアップしました
                                                                                                                                                          > https://yahoo.jp/box/nXo-jn

                                                                                                                                                          ありがとうございます。これがちゃんとbuildできるようにMPLAB X IDEのおさらいをします。

                                                                                                                                                          > 恐らくバグがある上に、30回ぐらいで動かなくなるサンプル版

                                                                                                                                                          ここまで作っていただいて感激です。パラメータをいろいろ変えて苦労するのを覚悟していました。
                                                                                                                                                          変化パタンは
                                                                                                                                                          ・1〜9が変わってA〜Cが変わる
                                                                                                                                                          ・A〜Cが変わって1〜9が変わる
                                                                                                                                                          ・たすき掛けに変わる
                                                                                                                                                          の3パタンでしょうか
                                                                                                                                                          スピードは、序盤のたいへんゆっくりから走り回るまでの5段階でしょうか。6段階かな。
                                                                                                                                                          このパタン変化で速い方3段階で完成形でいかがでしょう。さらに速い複数同時点灯しているように見えるスピードがあってもいいかもしれません。
                                                                                                                                                          「動かなくなる」とのことで、パタン変化を追っていたのですが一向に止まらず、少なくとも50分眺めていますが止まりません。「動かなくならない」のではないでしょうか。

                                                                                                                                                          ※追記 2時間たっても止まっていません。

                                                                                                                                                          ブレッドボードに平面配置のLED群ではパタンを実感できないと思うので、基板に組んでキューブを載せて試作4号機に取りかかります。
                                                                                                                                                          それと、試作3号機をケース入れして完成した姿にします。

                                                                                                                                                          今週は仕事があまり入っていないので、工作三昧できそうです。

                                                                                                                                                          ところで、常に1個だけしか点灯させないプログラムを前提とすれば電流制限抵抗を1個だけの半固定VRにして明るさ調整可にできるかと思うのですが、回路自体は複数点灯もアリなのでそうしないで抵抗を並べておいたほうがいいでしょうか。現在ブレッドボードの実験では総消費電流13mAで十分な明るさです。トランジスタをかませる必要はありませんね。
                                                                                                                                                          Re^75: LED Cube
                                                                                                                                                          daruma 2017/11/21 12:55
                                                                                                                                                          1. [3532] 1個だけ点灯を前提に、電流制限抵抗を1個だけの半固定VRにして明るさ調整可にと考えてみたのですが、

                                                                                                                                                            http://mpga.jp/akizuki-fan/index.php?mode=image&file=3521.jpg
                                                                                                                                                            の図で、1〜9に抵抗を入れずA〜Cに入れても同じことだとは思います。これで3個にはなりますが、inara1さんの回路
                                                                                                                                                            http://mpga.jp/akizuki-fan/data/img/3290.jpg
                                                                                                                                                            のように全てここを通るというところが無いので1個にはできないのでしょうか。
                                                                                                                                                            抵抗8個を3個にしてもスペースが若干浮くだけですから、それなら現状通り8本並べておこうかなと思いますが。

                                                                                                                                                            いずれにしても、複数点灯の可能性としては、一系列内で2個点灯させるとそれに対して1個の抵抗しか入っていないことになりますか。
                                                                                                                                                            Re^76: LED Cube
                                                                                                                                                            daruma 2017/11/22 12:06
                                                                                                                                                            1. [3533] あれ?
                                                                                                                                                              昨日からずっと動かしっぱなしにしているのですが、ふと見ると、昨日実験開始時の「たいへんゆっくり」になってそこから抜け出ないのです。1点灯2秒の超スローです。昨日の開始時は、10分(不確か)ほど後にやや速い1点灯1秒のスピードに移行し「走る回る」まで何段階かスピードアップした後はこの超スローは起きずに繰り返していました。今朝この状況に気づいてから1時間たっても、超スローのままです。

                                                                                                                                                              あれあれ?
                                                                                                                                                              一度電源を切って再スタートしたのですが、1点灯2秒の超スローを十数分のあと1点灯1秒になったあとしばらくするとまた超スローに戻り、それより速い段階になってくれません。なぜでしょう。一度書き込んだプログラムですから、再起動したら同じ動作になると思うのですが。
                                                                                                                                                              Re^77: LED Cube
                                                                                                                                                              daruma 2017/11/22 12:48
                                                                                                                                                              1. [3534] >「動かなくなる」とのことで、パタン変化を追っていたのですが一向に止まらず、少なくとも50分眺めていますが止まりません。「動かなくならない」のではないでしょうか。

                                                                                                                                                                30回というのはマイコンのリセット回数です。電源を入れっぱなしなら1年でも動き続けてもおかしくはないです。



                                                                                                                                                                >ここまで作っていただいて感激です。パラメータをいろいろ変えて苦労するのを覚悟していました。

                                                                                                                                                                そもそも、このプログラムは「クロックだけでもマイコンでやってみたら?」という話をする前から、「マイコンでやるならどのようなパターンが、どの程度の難易度で実現出来るのか」の確認用に書いてあったもので、公開用に書いたものではありません。

                                                                                                                                                                なので「こんなのもできるかな?」的な参考サンプルです。そもそも仕様自体が十分に検討されたではなく、完成品には程遠いものです。



                                                                                                                                                                今回のものはサンプル2のコピペで出来るレベルのものです。なので、これを参考に面白いものを作り上げて下さい。

                                                                                                                                                                折角、マイコンを使うためにそれ相応の投資をしたのですから、これを機会にロジックICや簡単なIC(555とか)の置き換えぐらいは出来るようになってください。



                                                                                                                                                                >変化パタンは
                                                                                                                                                                >・1〜9が変わってA〜Cが変わる
                                                                                                                                                                >・A〜Cが変わって1〜9が変わる
                                                                                                                                                                >・たすき掛けに変わる
                                                                                                                                                                >の3パタンでしょうか

                                                                                                                                                                プログラムを確認するとそんな感じですが

                                                                                                                                                                >・1〜9が変わってA〜Cが変わる、  も

                                                                                                                                                                実際には1→2→3→4→5→6→7→8→9で上〜中〜下とステージが動いたあと下〜中〜上へ9→8・・・・・→1へと逆転しています。
                                                                                                                                                                その他も後半は逆転していますからパターン的には6通り以上です。

                                                                                                                                                                これでも最初のアイディアがずいぶんすっ飛んでます。



                                                                                                                                                                >スピードは、序盤のたいへんゆっくりから走り回るまでの5段階でしょうか。6段階かな。

                                                                                                                                                                いいえ、バグがあってきちんと動いていなかったとはいえ、本来はもっともっと複雑です。

                                                                                                                                                                フェイズ0で35段階で減速
                                                                                                                                                                フェイズ1で34段階で加速
                                                                                                                                                                フェイズ2で25段階で減速
                                                                                                                                                                フェイズ3で24段階で加速
                                                                                                                                                                フェイズ4で19段階で減速
                                                                                                                                                                フェイズ5で18段階で加速
                                                                                                                                                                フェイズ6で15段階で減速
                                                                                                                                                                フェイズ7で14段階で加速

                                                                                                                                                                こんな感じです。



                                                                                                                                                                >電流制限抵抗を1個だけの半固定VRにして明るさ調整可にできるかと思うのですが、
                                                                                                                                                                >1個だけ点灯を前提に、電流制限抵抗を1個だけの半固定VRにして明るさ調整可にと考えてみたのですが、

                                                                                                                                                                通常の半固定抵抗で5mA以上流すのは信頼性の低下を招くと思いますが、それでもその方法に行きますか?



                                                                                                                                                                >のように全てここを通るというところが無いので1個にはできないのでしょうか。

                                                                                                                                                                はい。できません。

                                                                                                                                                                >抵抗8個を3個にしてもスペースが若干浮くだけですから、それなら現状通り8本並べておこうかなと思いますが。

                                                                                                                                                                そもそも、LEDは同色だけの想定ですか?

                                                                                                                                                                3色×3でとか、9色とか考えないのですか?そういう想定も当然あるのだと思っていました。



                                                                                                                                                                >今朝この状況に気づいてから1時間たっても、超スローのままです。

                                                                                                                                                                フェイズ5以降が動かなかった状態で、ウェイト時間は演算で出しているのでどこかでエラーになった可能性はありますが、本来は時間が掛かっても必ず停滞からは抜け、リセットされるはずですが、さて。。



                                                                                                                                                                >一度電源を切って再スタートしたのですが、1点灯2秒の超スローを十数分のあと1点灯1秒になったあとしばらくするとまた超スローに戻り、それより速い段階になってくれません。

                                                                                                                                                                さて??

                                                                                                                                                                >一度書き込んだプログラムですから、再起動したら同じ動作になると思うのですが。

                                                                                                                                                                プログラムの書き方が悪いとそうなる事はありますし、実行中にプログラム自体を書き換える場合もあります。

                                                                                                                                                                とりあえず、上のHEXを、速度2倍にし、本来通りフェイズ7まで動くように修正したものと差し替えましたが、これも多分リセット30回で止まります。
                                                                                                                                                                Re^78: LED Cube
                                                                                                                                                                なんじゃらほい 2017/11/22 20:32
                                                                                                                                                                1. [3535] > とりあえず、上のHEXを、速度2倍にし、本来通りフェイズ7まで動くように修正したものと差し替えました

                                                                                                                                                                  2秒刻みが1秒刻み始まりになりましたが、そのスピードのままです。40分見ていましたが速くなっていきません。パタンは変わります。

                                                                                                                                                                  昨日1秒刻みまでしか早くならなくなった11/20バージョンを改めて書き込んでみました。0.3秒くらい刻みのスピードまではなるのですが、走り回るスピードにはなりません。
                                                                                                                                                                  今回の11/22バージョンも再書き込みしてみましたが、開始時から1秒刻みのままです。

                                                                                                                                                                  > フェイズ0で35段階で減速
                                                                                                                                                                  > フェイズ1で34段階で加速
                                                                                                                                                                  > フェイズ2で25段階で減速
                                                                                                                                                                  > フェイズ3で24段階で加速
                                                                                                                                                                  > フェイズ4で19段階で減速
                                                                                                                                                                  > フェイズ5で18段階で加速
                                                                                                                                                                  > フェイズ6で15段階で減速
                                                                                                                                                                  > フェイズ7で14段階で加速

                                                                                                                                                                  40分ほどは眺めていたのですが、もっと長時間かかって変わっていくのでしょうか。

                                                                                                                                                                  一度動いたものが次からそのようにならないというのはどうにも不思議です。

                                                                                                                                                                  > 実行中にプログラム自体を書き換える場合もあります。

                                                                                                                                                                  走っているプログラム自身が自分を書き変えてその状態のまま残るということですか。不思議です。

                                                                                                                                                                  > 30回というのはマイコンのリセット回数です。

                                                                                                                                                                  ループ全体を30回ループするとという意味ではないのですね。リセット30回ということは、31回目の起動からは走らなくなってしまうということですか?

                                                                                                                                                                  > ロジックICや簡単なIC(555とか)の置き換えぐらいは出来るように

                                                                                                                                                                  そうですね。そのためにはまず555の機能をきちんと理解しなければなりません。「回路図のとおりに作ったら動いた」から脱却しなければなりません。

                                                                                                                                                                  電流制限抵抗については了解しました。8本並べでいきます。

                                                                                                                                                                  色ごとに抵抗値を変えてバランスを取るのには都合よいわけですね。
                                                                                                                                                                  色違いLEDにとは考えていません。赤青黄色のネオンの街みたいになるのもどうかなと思って、単色使いのシック路線でいこうと思っています。
                                                                                                                                                                  Re^79: LED Cube
                                                                                                                                                                  daruma 2017/11/23 12:32
                                                                                                                                                                  1. [3536] そもそもが何も考えずにプログラムされたものなので、非常に速度変化が遅いのです。

                                                                                                                                                                    一通りパターンが終わるまでを1ターンとすると、1ターン6分強で速くなる速度は2.5%なので10秒程度の短縮です。

                                                                                                                                                                    1フェイズ36段階(36ターン)あって、10ターン回って、1時間経過しても1ターンが5分程度あるのでしょう。

                                                                                                                                                                    >2秒刻みが1秒刻み始まりになりましたが、そのスピードのままです。40分見ていましたが速くなっていきません。パタンは変わります。

                                                                                                                                                                    少しずつ速くなっているはずです。

                                                                                                                                                                    >昨日1秒刻みまでしか早くならなくなった11/20バージョンを改めて書き込んでみました。0.3秒くらい刻みのスピードまではなるのですが、走り回るスピードにはなりません。
                                                                                                                                                                    >今回の11/22バージョンも再書き込みしてみましたが、開始時から1秒刻みのままです。

                                                                                                                                                                    >40分ほどは眺めていたのですが、もっと長時間かかって変わっていくのでしょうか。

                                                                                                                                                                    多分、数時間かかりますね。

                                                                                                                                                                    数時間待ちはあまりにも酷いので「これじゃ駄目じゃん」程度には直しました。

                                                                                                                                                                    リセット直後のみ、フェイズ2から開始

                                                                                                                                                                    > フェイズ0で1.275秒間隔〜15段階で加速
                                                                                                                                                                    > フェイズ1で14段階で減速
                                                                                                                                                                    > フェイズ2で1.275秒間隔〜10段階で加速
                                                                                                                                                                    > フェイズ3で9段階で減速
                                                                                                                                                                    > フェイズ4で1.275秒間隔〜7段階で加速
                                                                                                                                                                    > フェイズ5で6段階で減速
                                                                                                                                                                    > フェイズ6で1.275秒間隔〜5段階で加速
                                                                                                                                                                    > フェイズ7で5段階で減速
                                                                                                                                                                    > フェイズ8で他のフェイズの2倍の速度から10段階で加速
                                                                                                                                                                    > フェイズ9で他のフェイズの2倍の速度から10段階で減速

                                                                                                                                                                    差し替え済みですが、アセンブルのエラーチェックのみなので動くかは判りません、
                                                                                                                                                                    Re^80: LED Cube
                                                                                                                                                                    なんじゃらほい 2017/11/23 16:12
                                                                                                                                                                    1. [3537] 少しずつ速くなってたいへんな時間を要するのですね。
                                                                                                                                                                      起動時1秒強刻みだったのが30分で1秒ちようどくらい、さらに20分後1秒弱刻みになりました。
                                                                                                                                                                      1時間10分程経過したところでパラパラという動き、0.5秒刻みくらいでしょうか。さらに10分程たつと若干遅くなりだしていました。この間目を離したうちにトップスピードを通り過ぎてしまったのか、そこまで行かずに遅くなり始めたのかわかりません。※後述※先日初めて走ったときの最速状態にはお目にかかっていません。
                                                                                                                                                                      回数で進んでいるのでしょうから、遅い段階では所要時間が長く速い段階は短時間に過ぎるのでしょう。2時間半ほど経過した現在は最も遅い1秒強刻みの段階です。

                                                                                                                                                                      遅い段階を取り除いて速い後半だけにしていただくわけにはいきませんか。実用範囲は、感覚的な表現ですが「パラパラパラ〜」→「ピュンピュン」→「複数同時点灯に見える」あたりを期待しています。

                                                                                                                                                                      ※※
                                                                                                                                                                      その後、トップスピードを現認できました。0.5秒刻み(1秒に2発)になったあたりから目を離さずに見ていると、0.3秒刻み(1秒に3発)になり、0.2秒刻み(1秒に5発)の「パラパラパラ〜」になり、次いで「ピュンピュン」と走り回る速さになった後減速に転じました。測定値ではなく見た目の速さ表記です。
                                                                                                                                                                      Re^81: LED Cube
                                                                                                                                                                      daruma 2017/11/23 20:21
                                                                                                                                                                      1. [3538] 試作3号機をケースに収めました。
                                                                                                                                                                        3mm厚のシナベニヤをカッターで切って木工ボンドで貼りました。この写真ではよく見えませんが、天面には1mm幅のスリットを3本彫って、キューブを装着した基板を後方から差し入れています。当初はヘッダソケットの位置に穴を開けて足を外から差し込む構想でしたが、足が軟らかくて挿し難くてこのようにしました。
                                                                                                                                                                        塗装は水性ウレタンニスを刷毛塗りしてみたのですが、きれいにいかなくて意図せぬアンティーク調になってしまいました。素人塗装はやはりスプレーがいいです。
                                                                                                                                                                        キューブ部作りは4個めで多少熟達しましたがこの程度です。足が少々長すぎて背が高くなってしまいました。これでは立方体じゃありませんね。
                                                                                                                                                                        Re^82: LED Cube
                                                                                                                                                                        daruma 2017/11/24 16:46 *
                                                                                                                                                                        1. [3539] >遅い段階を取り除いて速い後半だけにしていただくわけにはいきませんか。

                                                                                                                                                                          やるのは簡単ですが、それをやったらdarumaさんのやること(工夫すること)が無くなってしまいます。

                                                                                                                                                                          >実用範囲は、感覚的な表現ですが「パラパラパラ〜」→「ピュンピュン」→「複数同時点灯に見える」あたりを期待しています。

                                                                                                                                                                          それだと、0.2秒〜0,001秒あたりでしょうね。

                                                                                                                                                                          基本パターンのみの「それっぽいもの」をつくりましたので、色々なパターンはがんばって作って下さい。

                                                                                                                                                                          3-3_16F87SAMPLE3.HEX
                                                                                                                                                                          :020000040000FA
                                                                                                                                                                          :10000000831660308F0000308600F0308500811745
                                                                                                                                                                          :10001000831207309C00850186018514051585151E
                                                                                                                                                                          :10002000FF30A6000130A800152832203E203620DF
                                                                                                                                                                          :100030003E203A203E2036203E202808A602031803
                                                                                                                                                                          :1000400015280130A60032203E2036203E203A20DE
                                                                                                                                                                          :100050003E2036203E202808A607031C2328FF3018
                                                                                                                                                                          :10006000A6001528851005158515080085140511AD
                                                                                                                                                                          :1000700085150800851405158511080005108601F1
                                                                                                                                                                          :1000800006145B20860186145B20860106155B2022
                                                                                                                                                                          :10009000860186155B20860106165B208601861682
                                                                                                                                                                          :1000A0005B20860106175B20860186175B20860190
                                                                                                                                                                          :1000B00005145B2008002608A7006E20A708031976
                                                                                                                                                                          :1000C0000800A70B5D2808001330A1000000000005
                                                                                                                                                                          :1000D0000000A10B66280000000008006430A300A7
                                                                                                                                                                          :1000E0000000000000000000000000000000A30B62
                                                                                                                                                                          :1000F000702808003230A4006420A40B7C2808007B
                                                                                                                                                                          :100100006430A4006420A40B822808002830A500D5
                                                                                                                                                                          :100110007A20A50B882808006430A5007A20A50B5A
                                                                                                                                                                          :100120008E280800C930A5007A20A50B9428080065
                                                                                                                                                                          :02400E00503F21
                                                                                                                                                                          :02401000FD3F72
                                                                                                                                                                          :00000001FF

                                                                                                                                                                          ソースはこちら
                                                                                                                                                                          https://yahoo.jp/box/7ZY1_x

                                                                                                                                                                          101行 MOVLW D'1'
                                                                                                                                                                          102行 MOVWF STEPDATA

                                                                                                                                                                          101行の数値を大きくすると加減速の変化速度が速くなります。

                                                                                                                                                                          あ、減速に転換する前の初期値の再設定が抜けているので、段階的な減速がされない模様、なので修正 更新日時 2017/11/25(土)10:15

                                                                                                                                                                          DPCNTが0でWAITXがコールされた場合に桁割れを防止するための処理を追加
                                                                                                                                                                          更新日時 2017/11/25(土)10:29
                                                                                                                                                                          Re^83: LED Cube
                                                                                                                                                                          なんじゃらほい 2017/11/24 20:52
                                                                                                                                                                          1. [3540] 基本パターンありがとうございます。
                                                                                                                                                                            ソースをじっくり読んで実験しながら牛歩で行きます。
                                                                                                                                                                            > 101行 MOVLW D'1'
                                                                                                                                                                            > 102行 MOVWF STEPDATA
                                                                                                                                                                            で速さをセットして、GOTO MAIN
                                                                                                                                                                            MAINの中で無限ループしているのをカウントして脱出し速さ変更と、そんな感じでしょうか。
                                                                                                                                                                            MAINの中に速さの違うループをいくつも書き並べるというスタイルが、冗長になっても単純でしょうか。
                                                                                                                                                                            MAINを格下げしてサブルーチンにし、速さをセットしてはそれを呼ぶという筋書きを新MAINとするのがすっきりするでしょうか。

                                                                                                                                                                            あ、走らせているうちに速くなりました。定速だけではないんですね。この値は速さ(点灯時間)ではなくて「加減速の変化速度」ですか。速さはすでに何段階か並んでいるんですね。早合点せずいろいろやってみます。
                                                                                                                                                                            Re^84: LED Cube
                                                                                                                                                                            daruma 2017/11/24 23:42
                                                                                                                                                                            1. [3541] おさらいして、MPLAB X IDE でbuildして書き込むことができるようになりました。

                                                                                                                                                                              昨日のソースを書き込んで走らせてみました。トップスピードに達してスローに戻るまで10分でした。

                                                                                                                                                                              > 101行 MOVLW D'1'
                                                                                                                                                                              を'2'にしても目に見えて変化はなかったので、、'9'にすると2分になりました。さらに'32'にすると1分弱でした。

                                                                                                                                                                              この値は変化の刻みなんですね。値を大きくすると大股で変化すると。

                                                                                                                                                                              初期スピードとトップスピードをもっと速くすることと、所要時間が短くなるぶんループ回数を多くすることを試みたいと思います。「どこかとどこか」の値を変えるんでしょうね。ソースを睨んで探ります。
                                                                                                                                                                              Re^85: LED Cube
                                                                                                                                                                              daruma 2017/11/25 18:46
                                                                                                                                                                              1. [3542] >
                                                                                                                                                                                > 昨日のソースを書き込んで走らせてみました。トップスピードに達してスローに戻るまで10分でした。

                                                                                                                                                                                ん?

                                                                                                                                                                                あ、減速に転換する前の初期値の再設定が抜けているので、段階的な減速がされない模様、なので修正 更新日時 2017/11/25(土)10:15

                                                                                                                                                                                DPCNTが0でWAITXがコールされた場合に桁割れを防止するための処理を追加
                                                                                                                                                                                更新日時 2017/11/25(土)10:29

                                                                                                                                                                                これ気がついてないですか?

                                                                                                                                                                                昨日のものにはバグがあって、半分しか機能していないので最新のソースを使って下さい。

                                                                                                                                                                                >
                                                                                                                                                                                > > 101行 MOVLW D'1'
                                                                                                                                                                                > を'2'にしても目に見えて変化はなかったので、、'9'にすると2分になりました。さらに'32'にすると1分弱でした。
                                                                                                                                                                                >
                                                                                                                                                                                > この値は変化の刻みなんですね。値を大きくすると大股で変化すると。

                                                                                                                                                                                1だと256(変化幅1mS刻み)段階、2だと128段階(変化幅2mS刻み)、10だと25〜26段階(変化幅10mS刻み)です。

                                                                                                                                                                                >
                                                                                                                                                                                > 初期スピードとトップスピードをもっと速くすることと、

                                                                                                                                                                                WAITXでコールしている1mSの値が変化の最小単位で、ウエイト時間の基準になります。

                                                                                                                                                                                WAITXでコールされているウェイト時間が、DPCNTの回数だけ繰り返され、ひとつのLEDの点灯持続時間になります。

                                                                                                                                                                                よってTIME1MをTIME100にすれば、速度の初期値も最高速も約10倍になります。

                                                                                                                                                                                >所要時間が短くなるぶんループ回数を多くすることを試みたいと思います。
                                                                                                                                                                                >「どこかとどこか」の値を変えるんでしょうね。ソースを睨んで探ります。

                                                                                                                                                                                ループ回数は101行が1の時が最高です。それ以上にする場合は、ある程度の書き足しが必要です。
                                                                                                                                                                                Re^86: LED Cube
                                                                                                                                                                                なんじゃらほい 2017/11/25 22:59
                                                                                                                                                                                1. [3543] 新規投稿は追っているのですが、遡って過去の投稿に追記や変更があったのを見落としていました、

                                                                                                                                                                                  > 更新日時 2017/11/25(土)10:29
                                                                                                                                                                                  YAHOOボックスに行って、更新日時 2017/11/25(土)10:32となっているのをダウンロードしました。

                                                                                                                                                                                  走らせると、20分でトップスピードに達し減速に転じます。昨日の実験ではガクンと初速に戻っていましたが下り坂です。

                                                                                                                                                                                  D'2'に変更すると。10分でトップスピードです。

                                                                                                                                                                                  さらに、D'2'でTIME100に変更すると、1分でトップスピードです。

                                                                                                                                                                                  D'1'に戻してTIME100では、3分でトップスピードです。

                                                                                                                                                                                  TIME1Mのときは1〜9のLEDが1発ずつ順次点灯しA〜Cに移っていく様子が見えたのですが、TIME100では横並び3灯が同時点灯しているように見えこれがA〜Cと移ります。トップでは全点灯に見えます。別パタンにしなくてもスピードだけでパタンが違って見えるのがいいですね。

                                                                                                                                                                                  「1発点灯横移動」から始まるようにするには、TIME500を作ってそれをコールすればよさそうですが、TIME100のDの値を2+(5*99)-1+2+3で'99'にすればよいでしょうか。それとも、TIME5MにならってTIME100をコールする形にするのがよいでしょうか。

                                                                                                                                                                                  高速ではループがあっというまに過ぎてしまうのですが、D'1'のときが最高なのでしたら、短時間の変化が波のように繰り返されるのがいいかもしれませんね。
                                                                                                                                                                                  Re^87: LED Cube
                                                                                                                                                                                  daruma 2017/11/26 10:11
                                                                                                                                                                                  1. [3544] >TIME500を作ってそれをコールすればよさそうですが、
                                                                                                                                                                                    >TIME100のDの値を2+(5*99)-1+2+3で'99'にすればよいでしょうか。
                                                                                                                                                                                    >それとも、TIME5MにならってTIME100をコールする形にするのがよいでしょうか。

                                                                                                                                                                                    サブルーチンの多重コールは出来るだけ避けた方がいいので、大幅に可読性が落ちる場合を除いて、TIME100のDの値を増やす方がいいですが、現状では500マイクロ秒のウェイトが何箇所も必要な状況ではないので、WAITXのループ内でCALL TIME100を複数回(5回)繰り返すほうが、プログラムが短くて微調整もしやすいです。

                                                                                                                                                                                    難点は美しくないというだけですね。
                                                                                                                                                                                    Re^88: LED Cube
                                                                                                                                                                                    なんじゃらほい 2017/11/26 11:53
                                                                                                                                                                                    1. [3545] TIME100のサブルーチンはそのままにしてコピペで同様のサブルーチンを作り、T_LP1のラベルが重複するのでT_LP1bとしました。いろいろ試してみた結果、101行MOVLW D'5'にして、TIME150 MOVLW D'29'のサブルーチンを呼ぶことにしました。
                                                                                                                                                                                      これで、
                                                                                                                                                                                      ・1発点灯横走り
                                                                                                                                                                                      ・2発点灯(に見える)横走り
                                                                                                                                                                                      ・3発点灯(に見える)横走り
                                                                                                                                                                                      ・3発点灯(に見える)縦走り
                                                                                                                                                                                      ・全点灯(に見える)トップスピード
                                                                                                                                                                                      の変化を上り坂1分下り坂1分で繰り返します。
                                                                                                                                                                                      TIME150(D'29')より速いと1発点灯から始まらず、それより遅いと1発点灯フェイズが長すぎます。
                                                                                                                                                                                      MAIN内のSTEPDATAが小さいと所要時間が長くかかって、大きいと高速フェイズがあっというまに通り過ぎ、D'5'が落ち着きどころです。
                                                                                                                                                                                      低速フェイズがあまり長くならず高速フェイズがもうすこしたっぷり見られるとよりいいのですが、回数で回しているのでそうは行きませんよね。

                                                                                                                                                                                      これまでブレッドボードで実験していましたので、これから基板図を描きます。

                                                                                                                                                                                      ところで、「30リセットで動かなくなる」問題はこのバージョンももっているでしょうか。
                                                                                                                                                                                      Re^89: LED Cube
                                                                                                                                                                                      daruma 2017/11/27 15:17
                                                                                                                                                                                      1. [3546] > これで、
                                                                                                                                                                                        > ・1発点灯横走り
                                                                                                                                                                                        > ・2発点灯(に見える)横走り
                                                                                                                                                                                        > ・3発点灯(に見える)横走り
                                                                                                                                                                                        > ・3発点灯(に見える)縦走り
                                                                                                                                                                                        > ・全点灯(に見える)トップスピード
                                                                                                                                                                                        > の変化を上り坂1分下り坂1分で繰り返します。

                                                                                                                                                                                        ずいぶん頑張りましたね。

                                                                                                                                                                                        > 低速フェイズがあまり長くならず高速フェイズがもうすこしたっぷり見られるとよりいいのですが、回数で回しているのでそうは行きませんよね。

                                                                                                                                                                                        現状レベルの延長線で高速フェイズの場合だけカウントダウンを遅くする方法があります。

                                                                                                                                                                                        例えば
                                                                                                                                                                                        変数レジスタ割付定義
                                                                                                                                                                                        CHOUFU EQU 29H

                                                                                                                                                                                        にレジスタのラベルを追加し
                                                                                                                                                                                        MOVLW D'5'
                                                                                                                                                                                        MOVWF STEPDATA

                                                                                                                                                                                        のあとに

                                                                                                                                                                                        CLRF CHOUFU

                                                                                                                                                                                        を追加

                                                                                                                                                                                        MAIN
                                                                                                                                                                                        BTFSC CHOUFU,0 ;重複フラグをチェック
                                                                                                                                                                                        GOTO S1START ;フラグ1ならS1STARTへ

                                                                                                                                                                                        MOVLW D'200' ;L SET W
                                                                                                                                                                                        SUBWF DPCNT,W ;F-W
                                                                                                                                                                                        BTFSS STATUS,C ;200以下だとS2STARTへ
                                                                                                                                                                                        GOTO S2START

                                                                                                                                                                                        S1START CLRF CHOUFU
                                                                                                                                                                                        GOTO UPSTART

                                                                                                                                                                                        S2START BSF CHOUFU,0 ;重複フラグをセット

                                                                                                                                                                                        UPSTART

                                                                                                                                                                                        ;TOP
                                                                                                                                                                                        CALL SET_A
                                                                                                                                                                                        CALL DOWN_S

                                                                                                                                                                                        このようにDPCNTの値をチェックして、基準値以下の場合のみフラグを立てて、

                                                                                                                                                                                        カウントダウンの直前に

                                                                                                                                                                                        BTFSC CHOUFU,0
                                                                                                                                                                                        GOTO S1START

                                                                                                                                                                                        CLRF CHOUFU

                                                                                                                                                                                        ;DPCNTのカウントダウン処理(通常の減算処理)
                                                                                                                                                                                        MOVF STEPDATA,W
                                                                                                                                                                                        SUBWF DPCNT,F ;F-W
                                                                                                                                                                                        BTFSC STATUS,C ;UNDER 0 THEN 0
                                                                                                                                                                                        GOTO MAIN

                                                                                                                                                                                        重複フラグをチェックし、フラグが立っている場合のみカウントダウンを行わずに、表示ルーチントップへジャンプさせれば、この値の場合ではDPCNTで200以下になると2回ずつ同じスピードでループするようになります。

                                                                                                                                                                                        同様に減速ループにもラベルを変更して組み込めば、こちらも速度が速いときのみ2回ループになるので、高速時の表示時間が長くなります。
                                                                                                                                                                                        2回では「焼け石に水」感が強いですが。

                                                                                                                                                                                        まあ、これは初級レベルの力業プログラムで、中級レベルのプログラムなら割り込みを使って、一定時間ごとにカウントダウンさせるという方法も可能です。

                                                                                                                                                                                        というか、まともなプログラマなら割り込み提案しますね。
                                                                                                                                                                                        ただ、割り込みを使うとなると、インターバル時間を数値で出さなければなりません。しかもレジスタの設定が結構面倒です。

                                                                                                                                                                                        参考
                                                                                                                                                                                        http://ktsite.ddo.jp/PIC/16f88/TMR0.html

                                                                                                                                                                                        4MHZなら65mS位までタイマー0でインターバルが作れます。
                                                                                                                                                                                        タイマー1を使えばもっと長いインターバルも作れます。

                                                                                                                                                                                        > ところで、「30リセットで動かなくなる」問題はこのバージョンももっているでしょうか。

                                                                                                                                                                                        ありません。多分darumaさんが頑張って組み込まないとそうなりません(笑)
                                                                                                                                                                                        Re^90: LED Cube
                                                                                                                                                                                        なんじゃらほい 2017/11/27 19:59
                                                                                                                                                                                        1. [3547] ; 変数レジスタ割付定義 に
                                                                                                                                                                                          CHOUFU EQU 29H
                                                                                                                                                                                          を加えました。

                                                                                                                                                                                          ; 入出力ピンモード初期化 の下の方を
                                                                                                                                                                                          MOVLW D'5'
                                                                                                                                                                                          MOVWF STEPDATA
                                                                                                                                                                                          CLRF CHOUFU  ;←追加
                                                                                                                                                                                          としました。

                                                                                                                                                                                          MAIN の冒頭に

                                                                                                                                                                                          BTFSC CHOUFU,0 ;重複フラグをチェック
                                                                                                                                                                                          GOTO S1START ;フラグ1ならS1STARTへ

                                                                                                                                                                                          CLRF CHOUFU

                                                                                                                                                                                          MOVLW D'200' ;L SET W
                                                                                                                                                                                          SUBWF DPCNT,W ;F-W
                                                                                                                                                                                          BTFSS STATUS,C ;200以下だとS2STARTへ
                                                                                                                                                                                          GOTO S2START

                                                                                                                                                                                          S1START CLRF CHOUFU
                                                                                                                                                                                          GOTO UPSTART

                                                                                                                                                                                          S2START BSF CHOUFU,0 ;重複フラグをセット

                                                                                                                                                                                          UPSTART
                                                                                                                                                                                          を加えました。

                                                                                                                                                                                          これでひとまず走りました。

                                                                                                                                                                                          次に減速ループです。
                                                                                                                                                                                          MAIN2 が減速ループですよね。
                                                                                                                                                                                          冒頭に
                                                                                                                                                                                          BTFSC CHOUFU,0 ;重複フラグをチェック
                                                                                                                                                                                          GOTO S3START ;フラグ1ならS3STARTへ

                                                                                                                                                                                          CLRF CHOUFU

                                                                                                                                                                                          MOVLW D'200' ;L SET W
                                                                                                                                                                                          SUBWF DPCNT,W ;F-W
                                                                                                                                                                                          BTFSS STATUS,C ;200以下だとS4STARTへ
                                                                                                                                                                                          GOTO S4START

                                                                                                                                                                                          S3START CLRF CHOUFU
                                                                                                                                                                                          GOTO DNSTART

                                                                                                                                                                                          S4START BSF CHOUFU,0 ;重複フラグをセット

                                                                                                                                                                                          DNSTART

                                                                                                                                                                                          を加えました。
                                                                                                                                                                                          S1STARTをS3STARTに、S2STARTをS4STARTに変更してあります。
                                                                                                                                                                                          UPSTARTをDNSTARTに変更しました。

                                                                                                                                                                                          これも走りました。

                                                                                                                                                                                          やったことを振り返りながら以上書きましたが、あと何かしたかなぁ・・・。

                                                                                                                                                                                          さてこのバージョンも走ったわけですが、これで正しいでしょうか。体感的に、「う〜ん、いくらか最高速フェイズが長くなったかなあ」くらいです。「一瞬」が「二瞬」になったと言いましょうか・・・。

                                                                                                                                                                                          > > ところで、「30リセットで動かなくなる」問題はこのバージョンももっているでしょうか。
                                                                                                                                                                                          > ありません。多分darumaさんが頑張って組み込まないとそうなりません(笑)

                                                                                                                                                                                          安心しました。そんな頑張りはしません。

                                                                                                                                                                                          ※ 短い周期で繰り返すように、スピード変化刻みをD'5'からD'10'に増やしました。上りつめるまで25秒位です。
                                                                                                                                                                                          Re^91: LED Cube
                                                                                                                                                                                          daruma 2017/11/28 10:50
                                                                                                                                                                                          1. [3548] > さてこのバージョンも走ったわけですが、これで正しいでしょうか。

                                                                                                                                                                                            良さそうですが、真偽は計測器で測らないと不明でしょうね。



                                                                                                                                                                                            >体感的に、「う〜ん、いくらか最高速フェイズが長くなったかなあ」くらいです。「一瞬」が「二瞬」になったと言いましょうか・・・。

                                                                                                                                                                                            そんなものでしょう。

                                                                                                                                                                                            では.チカラ技の第2弾(笑)

                                                                                                                                                                                            > MAIN



                                                                                                                                                                                            > UPSTART

                                                                                                                                                                                            の間のものを

                                                                                                                                                                                            MOVF CHOUFU,F
                                                                                                                                                                                            BTFSS STATUS,Z
                                                                                                                                                                                            GOTO UPSTART ;0以外なら重複回数設定済みとして表示を実行

                                                                                                                                                                                            NOWCNTCK ;重複カウンタが0の場合のみ現在のDPCNT値をチェック、重複回数を設定
                                                                                                                                                                                            ;「以下になる状態」を求めるため、チェックする値の小さいものから処理する
                                                                                                                                                                                            ;条件分岐はもっと増やせるが1項目ごとに1ターン(一巡)で10マイクロ秒位の遅れ(点灯インターバル)が増加する

                                                                                                                                                                                            MOVLW D'32' ;L SET W
                                                                                                                                                                                            SUBWF DPCNT,W ;F-W
                                                                                                                                                                                            BTFSS STATUS,C ;32以下だとS1SETへ
                                                                                                                                                                                            GOTO S1SET

                                                                                                                                                                                            MOVLW D'64' ;L SET W
                                                                                                                                                                                            SUBWF DPCNT,W ;F-W
                                                                                                                                                                                            BTFSS STATUS,C ;64以下だとS2SETへ
                                                                                                                                                                                            GOTO S2SET

                                                                                                                                                                                            MOVLW D'128' ;L SET W
                                                                                                                                                                                            SUBWF DPCNT,W ;F-W
                                                                                                                                                                                            BTFSS STATUS,C ;128以下だとS3SETへ
                                                                                                                                                                                            GOTO S3SET

                                                                                                                                                                                            GOTO UPSTART ;どれも該当しないなら、そのまま表示へ

                                                                                                                                                                                            S1SET MOVLW D'200'
                                                                                                                                                                                            MOVWF CHOUFU
                                                                                                                                                                                            GOTO UPSTART

                                                                                                                                                                                            S2SET MOVLW D'120'
                                                                                                                                                                                            MOVWF CHOUFU
                                                                                                                                                                                            GOTO UPSTART

                                                                                                                                                                                            S3SET MOVLW D'30'
                                                                                                                                                                                            MOVWF CHOUFU
                                                                                                                                                                                            GOTO UPSTART

                                                                                                                                                                                            に、入れ替え、


                                                                                                                                                                                            ;MID2
                                                                                                                                                                                            CALL SET_B
                                                                                                                                                                                            CALL DOWN_S

                                                                                                                                                                                            の表示終わり後を

                                                                                                                                                                                            MOVF CHOUFU,F ;重複カウンタが0にならそのままCD_GOへ(初回・重複範囲外)
                                                                                                                                                                                            BTFSC STATUS,Z
                                                                                                                                                                                            GOTO CD_GO

                                                                                                                                                                                            DECFSZ CHOUFU,F ;重複カウンタをカウントダウンし、0になるまでUPSTARTへ
                                                                                                                                                                                            GOTO UPSTART
                                                                                                                                                                                            GOTO CD_GO ;0になったらDPCNTのカウントダウンへ

                                                                                                                                                                                            に入れ替え、



                                                                                                                                                                                            カウントダウン部分にCD_GOのラベルを追加で

                                                                                                                                                                                            CD_GO MOVF STEPDATA,W
                                                                                                                                                                                            SUBWF DPCNT,F ;F-W
                                                                                                                                                                                            BTFSC STATUS,C ;UNDER 0 THEN 0
                                                                                                                                                                                            GOTO MAIN ;F-W

                                                                                                                                                                                            4段階の重複ループ回数の設定が出来るようになります。

                                                                                                                                                                                            しきい値や重複回数をカスタマイズすれば、見せたい部分を長く見せられるようになります。

                                                                                                                                                                                            更新済みソースはこちら
                                                                                                                                                                                            https://yahoo.jp/box/7ZY1_x
                                                                                                                                                                                            Re^92: LED Cube
                                                                                                                                                                                            なんじゃらほい 2017/11/28 19:35
                                                                                                                                                                                            1. [3549] どうも難しいです。

                                                                                                                                                                                              > 表示終わり後を
                                                                                                                                                                                              これはどこでしょう。

                                                                                                                                                                                              > CD_GOのラベルを追加
                                                                                                                                                                                              ラベルを付けるのは、
                                                                                                                                                                                              ;MID2
                                                                                                                                                                                              CALL SET_B
                                                                                                                                                                                              CALL DOWN_S
                                                                                                                                                                                              の下の
                                                                                                                                                                                              MOVF STEPDATA,W
                                                                                                                                                                                              のところでしょうか。
                                                                                                                                                                                              Re^93: LED Cube
                                                                                                                                                                                              daruma 2017/11/28 20:51
                                                                                                                                                                                              1. [3550] 昨夜の「チカラ技の第2弾」はさておき、

                                                                                                                                                                                                フラグを立てるバージョンで、WAITXでフラグを見て立っていたらTIMEをたくさん呼ぶ作戦を試みました。

                                                                                                                                                                                                WAITX MOVF DPCNT,W
                                                                                                                                                                                                MOVWF DPCNTW ;
                                                                                                                                                                                                TLXR CALL TIME150

                                                                                                                                                                                                BTFSS CHOUFU,0 ;重複フラグをチェック
                                                                                                                                                                                                GOTO WAITX2 ;フラグ0ならWAITX2へ
                                                                                                                                                                                                CLRF CHOUFU
                                                                                                                                                                                                CALL TIME150
                                                                                                                                                                                                CALL TIME150
                                                                                                                                                                                                CALL TIME150
                                                                                                                                                                                                CALL TIME150
                                                                                                                                                                                                CALL TIME150

                                                                                                                                                                                                WAITX2 MOVF DPCNTW,F
                                                                                                                                                                                                BTFSC STATUS,Z
                                                                                                                                                                                                RETURN
                                                                                                                                                                                                DECFSZ DPCNTW,F
                                                                                                                                                                                                GOTO TLXR
                                                                                                                                                                                                RETURN

                                                                                                                                                                                                上記がよいかどうか以前に、フラグが立った状態でここへ来ないのです。BTFSSとBTFSCとで試して、判断分岐が動作すること自体は確かめたのですが、CHOUFUはいつも0のようです。

                                                                                                                                                                                                もしや、
                                                                                                                                                                                                http://mpga.jp/akizuki-fan/index.php?mode=article&id=3547&page=1
                                                                                                                                                                                                のバージョンでフラグが機能していないのではと不安になりました。
                                                                                                                                                                                                そこで、フラグバージョンとその前のバージョンとを10周期回して計時し比較しました。どちらも、STEPDATAは'5'、TIME150です。
                                                                                                                                                                                                結果、10回目のトップスピードに達する所要時間はどちらも14分00秒でした。「一瞬が二瞬に」もなっていなかったようです。
                                                                                                                                                                                                1秒が2秒にとなっても10回で10秒遅くなるはずですよね。
                                                                                                                                                                                                私が書き変えた部分、どこかまずいでしょうか。
                                                                                                                                                                                                以下、長いですが貼ります。

                                                                                                                                                                                                ;******************************
                                                                                                                                                                                                ; 変数レジスタ割付定義
                                                                                                                                                                                                ;******************************

                                                                                                                                                                                                DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
                                                                                                                                                                                                CNT1 EQU 21H ;タイマ用カウンタ
                                                                                                                                                                                                CNT2 EQU 22H
                                                                                                                                                                                                CNT3 EQU 23H
                                                                                                                                                                                                CNT4 EQU 24H
                                                                                                                                                                                                CNT5 EQU 25H
                                                                                                                                                                                                DPCNT EQU 26H
                                                                                                                                                                                                DPCNTW EQU 27H
                                                                                                                                                                                                STEPDATA EQU 28H
                                                                                                                                                                                                STAGECNT EQU 2DH

                                                                                                                                                                                                CHOUFU EQU 29H

                                                                                                                                                                                                ORG 00H

                                                                                                                                                                                                ;************************************
                                                                                                                                                                                                ; 入出力ピンモード初期化
                                                                                                                                                                                                ;************************************

                                                                                                                                                                                                PORT_INI
                                                                                                                                                                                                ;中略

                                                                                                                                                                                                BSF STATUS,RP0 ;Set page 1

                                                                                                                                                                                                MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
                                                                                                                                                                                                MOVWF OSCCON ;BANK1

                                                                                                                                                                                                MOVLW B'00000000' ; 0-7 OUTPUT
                                                                                                                                                                                                MOVWF TRISB ;PortB set
                                                                                                                                                                                                MOVLW B'11110000' ;RA0〜3以外IN
                                                                                                                                                                                                MOVWF TRISA ;PortA set

                                                                                                                                                                                                BSF OPTION_REG,7 ;BANK1 0でプルアップ有効
                                                                                                                                                                                                BCF STATUS,RP0 ;Set Page 0

                                                                                                                                                                                                MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
                                                                                                                                                                                                MOVWF CMCON ; コンパレータOFF
                                                                                                                                                                                                CLRF PORTA
                                                                                                                                                                                                CLRF PORTB ;all clear

                                                                                                                                                                                                BSF PORTA,1 ;ABCコントロール クリア済み
                                                                                                                                                                                                BSF PORTA,2 ;ABCコントロール クリア済み
                                                                                                                                                                                                BSF PORTA,3 ;ABCコントロール クリア済み

                                                                                                                                                                                                MOVLW D'255'
                                                                                                                                                                                                MOVWF DPCNT

                                                                                                                                                                                                MOVLW D'5'
                                                                                                                                                                                                MOVWF STEPDATA

                                                                                                                                                                                                CLRF CHOUFU

                                                                                                                                                                                                GOTO MAIN

                                                                                                                                                                                                ;...............................
                                                                                                                                                                                                MAIN

                                                                                                                                                                                                BTFSC CHOUFU,0 ;重複フラグをチェック
                                                                                                                                                                                                GOTO S1START ;フラグ1ならS1STARTへ

                                                                                                                                                                                                CLRF CHOUFU

                                                                                                                                                                                                MOVLW D'200' ;L SET W
                                                                                                                                                                                                SUBWF DPCNT,W ;F-W
                                                                                                                                                                                                BTFSS STATUS,C ;200以下だとS2STARTへ
                                                                                                                                                                                                GOTO S2START

                                                                                                                                                                                                S1START CLRF CHOUFU
                                                                                                                                                                                                GOTO UPSTART

                                                                                                                                                                                                S2START BSF CHOUFU,0 ;重複フラグをセット

                                                                                                                                                                                                UPSTART

                                                                                                                                                                                                ;TOP
                                                                                                                                                                                                CALL SET_A
                                                                                                                                                                                                CALL DOWN_S

                                                                                                                                                                                                ;MID
                                                                                                                                                                                                CALL SET_B
                                                                                                                                                                                                CALL DOWN_S

                                                                                                                                                                                                ;LOWER
                                                                                                                                                                                                CALL SET_C
                                                                                                                                                                                                CALL DOWN_S

                                                                                                                                                                                                ;MID2
                                                                                                                                                                                                CALL SET_B
                                                                                                                                                                                                CALL DOWN_S

                                                                                                                                                                                                MOVF STEPDATA,W
                                                                                                                                                                                                SUBWF DPCNT,F ;F-W
                                                                                                                                                                                                BTFSC STATUS,C ;UNDER 0 THEN 0
                                                                                                                                                                                                GOTO MAIN

                                                                                                                                                                                                MOVLW D'1'
                                                                                                                                                                                                MOVWF DPCNT

                                                                                                                                                                                                MAIN2

                                                                                                                                                                                                BTFSC CHOUFU,0 ;重複フラグをチェック
                                                                                                                                                                                                GOTO S3START ;フラグ1ならS3STARTへ

                                                                                                                                                                                                CLRF CHOUFU

                                                                                                                                                                                                MOVLW D'200' ;L SET W
                                                                                                                                                                                                SUBWF DPCNT,W ;F-W
                                                                                                                                                                                                BTFSS STATUS,C ;200以下だとS4STARTへ
                                                                                                                                                                                                GOTO S4START

                                                                                                                                                                                                S3START CLRF CHOUFU
                                                                                                                                                                                                GOTO DNSTART

                                                                                                                                                                                                S4START BSF CHOUFU,0 ;重複フラグをセット

                                                                                                                                                                                                DNSTART

                                                                                                                                                                                                ;*********************************
                                                                                                                                                                                                ; タイマーサブルーチン 4MHZ
                                                                                                                                                                                                ;*********************************

                                                                                                                                                                                                TIME100 MOVLW D'19' ;2+(5*19)-1+2+3=100 1×100=100MicroSec
                                                                                                                                                                                                MOVWF CNT1
                                                                                                                                                                                                T_LP1 NOP
                                                                                                                                                                                                NOP
                                                                                                                                                                                                NOP
                                                                                                                                                                                                DECFSZ CNT1,F
                                                                                                                                                                                                GOTO T_LP1
                                                                                                                                                                                                NOP
                                                                                                                                                                                                NOP
                                                                                                                                                                                                RETURN ;99Micro sec(about)

                                                                                                                                                                                                TIME150 MOVLW D'29' ;2+(5*29)-1+2+3=150 1×150=150MicroSec
                                                                                                                                                                                                MOVWF CNT1
                                                                                                                                                                                                T_LP1b NOP
                                                                                                                                                                                                NOP
                                                                                                                                                                                                NOP
                                                                                                                                                                                                DECFSZ CNT1,F
                                                                                                                                                                                                GOTO T_LP1b
                                                                                                                                                                                                NOP
                                                                                                                                                                                                NOP
                                                                                                                                                                                                RETURN ;150Micro sec(about)

                                                                                                                                                                                                ご面倒をおかけします。
                                                                                                                                                                                                Re^94: LED Cube
                                                                                                                                                                                                daruma 2017/11/29 15:06
                                                                                                                                                                                                1. [3551] > そこで、フラグバージョンとその前のバージョンとを10周期回して計時し比較しました。どちらも、STEPDATAは'5'、TIME150です。
                                                                                                                                                                                                  > 結果、10回目のトップスピードに達する所要時間はどちらも14分00秒でした。「一瞬が二瞬に」もなっていなかったようです。
                                                                                                                                                                                                  > 1秒が2秒にとなっても10回で10秒遅くなるはずですよね。
                                                                                                                                                                                                  > 私が書き変えた部分、どこかまずいでしょうか。

                                                                                                                                                                                                  >
                                                                                                                                                                                                  > ;MID2
                                                                                                                                                                                                  > CALL SET_B
                                                                                                                                                                                                  > CALL DOWN_S
                                                                                                                                                                                                  >
                                                                                                                                                                                                  > MOVF STEPDATA,W
                                                                                                                                                                                                  > SUBWF DPCNT,F ;F-W
                                                                                                                                                                                                  > BTFSC STATUS,C ;UNDER 0 THEN 0
                                                                                                                                                                                                  > GOTO MAIN
                                                                                                                                                                                                  >
                                                                                                                                                                                                  > MOVLW D'1'
                                                                                                                                                                                                  > MOVWF DPCNT

                                                                                                                                                                                                  これでは、フラグが立とうが立つまいがループ回数は増えませんから、時間に大差がなくても不思議ではありません。

                                                                                                                                                                                                  http://mpga.jp/akizuki-fan/index.php?mode=article&id=3546&page=1
                                                                                                                                                                                                  >このようにDPCNTの値をチェックして、基準値以下の場合のみフラグを立てて、

                                                                                                                                                                                                  >カウントダウンの直前に

                                                                                                                                                                                                  >BTFSC CHOUFU,0
                                                                                                                                                                                                  >GOTO S1START

                                                                                                                                                                                                  >CLRF CHOUFU

                                                                                                                                                                                                  >;DPCNTのカウントダウン処理(通常の減算処理)
                                                                                                                                                                                                  >MOVF STEPDATA,W
                                                                                                                                                                                                  >SUBWF DPCNT,F ;F-W
                                                                                                                                                                                                  >BTFSC STATUS,C ;UNDER 0 THEN 0
                                                                                                                                                                                                  >GOTO MAIN

                                                                                                                                                                                                  >重複フラグをチェックし、フラグが立っている場合のみカウント
                                                                                                                                                                                                  >ダウンを行わずに、表示ルーチントップへジャンプさせれば、
                                                                                                                                                                                                  >この値の場合ではDPCNTで200以下になると2回ずつ同じ
                                                                                                                                                                                                  >スピードでループするようになります。

                                                                                                                                                                                                  それから,WAITXは点灯時間であり=実質移動速度ですから、これを増やしても移動速度が遅くなるだけです。

                                                                                                                                                                                                  あと、フラグはDPCNTが199以下の時にしか立ちません。
                                                                                                                                                                                                  フラグ立てのしきい値はもっと小さくないと中速域がかったるくなる可能性があります。

                                                                                                                                                                                                  >昨夜の「チカラ技の第2弾」はさておき、

                                                                                                                                                                                                  昨夜の時点で修正ソースがアップロードされています。
                                                                                                                                                                                                  判らなかったら、そちらを実行してみて下さい。
                                                                                                                                                                                                  Re^95: LED Cube
                                                                                                                                                                                                  なんじゃらほい 2017/11/29 19:27
                                                                                                                                                                                                  1. [3552] > それから,WAITXは点灯時間であり=実質移動速度ですから、これを増やしても移動速度が遅くなるだけです。

                                                                                                                                                                                                    とんだ考え違いをしてしまいました。「点灯時間が延びる→そのフェイズの時間が長くなる」と思いついたのですが、延びたら低速になるんですよね。
                                                                                                                                                                                                    回数を増やすことでしかそのフェイズの時間を長くすることはできないんですね。

                                                                                                                                                                                                    で、先日のバージョンでループを増やしたつもりが
                                                                                                                                                                                                    >重複フラグをチェックし、フラグが立っている場合のみカウント
                                                                                                                                                                                                    > >ダウンを行わずに、表示ルーチントップへジャンプさせれば、
                                                                                                                                                                                                    ができていなかったのですね。「一瞬が二瞬に」なっていなかったんですね。未熟でした。

                                                                                                                                                                                                    > 昨夜の時点で修正ソースがアップロードされています。
                                                                                                                                                                                                    またしても遡っての追記に気づきませんでした。すみません。
                                                                                                                                                                                                    ダウンロードしてまずそのまま走らせました。
                                                                                                                                                                                                    STEPDATAが'1'でTIME1Mですから、長時間かかる動作ですね。1時間10分までは見ていました。
                                                                                                                                                                                                    そのあと、STEPDATAを'5'でTIME100にしたところ、順調にスピードアップしていったのですが、全点灯(に見える)まで上りついたところでそのままの状態になってしまいました。減速に転じません。どうしたことでしょう。カウンタが通り越してしまってチェックにあてはまらなくなったのでしょうか。STEPDATAが'1'でTIME1Mのままでも、辛抱強く見ていたらそうなったのかな。

                                                                                                                                                                                                    ※ STEPDATAが'1'でTIME1Mのものを寝る前に再度走らせておきました。朝になったら、全点灯(に見える)状態から抜けない状態になっていました。
                                                                                                                                                                                                    Re^96: LED Cube
                                                                                                                                                                                                    daruma 2017/11/29 23:54
                                                                                                                                                                                                    1. [3553] >どうしたことでしょう。カウンタが通り越してしまってチェックにあてはまらなくなったのでしょうか。
                                                                                                                                                                                                      >STEPDATAが'1'でTIME1Mのままでも、辛抱強く見ていたらそうなったのかな。
                                                                                                                                                                                                      >※ STEPDATAが'1'でTIME1Mのものを寝る前に再度走らせておきました。
                                                                                                                                                                                                      >朝になったら、全点灯(に見える)状態から抜けない状態になっていました。

                                                                                                                                                                                                      STEPDATA×ウェイトXの基本時間×重複設定回数なので、パラメータの設定次第で数時間になることはおかしくありません。

                                                                                                                                                                                                      こういう場合は、STEPDATAを52とかにして、無限ループか、実行時間が想定以上に長いのかの切り分けをして下さい。



                                                                                                                                                                                                      チカラ技第2弾のソースは240行〜260行の間にバグの原因があります。

                                                                                                                                                                                                      理解すれば簡単だし、勉強になるので自分で直して下さい

                                                                                                                                                                                                      チカラ技第2弾の修正HEX STEP7 1mS
                                                                                                                                                                                                      :020000040000FA
                                                                                                                                                                                                      :10000000831660308F0000308600F0308500811745
                                                                                                                                                                                                      :10001000831207309C00850186018514051585151E
                                                                                                                                                                                                      :10002000FF30A6000730A800A9011628A908031D63
                                                                                                                                                                                                      :100030002F2820302602031C262840302602031CCD
                                                                                                                                                                                                      :10004000292880302602031C2C282F28C830A9001C
                                                                                                                                                                                                      :100050002F287830A9002F281E30A9002F287120C2
                                                                                                                                                                                                      :100060007D2075207D2079207D2075207D20A908A8
                                                                                                                                                                                                      :1000700003193D28A90B2F283D282808A60203189C
                                                                                                                                                                                                      :1000800016280130A600A908031D5C28203026028E
                                                                                                                                                                                                      :10009000031C532840302602031C562880302602B9
                                                                                                                                                                                                      :1000A000031C59285C28C830A9005C287830A900B6
                                                                                                                                                                                                      :1000B0005C281E30A9005C2871207D2075207D20E1
                                                                                                                                                                                                      :1000C00079207D2075207D20A90803196A28A90BB5
                                                                                                                                                                                                      :1000D0005C286A282808A607031C4328FF30A600CE
                                                                                                                                                                                                      :1000E0001628851005158515080085140511851538
                                                                                                                                                                                                      :1000F00008008514051585110800051086010614F1
                                                                                                                                                                                                      :100100009A20860186149A20860106159A20860177
                                                                                                                                                                                                      :1001100086159A20860106169A20860186169A2050
                                                                                                                                                                                                      :10012000860106179A20860186179A2086010514F3
                                                                                                                                                                                                      :100130009A2008002608A700AD20A7080319080088
                                                                                                                                                                                                      :10014000A70B9C2808001330A1000000000000004D
                                                                                                                                                                                                      :10015000A10BA5280000000008006430A3000000E7
                                                                                                                                                                                                      :10016000000000000000000000000000A30BAF280A
                                                                                                                                                                                                      :1001700008003230A400A320A40BBB280800643080
                                                                                                                                                                                                      :10018000A400A320A40BC12808002830A500B92092
                                                                                                                                                                                                      :10019000A50BC72808006430A500B920A50BCD2801
                                                                                                                                                                                                      :0E01A0000800C930A500B920A50BD32808001F
                                                                                                                                                                                                      :02400E00503F21
                                                                                                                                                                                                      :02401000FD3F72
                                                                                                                                                                                                      :00000001FF

                                                                                                                                                                                                      ;

                                                                                                                                                                                                      チカラ技第3弾のHEX STEP変化版 重複あり1mS
                                                                                                                                                                                                      :020000040000FA
                                                                                                                                                                                                      :10000000831660308F0000308600F0308500811745
                                                                                                                                                                                                      :10001000831207309C00850186018514051585151E
                                                                                                                                                                                                      :10002000FF30A6000C30A800A9011628A908031D5E
                                                                                                                                                                                                      :10003000372820302602031C282840302602031CC3
                                                                                                                                                                                                      :100040002D2880302602031C32280C30A8003728C7
                                                                                                                                                                                                      :10005000C830A9000130A80037287830A900043042
                                                                                                                                                                                                      :10006000A80037281E30A9000830A80037288120B2
                                                                                                                                                                                                      :100070008D2085208D2089208D2085208D20A90828
                                                                                                                                                                                                      :1000800003194528A90B372845282808A602031874
                                                                                                                                                                                                      :1000900016280130A600A908031D6C28203026026E
                                                                                                                                                                                                      :1000A000031C5D2840302602031C62288030260293
                                                                                                                                                                                                      :1000B000031C67280C30A8006C28C830A900013048
                                                                                                                                                                                                      :1000C000A8006C287830A9000430A8006C281E30E5
                                                                                                                                                                                                      :1000D000A9000830A8006C2881208D2085208D2063
                                                                                                                                                                                                      :1000E00089208D2085208D20A90803197A28A90B45
                                                                                                                                                                                                      :1000F0006C287A282808A607031C4B28FF30A60086
                                                                                                                                                                                                      :100100001628851005158515080085140511851517
                                                                                                                                                                                                      :1001100008008514051585110800051086010614D0
                                                                                                                                                                                                      :10012000AA2086018614AA2086010615AA20860127
                                                                                                                                                                                                      :100130008615AA2086010616AA2086018616AA2000
                                                                                                                                                                                                      :1001400086010617AA2086018617AA2086010514B3
                                                                                                                                                                                                      :10015000AA2008002608A700BD20A7080319080048
                                                                                                                                                                                                      :10016000A70BAC2808001330A1000000000000001D
                                                                                                                                                                                                      :10017000A10BB5280000000008006430A3000000B7
                                                                                                                                                                                                      :10018000000000000000000000000000A30BBF28DA
                                                                                                                                                                                                      :1001900008003230A400B320A40BCB280800643040
                                                                                                                                                                                                      :1001A000A400B320A40BD12808002830A500C92042
                                                                                                                                                                                                      :1001B000A50BD72808006430A500C920A50BDD28B1
                                                                                                                                                                                                      :0E01C0000800C930A500C920A50BE3280800DF
                                                                                                                                                                                                      :02400E00503F21
                                                                                                                                                                                                      :02401000FD3F72
                                                                                                                                                                                                      :00000001FF



                                                                                                                                                                                                      頭脳技版TIMER1使用の最低加減速インターバル50mS版
                                                                                                                                                                                                      :020000040000FA
                                                                                                                                                                                                      :020000001828BE
                                                                                                                                                                                                      :08000800AB00030EAA00AC0AD4
                                                                                                                                                                                                      :1000100001302C02031D0E28AC0129145B200C10AA
                                                                                                                                                                                                      :1000200083160C1483122A0E8300AB0E2B0E0900CC
                                                                                                                                                                                                      :10003000831660308F0000308600F0308500811715
                                                                                                                                                                                                      :10004000831207309C000030900083160C1483123A
                                                                                                                                                                                                      :100050000B178B1785018601851405158515FF3053
                                                                                                                                                                                                      :10006000A6000130A800AC01A90136286020642058
                                                                                                                                                                                                      :100070007020682070206C20702068207020291C5F
                                                                                                                                                                                                      :10008000372810102808A602031836280130A600C9
                                                                                                                                                                                                      :10009000602064207020682070206C207020682010
                                                                                                                                                                                                      :1000A0007020291C492810102808A607031C48287E
                                                                                                                                                                                                      :1000B000FF30A6003628C9308E003C308F00080083
                                                                                                                                                                                                      :1000C000AC015B201014080085100515851508008B
                                                                                                                                                                                                      :1000D000851405118515080085140515851108007E
                                                                                                                                                                                                      :1000E0000510860106148D20860186148D20860158
                                                                                                                                                                                                      :1000F00006158D20860186158D20860106168D2019
                                                                                                                                                                                                      :10010000860186168D20860106178D2086018617AA
                                                                                                                                                                                                      :100110008D20860105148D2008002608A700962052
                                                                                                                                                                                                      :10012000A70803190800A70B8F2808001330A100A7
                                                                                                                                                                                                      :10013000000000000000A10B98280000000008004B
                                                                                                                                                                                                      :100140006430A30000000000000000000000000078
                                                                                                                                                                                                      :100150000000A30BA22808003230A4009620A40BB4
                                                                                                                                                                                                      :10016000AE2808006430A4009620A40BB428080030
                                                                                                                                                                                                      :100170002830A500AC20A50BBA2808006430A500E3
                                                                                                                                                                                                      :10018000AC20A50BC0280800C930A500AC20A50BE9
                                                                                                                                                                                                      :04019000C628080075
                                                                                                                                                                                                      :02400E00503F21
                                                                                                                                                                                                      :02401000FD3F72
                                                                                                                                                                                                      :00000001FF



                                                                                                                                                                                                      頭脳技版TIMER1使用の最低加減速インターバル250mS版
                                                                                                                                                                                                      :020000040000FA
                                                                                                                                                                                                      :020000001528C1
                                                                                                                                                                                                      :08000800AB00030EAA00AC0AD4
                                                                                                                                                                                                      :1000100005302C02031D0E28AC01291458200C10A9
                                                                                                                                                                                                      :100020002A0E8300AB0E2B0E0900831660308F0062
                                                                                                                                                                                                      :1000300000308600F03085008117831207309C0065
                                                                                                                                                                                                      :100040000030900083160C1483120B178B17850158
                                                                                                                                                                                                      :100050008601851405158515FF30A6000130A8001E
                                                                                                                                                                                                      :10006000AC01A90133285D2061206D2065206D2041
                                                                                                                                                                                                      :1000700069206D2065206D20291C34281010280867
                                                                                                                                                                                                      :10008000A602031833280130A6005D2061206D20F0
                                                                                                                                                                                                      :1000900065206D2069206D2065206D20291C462873
                                                                                                                                                                                                      :1000A00010102808A607031C4528FF30A600332897
                                                                                                                                                                                                      :1000B000C9308E003C308F000800AC01582010146D
                                                                                                                                                                                                      :1000C000080085100515851508008514051185158E
                                                                                                                                                                                                      :1000D0000800851405158511080005108601061411
                                                                                                                                                                                                      :1000E0008A20860186148A20860106158A208601C8
                                                                                                                                                                                                      :1000F00086158A20860106168A20860186168A20A1
                                                                                                                                                                                                      :10010000860106178A20860186178A208601051433
                                                                                                                                                                                                      :100110008A2008002608A7009320A70803190800D2
                                                                                                                                                                                                      :10012000A70B8C2808001330A1000000000000007D
                                                                                                                                                                                                      :10013000A10B95280000000008006430A300000017
                                                                                                                                                                                                      :10014000000000000000000000000000A30B9F283A
                                                                                                                                                                                                      :1001500008003230A4009320A40BAB2808006430C0
                                                                                                                                                                                                      :10016000A4009320A40BB12808002830A500A920E2
                                                                                                                                                                                                      :10017000A50BB72808006430A500A920A50BBD2851
                                                                                                                                                                                                      :0E0180000800C930A500A920A50BC32808005F
                                                                                                                                                                                                      :02400E00503F21
                                                                                                                                                                                                      :02401000FD3F72
                                                                                                                                                                                                      :00000001FF

                                                                                                                                                                                                      頭脳技版TIMER1使用の最低加減速インターバル250mS版 STEPDATA5 最低ウェイト150マイクロ秒
                                                                                                                                                                                                      :020000040000FA
                                                                                                                                                                                                      :020000001528C1
                                                                                                                                                                                                      :08000800AB00030EAA00AC0AD4
                                                                                                                                                                                                      :1000100005302C02031D0E28AC01291458200C10A9
                                                                                                                                                                                                      :100020002A0E8300AB0E2B0E0900831660308F0062
                                                                                                                                                                                                      :1000300000308600F03085008117831207309C0065
                                                                                                                                                                                                      :100040000030900083160C1483120B178B17850158
                                                                                                                                                                                                      :100050008601851405158515FF30A6000530A8001A
                                                                                                                                                                                                      :10006000AC01A90133285D2061206D2065206D2041
                                                                                                                                                                                                      :1000700069206D2065206D20291C34281010280867
                                                                                                                                                                                                      :10008000A602031833280130A6005D2061206D20F0
                                                                                                                                                                                                      :1000900065206D2069206D2065206D20291C462873
                                                                                                                                                                                                      :1000A00010102808A607031C4528FF30A600332897
                                                                                                                                                                                                      :1000B000C9308E003C308F000800AC01582010146D
                                                                                                                                                                                                      :1000C000080085100515851508008514051185158E
                                                                                                                                                                                                      :1000D0000800851405158511080005108601061411
                                                                                                                                                                                                      :1000E0008A20860186148A20860106158A208601C8
                                                                                                                                                                                                      :1000F00086158A20860106168A20860186168A20A1
                                                                                                                                                                                                      :10010000860106178A20860186178A208601051433
                                                                                                                                                                                                      :100110008A2008002608A7009D20A70803190800C8
                                                                                                                                                                                                      :10012000A70B8C2808001330A1000000000000007D
                                                                                                                                                                                                      :10013000A10B95280000000008001D30A100000060
                                                                                                                                                                                                      :1001400000000000A10B9F280000000008006430A0
                                                                                                                                                                                                      :10015000A3000000000000000000000000000000FC
                                                                                                                                                                                                      :10016000A30BA92808003230A4009320A40BB528C3
                                                                                                                                                                                                      :1001700008006430A4009320A40BBB28080028309A
                                                                                                                                                                                                      :10018000A500B320A50BC12808006430A500B3204A
                                                                                                                                                                                                      :10019000A50BC7280800C930A500B320A50BCD28A2
                                                                                                                                                                                                      :0201A000080055
                                                                                                                                                                                                      :02400E00503F21
                                                                                                                                                                                                      :02401000FD3F72
                                                                                                                                                                                                      :00000001FF

                                                                                                                                                                                                      TIMER1使用した頭脳技版のメインルーチン
                                                                                                                                                                                                      チカラ技2弾よりも大幅に短いです。
                                                                                                                                                                                                      MAIN
                                                                                                                                                                                                      CALL TM_SET
                                                                                                                                                                                                      UPSTART
                                                                                                                                                                                                      ;TOP
                                                                                                                                                                                                      CALL SET_A
                                                                                                                                                                                                      CALL DOWN_S
                                                                                                                                                                                                      ;MID
                                                                                                                                                                                                      CALL SET_B
                                                                                                                                                                                                      CALL DOWN_S
                                                                                                                                                                                                      ;LOWER
                                                                                                                                                                                                      CALL SET_C
                                                                                                                                                                                                      CALL DOWN_S
                                                                                                                                                                                                      ;MID2
                                                                                                                                                                                                      CALL SET_B
                                                                                                                                                                                                      CALL DOWN_S

                                                                                                                                                                                                      BTFSS CHOUFU,0 ;重複ビットチェックし、1になるまでDNSTARTへ
                                                                                                                                                                                                      GOTO UPSTART

                                                                                                                                                                                                      BCF T1CON,TMR1ON ;TMR1のTMR1ONビットをクリア カウント停止

                                                                                                                                                                                                      CD_GO MOVF STEPDATA,W
                                                                                                                                                                                                      SUBWF DPCNT,F ;F-W
                                                                                                                                                                                                      BTFSC STATUS,C ;DPCNT < 0 THEN C=0
                                                                                                                                                                                                      GOTO MAIN

                                                                                                                                                                                                      MOVLW D'1'
                                                                                                                                                                                                      MOVWF DPCNT
                                                                                                                                                                                                      MAIN2
                                                                                                                                                                                                      CALL TM_SET
                                                                                                                                                                                                      DNSTART
                                                                                                                                                                                                      ;TOP
                                                                                                                                                                                                      CALL SET_A
                                                                                                                                                                                                      CALL DOWN_S
                                                                                                                                                                                                      ;MID
                                                                                                                                                                                                      CALL SET_B
                                                                                                                                                                                                      CALL DOWN_S
                                                                                                                                                                                                      ;LOWER
                                                                                                                                                                                                      CALL SET_C
                                                                                                                                                                                                      CALL DOWN_S
                                                                                                                                                                                                      ;MID2
                                                                                                                                                                                                      CALL SET_B
                                                                                                                                                                                                      CALL DOWN_S

                                                                                                                                                                                                      BTFSS CHOUFU,0 ;重複ビットチェックし、1になるまでUPSTARTへ
                                                                                                                                                                                                      GOTO DNSTART
                                                                                                                                                                                                      BCF T1CON,TMR1ON ;TMR1のTMR1ONビットをクリア カウント停止

                                                                                                                                                                                                      CD_GO2 MOVF STEPDATA,W
                                                                                                                                                                                                      ADDWF DPCNT,F
                                                                                                                                                                                                      BTFSS STATUS,C ;OVER 255 THEN 1
                                                                                                                                                                                                      GOTO MAIN2

                                                                                                                                                                                                      MOVLW D'255'
                                                                                                                                                                                                      MOVWF DPCNT
                                                                                                                                                                                                      GOTO MAIN



                                                                                                                                                                                                      ;割り込みルーチン インターバルを50mSよりも長く出来るようにするために行数が増えてますが、50mS以下のみならもっと短くすることも可能。

                                                                                                                                                                                                      ORG 04H
                                                                                                                                                                                                      INTR MOVWF irq_wback ;save Wreg
                                                                                                                                                                                                      SWAPF STATUS,W ;save status reg
                                                                                                                                                                                                      MOVWF irq_sback

                                                                                                                                                                                                      INCF INT5CNT,F

                                                                                                                                                                                                      MOVLW D'1' ;割り込み周期でフラグを立てる値を決める 割り込み50ms×D'X'倍の設定
                                                                                                                                                                                                      SUBWF INT5CNT,W ;F-W
                                                                                                                                                                                                      BTFSS STATUS,Z
                                                                                                                                                                                                      GOTO CNCHKEND

                                                                                                                                                                                                      CLRF INT5CNT
                                                                                                                                                                                                      BSF CHOUFU,0

                                                                                                                                                                                                      CNCHKEND
                                                                                                                                                                                                      CALL CN_SET ;TIMER1カウントプリセット
                                                                                                                                                                                                      BCF PIR1,TMR1IF ;TIMER1 オーバーフローフラグのクリア

                                                                                                                                                                                                      RETBAT SWAPF irq_sback,W ;load status
                                                                                                                                                                                                      MOVWF STATUS
                                                                                                                                                                                                      SWAPF irq_wback,F ;load wk
                                                                                                                                                                                                      SWAPF irq_wback,W
                                                                                                                                                                                                      RETFIE ;割り込みを許可してリターン
                                                                                                                                                                                                      Re^97: LED Cube
                                                                                                                                                                                                      なんじゃらほい 2017/11/30 18:41