はじめてのPICアセンブラ入門 | 戻る | |
このページからは、書籍に掲載したプログラムの最新版がダウンロードできます。
ダウンロードするファイルを選択し、マウスのボタンを右クリックし、「対象をファイルに保存」を選んでから保存してください。 プログラム中のスペースやタブ、コメントは、印刷物とは異なる場合があります。プログラム・リストの中の必要な部分をコピーしてからご利用ください。 2005年3月15日 ●変更履歴 2008年5月26日 2008年4月30日 2008年1月7日 2007年12月18日 2007年11月5日 2006年12月8日 2006年10月23日 list7-10.asm->list7-10fix.asm 2006年10月18日 list5-15.asm->list5-15fix.asm 2006年1月11日 list5-1.txt->list5-1-fix.txt 2005年12月26日 2005年5月12日 2点修正 list5-3->list5-3all.txt |
第2章 list2-1.txt list2-2.txt list2-3.txt list2-4.txt list2-5.txt list2-6.txt list2-7.txt list2-8.txt list2-9.txt list2-10.txt list2-11.txt list2-12.txt list2-13.txt list2-14.txt 第3章 list3-1.asm list3-2.asm list3-3.asm list3-4.asm list3-5.asm list3-6.asm list3-7.asm list3-8.asm list3-9.asm list3-9b.txt list3-10.asm list3-11.asm list3-12.asm list3-13.asm list3-14.asm list3-15.asm list3-16.asm list3-17.txt 第4章 list4-1.txt list4-2.asm list4-3.txt list4-4.txt list4-5.txt list4-6.txt list4-7.txt list4-8.txt list4-9.txt list4-10.asm list4-11.txt list4-12.asm list4-13.txt list4-14.txt list4-15.txt list4-16.txt list4-17.txt list4-18.asm 第5章 calc.xls list5-4.txt list5-6.txt list5-7.txt list5-8.txt 第6章 第7章 追加サンプル(印刷物には未掲載) ・スリープ命令のサンプル(スイッチを押すことでスリープから復帰してLEDを点灯/消灯する)ss7-sleep.asm ・ウォッチ・ドッグ・タイマのサンプル(ウォッチ・ドッグ・タイマでスリープから復帰することでLEDを点滅、4章のディレイ・ループで作っていたタイミングをウォッチ・ドッグ・タイマにしスリープするプログラム)ss7-sleep_wdt.asm ・EEPROMに閾値を記憶しておくサンプル(第5章のレジスタに閾値を覚えていたプログラムの改良版)ss7-eeprom.asm AppendixA |
|
2005/05/12 リスト5-3,5-5に関して;
リスト5-3を表計算で値を求める方法。Excelですと次のようにして求められます。
A1 を 0 に B1 を =MIN(FLOOR(256-32*LOG(256-E1, 2)+0.5, 1), 255)します。
A2 は =A1+1 とし B2 は B1 のコピーとします。そして 2 行目を3行目から256 行までにコピーします。B の列が求める数値です。calc.xls がExcelでの計算例です。
計算の意味ですが、MIN() で最大値が255を超えないようにしています。FLOOR() 関数の中身は本文の式に 0.5 を足したものです。FLOOR() 関数は切捨て計算を 行うので、0.5 をあらかじめ足しておくことで、四捨五入の計算としています。
ご質問の内容; リスト5-5で実行したら、逆に明るいときに点滅します。上から 4,5行目を以下のように改め、暗くなると点滅するようになりました。 movwf ADRESH |
リスト5-5 については、申し訳ありません。試された方法ですと本文のコメント 通りの動作になりますが、該当部分は以下のように訂正させてください。
movfw ADRESH ; w に変換結果を代入 sublw D'128' ; 暗さの閾値と比較をする ; 128 - w の結果が負(C が 0)なら暗い btfss STATUS, C goto blink_LED------------------------------------------------------------------------