アセンブリ言語で学ぶ
プログラミングとマイコンの動作
この講座では,マイコンによる制御の仕方を,アセンブリ言語を使って解説します。初心者の人はもちろん,高級言語を使っているがハードウエアのレベルでマイコンがどのように機器を制御しているのかを改めて勉強したい人もどうぞ。
このコンテンツをご覧頂くにはFlash Player(7以降)が必要です。Flash Player 7より前のバージョンをお使いの場合は,こちらで最新版のFlash Playerをインストールしてからご覧ください。Macromedia Web Player ダウンロードセンター
- 第1回●LEDの点灯(1)
アセンブリ言語でプログラムを書いて実行する
LEDを点灯させるプログラムを,アセンブリ言語で書いてみましょう。LEDを点灯させる操作とはどのようなものなのか,まず回路の動作を説明します。その次に,プログラムを1行ずつ作成します。さらにプログラムを実行するまでの手順を一つずつ解説します。実際にLEDを点灯させてみましょう。独自連載記事 第1回 - 第2回●LEDの点灯(2)
二つのLEDを点灯,16進数で入出力ポートを設定する
まずLEDを点灯させるための回路やフローチャート,入出力ポートの復習をして,基本的なことをきっちりと覚えます。今回は入出力ポートを2進数ではなく16進数で設定し,二つのLEDを点灯させます。最後に,セクションとリセットベクタについて説明します。 独自連載記事 第2回 - 第3回●LEDの点滅(1)
待ち時間のサブルーチンを入れて点滅させる
LEDを点滅させてみましょう。LEDを点滅させるために,LEDの点灯と消灯を繰り返します。分岐命令やレジスタのビット操作を利用すると同時に,待ち時間のサブルーチンを作成します。マイコンの処理速度を考えながらLEDを制御します。独自連載記事 第3回 - 第4回●LEDの点滅(2)
排他的論理和を使って二つのLEDを交互に点滅させる
二つのLEDを交互に点滅させます。第3回で学んだことを利用しながら,プログラムをいくつか作ってみましょう。ビット反転や排他的論理和などを使いながら,効率のよいプログラムを作る方法を解説します。独自連載記事 第4回 - 第5回●スイッチでLEDを点灯(1)
スイッチを使って入力,条件分岐命令を使って点灯させる
前回までは,LEDの点灯という出力だけを扱うプログラムを組んできました。今回からスイッチ(SW)を使って入力の処理を行います。SWの状態を確認しながら,条件分岐命令でLEDを制御してみましょう。独自連載記事 第5回 - 第6回●スイッチでLEDを点灯(2)
スイッチを押してLEDを反転,フローチャートの重要性を実感する
スイッチを押すと,LEDが点灯したり消灯したりするプログラムを組んでみましょう。ここは,つまずく人が多いところです。思ったように動かないプログラムの例も挙げながら,フローチャートの重要性を学びます。独自連載記事 第6回 - 第7回●スイッチでLEDを点灯(3)
スイッチのチャタリングを体験してからプログラムで防ぐ
スイッチを押すとチャタリングが発生します。これはスイッチの金属接点部分がバウンドし,ONとOFFを何度も繰り返してしまう現象です。今回は,チャタリングによる不具合を実際に体験してから,チャタリング対策を行ったプログラムを作ってみましょう。独自連載記事 第7回 - 第8回●LEDの明るさの調整(1)
点灯と消灯の時間を変えて明るさを調整する
LEDの点灯と消灯を高速に繰り返すと,暗く点灯しているように見えます。プログラムでLEDの明るさを変えてみましょう。クロックと命令のサイクル数を考慮します。さらに,プログラミングで重要になるスタックの動作も説明します。独自連載記事 第8回 - 第9回●LEDの明るさの調整(2)
デューティ比を変えてLEDを徐々に明るくする
LEDの明るさが自動で変わるプログラムを作成します。この際,データレジスタの上書きに気付かず,「思ったように動作しない」と悩むことがよくあります。第8回で学んだスタックを使って,データレジスタの予期せぬ上書きを防止する方法を紹介します。独自連載記事 第9回 - 第10回(最終回)●キー入力割り込み
スイッチを押したときに割り込みを発生させてLEDを点灯
第5回から第7回でスイッチを扱ったプログラムを作成しました。そこではポーリングという方法でスイッチ押下を確認していました。今回は,キー入力割り込みによってLEDが点灯するプログラムを作ります。可変ベクタテーブルと割り込みルーチンの使い方を覚えましょう。 独自連載記事 第10回