問題タブ [8051]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 8051マイクロコントローラーのポート1を入力として構成します
温度を変えることができる非常にシンプルなアプリケーションを書いています。温度はLED(BCD形式)を使用して表示されます
私はKeilC51で次のコードを書きました。
次に、これに準拠してIntel hexファイルを取得し、Edsimを使用してシミュレートしようとしました。
Cコードによると、prog = 1のとき、およびup(p1.0)またはdown(p1.1)のいずれかが押されたときに温度が変化するはずですが、シミュレーションでは、select(p1.7)とup/の両方の場合にのみ変化します。ダウンが押されました!
なぜこうなった?
c - 8051の外部割り込みの素数ルーチン
次のように、KeilC51を使用して8051の割り込みルーチンを作成しました。
シミュレートしようとすると、128までは正しい素数が表示され、その後8ビットカウンターになり、その後素数が表示されます。つまり、127(最後に予想される素数)の後、出力は128,129,130でした。 ... 255、127,128,129までの素数...。
また、4ビットカウンターである外部割り込み0のルーチンも作成しました(正しく機能します)が、上記には影響しないと思います。
c - 8051F340 マイクロコントローラのフラッシュ メモリが消去される
この質問が Stackoverflow に当てはまることを願っています (そうでない場合は、既に謝罪したいと思います)。
私はSilabsのC8051F340マイクロコントローラを持っています。uC から不揮発性フラッシュ メモリに情報を格納する小さなインターフェイスを作成しました。説明したデータ シートのように、アドレス 0x0200 ~ 0x0300 の間のすべてのデータを保存します。そこにデータをコピーするには、memcpy を使用します。
コピー自体はうまく機能します(フラッシュメモリを調べたところ、データが正しく保存されていました)-uCを取り外して5秒ほどで再度接続しても、データはまだそこにあります。しかし、切断したままにしておくと、データは多かれ少なかれ「リセット」されます。つまり、毎回ほぼ同じ「リセット値」になります。それで、私は何を間違っていますか?フラッシュデータが不揮発性ではないということですか、それとも何か問題がありましたか?
assembly - アセンブリ コードのエラー
この特定のコードをアセンブルできるように、ASEM51 アセンブラーを使用しました。私はアセンブリ言語についてまったく知識がありませんが、プロジェクト モデルのマイクロ コントローラーでこのコードを書き込む必要があります。超音波距離計のコードです。コードのシミュレーションには「M-IDE Studio for MCS-51」を使用しました。行 (51) で「シンボルが定義されていません」というエラーが 1 つ発生しました。このエラーが発生した行は次のとおりです。
このプログラムを正常に書き込むには、このエラーを削除する必要があります。「走り始める前に歩いてください」というようなコメントは控えてください。なぜなら、私は言語の知識がまったくないこと、またコーディングがコーディングが調整されていないため、40個のエラーがあったリファレンスを自分で整理しました。邪魔しているのはたった1つのエラーです。以下は、ASM ファイルのそれぞれのリンクと、コードを取得したリファレンスです。
http://www.mediafire.com/file/kp738c4gr32bgy4/ULTRSND.asm http://kitsnspares.com/admin/pdffiles/Ultrasonic%20Distance%20Meter.pdf (最後の 2 ページ)
assembly - アセンブラで 2 つのレジスタを移動 (シフト) する
8 つの LED と 2 つのボタンがあり、最初は最初と最後の LED が点灯し、最初のボタンを押すと最初の LED が右にシフトし、2 番目のボタンを押すと最後の LED が左にシフトします。2 つのライトが互いにシフトすることによって「出会う」と、スイッチがオフになります。
ボタンを押した後に 1 行の LED を更新する方法がわからなかったので、ボタンごとに P1 と P2 の 2 行を作成しました。1列目はちゃんとシフトしているように見えますが、2列目はめちゃくちゃです。私は何を間違っていますか?
以下は私のコードです:
c - 8051/C: ボタンを押すと点滅モードに入り、もう一度押すか 30 秒後に終了します
だから私はLEDとボタンを持っています。
ボタンを押すと、LED が点滅し始めます。30 秒後に点滅を停止するか、ボタンを再度押すと点滅が止まります。
点滅状態に入って30秒後に出る機能は実装したのですが、ボタンを押すだけでいつでも抜ける方法がわかりません。どんな助けでも大歓迎です!
serial-port - マイクロコントローラ 8051 での非同期 UART 転送
こんにちは、89c52 と sim548c モジュールを通信しようとしています。AT コマンドを送信してから、マイクロコントローラーにすべての応答を配列に格納させ、検索機能を実行して、適切な応答が送信されたかどうかを確認し、次の AT コマンドに移動できるようにします。これには、双方向のシリアル転送が必要です。最初に AT コマンドをシリアルに送信し、次に受信を有効にし、モジュールからのすべての応答を配列に格納する必要があります。私はこのプログラムを使用していますが、マイクロコントローラーに着信データを受け入れて配列に保存させることができません。正常に転送されますが、受信されません。何が問題なのか特定できますか?
md5 - 8051 MCU の SHA1 実装?
8051 マイクロコントローラー用の SHA1 または同様の暗号化ハッシュのスペース効率の高い実装を探しています。C またはアセンブリ。Google 検索では、これまでのところ何もヒットしませんでした。ガイダンスはありますか?
c - このfor()ループは何回繰り返されますか?
このforループに何かが欠けているかどうかはわかりません。ループ内のコードを8回実行すると、LCDに8文字が出力されると思いますが、7回ループし、7文字しか表示されません。これにはKeilコンパイラを使用しています。私が間違っているところを誰かが見つけられますか?
c - C で 1 ビットをアドレス指定する方法はありますか?
ビットアドレス指定可能なマイクロコントローラーについていくつか調査しました。私のパスで出くわした唯一のものは、今日でも非常に一般的に使用されているIntel MCS-51(wikiページ)です...たとえば、SFR地域のwiki 8051で、Cで少し対処できるかどうか疑問に思っていましたメモリ アーキテクチャ。
SFR でアドレス指定するビットは、直接ビット アドレス指定されますか、それともバイト アドレス指定されるビットフィールドでのビット単位の操作ですか、それとも完全に別のものですか?
具体的には、ここから: Check if a single bit is set , ビットが MOV で直接操作されているように見える.背景には、バイトのみを使用するコンパイラーのものがありますか?
フォローアップの質問として、ビットアドレス指定可能な最新のプロセッサはありますか?