プロが教える店舗&オフィスのセキュリティ対策術

PICでキッチンタイマーを作ろうとしているんですが、C言語で作ることが指定されています。しかしアセンブリ言語でしかわかりませんでした。そこで次のアセンブリ言語のプログラムをC言語に直して下さい。

スタート/ストップ処理
start_timer
BTFSC working,0
GOTO stop_timer

BSF working,0
CALL beep
CALL wait

wait_start_sw BTFSC PORTA,START_SW
GOTO main
CALL wait
GOTO wait_start_sw
stop_timer
BCF working,0
CALL beep
CALL wait
GOTO wait_start_sw
タイマのリセット処理
reset_timer
BTFSC working,0
GOTO main

CALL init_timer
CALL beep
CALL wait

wait_reset_sw BTFSC PORTA,RESET_SW
GOTO main
CALL wait
GOTO wait_reset_sw

7セグメントLEDの表示操作

MOVLW 2
CALL getdigit

MOVWF PORTB

getdigit
ADDWF PCL,1
RETLW 11000000b
RETLW 11111001b
RETLW 10100100b
RETLW 10110000b
RETLW 10011001b
RETLW 10010010b
RETLW 10000010b
RETLW 11011000b
RETLW 10000000b
RETLW 10010000b

A 回答 (5件)

http://www.cqpub.co.jp/toragi/TRBN/trsample/2004 …
はじめてのPICマイコン入門<第5回>
キッチン・タイマの製作(後編)

上記のソースからコメントを取って丸投げした模様...
ハードの仕様は下記を参照の事

http://www.cqpub.co.jp/toragi/TRBN/trsample/2004 …
はじめてのPICマイコン入門<第4回>
キッチン・タイマの製作(前編)
    • good
    • 1

裏技ですが, 「C 言語」の方に, アセンブラをそのまま入れる文があるだろうから (たいてい asm とか _asm とか __asm とか), それを使う.


一応「C 言語」ですよね.
    • good
    • 1

私が推測すると、C言語でキッチンタイマーを作る課題が出て、ネットを探したらアセンブラのキッチンタイマーのソースコードが見つかったので、C言語に変換してくださいって言う課題の丸投げだと思いますが違いますか?


アセンブラが分かっていて、C言語の勉強中で、課題としてキッチンタイマーを作りたいと言う状況では無い気がします。
この掲示板は、手助けは出来ますが、丸々作成することは規約に反して削除条件に該当しますので、どちらにしろ変換は無理なんですが、自分で出来ている部分と分からない部分を必ず書き込んでください。全然出来ていないってのは無しですよ。
morigannさんも書かれていますが、周辺回路の仕様やプログラムの仕様も不明だと手助けは不可能ですから必ず書き込んでください。
    • good
    • 0

説明不足で申し訳ありませんでした。



自分の発言した仕様書とは、
「キッチンタイマー」を作る上でどのように作るかの?を示した物です。
例えば、
「数字表示は何桁にするのか?」
「タイマーは1秒刻み?にするのか?」
「デジタル表示の配置順は?」
「1桁表示時の10の位の表示はどうするのか?」
など「キッチンタイマー」と一言で言っても決めないと出来ない事は多々あります。
質問者様が「自分でこのソースを作ったがここまでしか出来なかった」のように発言されておられましたので、元になる仕様書の開示を求めました。
もし質問者様が完全オリジナルで作られたのであれば、どのように設計されたかをお教えいただきたいと思います。
    • good
    • 0

「しかしアセンブリ言語でしかわかりませんでした。


どういう状況になったらそうなるんでしょう?

課題などを丸写しにしたような質問についてはマナー違反として削除されますよ。

とりあえず簡単に見たところ「RETLW」で0~9のセグメントのON/OFFビットを設定してるんだなぁ・・・
Cではテーブルにして・・・かな。

補足:ソースより仕様書出して下さい!仕様書!
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!