- 締切済み
PICアセンブラで10進数を2進数に変換するプログラムを教えて欲しい
DT200の回答
- DT200
- ベストアンサー率38% (63/164)
PICのインストラクションセットを知らないので具体的な回答は無理ですが、考え方だけ。 データを2進数に変換するのではなく、あらかじめ0~9の パターンを定義してしまいます。 以下に示す条件で: (1) PICの出力がPIO(正論理) (2) 7segはカソードコモン PICと7segは次のように接続されているとする。 ちなみに、電気的にLEDをドライブできるか否かは無視してます。 PIC 7seg -------------- PIO7 - a PIO6 - b PIO5 - c PIO4 - d PIO3 - e PIO2 - f PIO1 - g PIO0 - Dot 0の場合は、a,b,c,d,e,fに相当するビットをセットするため 2進表記で 11111100(B)、16進表記で fc(H) となります。同様に 1: 01100000(b)、60(H) 2: 11011010(b)、ba(H) : 9: 11010110(b)、d6(H) と定義し1バイト長×10のテーブルを作ります。 表示するには、10進数で表示するデータがテーブルのオフセットとし、 テーブルの先頭アドレス+オフセットにあるデータがPIOに出力する パターンデータとなる。そのパターンデータをPIO出力すれば表示できます。
関連するQ&A
- PICで温度計をつくりたいのですが。アセンブラを教えてください。
初歩的な質問でもうしわけないのですが、 PIC16F819のPICを買いまして、CMOS温度センサーにオペアンプをかけ PA1につなぎ、A/D変換 PB0~7まで7セグを並列に3つつなぎ。 PA4,6,7から各ポートにトランジスタのBにいれ、Cに+5、Eに7セグのCOMをいれ 3桁の数字を表示させたいのです。 たしか、ダイナミックスキャンというものだと思います。 とりあえず、センサーから入ってきた数値をそのまま表示させたいのですが。 ダイナミックスキャンのアセンブラのプログラムがうまくいきません。 簡単に教えていただきたいのですが。 わかる方お願いします。 ハードは問題はないと思います。
- ベストアンサー
- その他(プログラミング・開発)
- PICプログラム C言語とアセンブラ言語
PIC18シリーズを使用して、プログラミングをしています。コンパイラはCCS-Cです。今まではすべてC言語で書いてきたのですが、アセンブラでしか設定ができない部分があり、今までのC言語のソースに加えてアセンブラを組み合わせようと思っているのですが、C言語とアセンブラを組み合わせることは可能なのでしょうか?
- ベストアンサー
- 物理学
- PICのプログラミングについて
現在、PICのプログラミングについてアセンブラがいいかC言語がいいか迷っています。 基本的にLEDを使った物をつくりたいと思っており PWM制御でのLEDの調光、LEDの点滅の周期の変化などをつけた 物を作ろうと考えております。 アセンブラとC言語のPICにおいての違いを教えてください。 加えて、上のPWM制御についてはどちらでもできるのでしょうか? 2つのプログラム言語についての良い点、悪い点など教えてください よろしくお願いいたします。
- 締切済み
- その他(プログラミング・開発)
- PICのアセンブラによるLEDの制御
PICのアセンブラによるLEDの制御 をやっているんですが。 LEDを点滅させる速度を時間に応じて変化させたいのですが、いまいちわかりません。 ●○●○●○●○ から ○●○●○●○● です。 使用ICは16F84Aです おそらく、 COUNT1 EQU 1CH を変化させるか、DELAYサブルーチンをかえるのであろうと思うのですが、わかりません。 教えてください。
- 締切済み
- その他(プログラミング・開発)
- C言語でPICのプログラムをしたいんですが。
PICをC言語でプログラミングしたいと思っているんですがよくわかりません。 PCの画面に「Hello」とか出すことはできるんですが、PICで動作するCがわかりません。 LEDの点灯(点滅でも)やモーターを動作させたりするプログラムを書きたいんですが イマイチ良く分からず最初の定義文の構成とかもPICだとやっぱり違うのかなって 思っているんです。普通のCですら定義文や構成の意味が微妙な感じ何です。 でもCでかけたらカッコいいなって思ってます。 PICのCに関する入門みたいなサイトや文章があったら教えて下さい。 アセンブラやJAVAについても教えていただくとありがたいです。 まぁでもC言語メインでお願いします。
- ベストアンサー
- その他(ソフトウェア)
- PICのプログラムカウンタについて
プログラムカウンタでポートAに4bitの2進数を入力して、変換された2進数のデータをポートBに出力させることはできたのですが、 ポートCにも違うデータを同時に出力させたいのですが、どういった命令文を作ったらいいでしょうか? 例えば、ポートAが「HLHL」の入力の時にポートBでは「HLLH」、ポートCでは「LLHL」を出力させる方法です。 言語はアセンブラ、マイコンはPIC16F886です。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- PICでの三角関数演算(アセンブラ)
現在、PIC18F4580を使用してある計算をさせたいと思っています。 その計算の中で、アセンブラ言語でSin30°等の計算をさせたいと思うのですが、参考となる文献やHPはありませんでしょうか? よろしくお願いします。
- 締切済み
- SE・インフラ・Webエンジニア
- PIC16のアセンブラ、あなたならどう書く?
PIC16のアセンブラ、あなたならどう書く? こんにちは、PIC16シリーズのアセンブラについての質問です。MPASMのプログラム書き始めて3日ぐらい目です。すこしずつ、インストラクション・セットやアーキテクチャを把握してきた感じです。 C言語調で書きました下記の様なIF-ELSEをMPASMで書きたい時、皆さんならどの様に記述されますか?人に見られる可能性のあるコードですので、ちびっとぐらいは格好つけないといけない状態です(汗)。 //===== Increase var0/1 ===== if( sel == 0x00 ) { var0 ++; var1 = 0; } else { var1++; var0 = 0; } 下記は、自分なりのコードとそのコメントに当たります。 ;===== Increase var 0/1 ===== MOVF sel, W ; Switch by sel BTFSS STATUS, Z ; .. GOTO $+4 ; .. INCF var0 ; Case sel==0, var0++ CLRF var1 ; var1=0 GOTO $+3 ; INCF var1 ; Case sel!=0, val1=++ CLRF var0 ; val0++ NOP ; Switch-close もちろん、記述方法は記述者の好みがありますから、良し悪しではなく参考的な回答だと嬉しいです。こういう方が常識的だとか、こう記述すると後で見やすいとか、好き嫌いでもかまいません。よかったらご意見ください。よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- PIC 文字 を 数値に 変換
アセンブラ言語(PIC)で、シリアルで受信した文字列数値を数値に変換したいのですが、どなたかプログラムを教えてくださいませんか?
- ベストアンサー
- その他(プログラミング・開発)
- PICでのA/D変換
現在PICについて勉強しています。 そこで基本的な質問なんですが、USARTを用いて非同期でデータを送る場合、スタートビットとストップビットは自動的につくのでしょうか?? またデータを送信する際、送信できるかどうかを判断するプログラムはどのようにしたらいいのでしょうか??TSRレジスタやTXREGレジスタのところがよくわかりません。 めちゃくちゃな質問かもしれませんが、もしよかったら回答のほうよろしくおねがいします。PICの言語はアセンブラでやってます。
- 締切済み
- 物理学
お礼
すみません。最後の「テーブルの先頭アドレス」というのがどれを示すのか理解出来ません。 現在6桁の数字を7セグ表示しようとしていて、各桁のデータは「KETA1」から「KETA6」という名前で管理しています。 プログラムの初期設定で「KETA1 EQU 20H」とか書いていますがここの部分なのか、またこれならアドレスは何になってデータを一緒に呼び出して出力させる方法も分かりません。 無知な者で申し訳ありません。その辺りも教えてもらえないでしょうか。