問題タブ [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.

0 投票する
1 に答える
564 参照

8051 - Intel 8031 で dptr の下位バイトにアクセスする

dptrIntel 8031/8051 マイクロプロセッサ用にプログラミングするときに、下位/上位バイトに個別にアクセスする方法はありますか?

0 投票する
1 に答える
109 参照

c - SSRの切り替えに関する問題

Keil C を使用してプログラムを作成しています。私は何年もの間立ち往生してきたいくつかの問題を抱えており、私のプログラムはリモコンでSSR(ソリッドステートリレー)を切り替えます。私のプログラムの仕組み: まず、リモコンの赤外線信号を学習し、「DATA」に保存する学習ボタンがあります。リモコンをもう一度押すと、データが「TempDATA」に保存されます。私のプログラムは両方を比較し、エラーがあるかどうかを確認します。エラーがなければ、SSR をトグルし、緑色の LED が点灯します。エラーが発生すると、赤色の LED が点灯します。

ただし、問題は、1 回ではなく 3 回トリガーされることです。それで、エラーがなければ、SSRを「ON、OFF、ON」にします。リモコンのボタンをもう一度押すと、SSR は「オフ、オン、オフ」になります。また、エラーがある場合は、1 つの「E」ではなく「EEE」が表示されます。この問題を解決するにはどうすればよいですか?

遅延を追加することにより:

問題は解決された。

Learnボタンを押さずにリモコンボタンを押すと、Data_Readyが1にセットされます。そのため、学習ボタンを押さずにリモコンのボタンを押した場合にのみ比較されます。

0 投票する
1 に答える
1081 参照

8051 - FX2 マイクロコントローラーを使用して外部 RAM にアクセスするためのサンプル コード

Cypress FX2 マイクロコントローラを使用して外部 RAM にアクセスする際に問題があります。どのレジスタを使用すればよいか誰か教えてください。8051 MCU と同様に、アドレス バス用の A15-A0 ピンとデータ バス用の D7-D0 ピンがあり、チップ セレクト、出力イネーブル、書き込みイネーブル ストローブがあります。MCU は CY7C68013A FX2 です。外部 RAM にアクセスするための信号を生成するために使用する必要があるレジスタが見つからないようです。この機能を使用するためのレジスタは 8051 と同じである必要があります。マイクロコントローラには、専用のピン、つまり A15(アドレス バス MSB)、D7(データ バス MSB)があります。

0 投票する
1 に答える
1478 参照

c - 8051uCの純粋なCに32ビット整数変数を格納する方法

私はCで8051uCにソフトを書き込もうとしています。問題は、最長の整数が16ビットに等しいことです。独自の32ビット符号なし整数変数を作成することは可能ですか?もちろん、+、-、<<などのすべての操作をサポートする必要があります。

それが不可能な場合、代替手段は何ですか?私にとって頭に浮かぶ唯一の方法は、2つの16ビット整数を持つことです。しかし、そのソリューションでは、標準の演算子を使用できないと思います。すべての操作中に、2つの整数を変更することを覚えておく必要があります。

より良い方法はありますか?

前もって感謝します。

0 投票する
4 に答える
2123 参照

vb.net - 8051 UART、バイトをシリアルに受信

コンピューター(VB.NET)からシリアル接続されたAT89s52にファイルをバイト単位で送信する必要があります。
送信されたすべてのバイトには、マイクロコントローラーで実行する必要のある作業があります。
これが私のCコードのバイトの受信に関連する部分です:

そして、バイトを送信するためのVB.NETコードは次のとおりです。

問題は、mCには受信したすべてのバイトの後に実行する作業があり、VB.NETはそれを認識せず、バイトの送信が速すぎるため、mCではすべてのバイトの一部(約10%)が終了することです。「Sleep(20)」をVBループに組み込むことができます。そうすれば動作しますが、バイトごとに処理に異なる時間が必要であり、通信が遅くなることは許容できないため、多くの無駄な時間があります。

さて、私の質問は、8051がUARTにビジー状態を設定できるかどうかです。これは、送信前にVBが読み取って、バイトを送信するかどうかを決定することができます。または、他の方法で説明されているような通信を設定するにはどうすればよいですか?また、mC側でシリアル割り込みのあるバイトを受信しようとすると、同じ結果になります。

(予想通り)コンピュータにデータをうまく送ることができるので、ハードウェアは確かに大丈夫です。

0 投票する
1 に答える
1708 参照

microcontroller - AT89C2051でWILLARを使用してプログラムを作成する

WILLARたとえば、AT89C2051でプログラムを作成すると、次のようになります。

メッセージが表示されます:The data out of range will be ignored。しかし、ポートP3ではなくポートP1を使用すると、プログラムは正常に書き込みます。

問題はどこだ?

0 投票する
1 に答える
1607 参照

delay - for ループから生成される遅延

//say delay_ms = 1

void Delay(const unsigned int delay_ms)

}

上記の C コードを 8051 マイクロコントローラーに使用しようとしています。上記で生成された遅延時間を知りたいです。12MHzの発振器を使用しています。

0 投票する
1 に答える
1077 参照

c - 8051マイクロコントローラーを搭載した赤外線温度センサーのC?

みんなからの大きな助けが必要です 8051 マイクロコントローラーで赤外線温度センサーを使用する方法を知る必要があります C コードを共有できれば非常に感謝しています

私はセンサー番号MLX90614ESF-BAAを使用しています

どうもありがとうございます

0 投票する
1 に答える
634 参照

timer - 8051(C8051F120)でタイマーカウンター値TMRnLおよびTMRnHを読み取る

私のマイクロコントローラーC8051F120のデータシートは、16ビット値のPCA0LとPCA0Hの読み取りに関して明確です。

「PCA0Lを読み取ると、PCA0Hの値が自動的に「スナップショット」レジスタにラッチされます。次のPCA0H読み取りは、この「スナップショット」レジスタにアクセスします。PCA0Lレジスタを読み取ると、最初に16ビットPCA0カウンタ全体の正確な読み取りが保証されます。」

ただし、TMRnLレジスタとTMRnHレジスタに関する同様のステートメントは見つかりませんでした。Atmega128CAN90で覚えている、私は以下を使用しました

上記の引用がC8051F120のTMRnLおよびTMRnHレジスタにも当てはまるかどうか誰かが知っていますか?または、一貫した読書をするための安全な方法は何ですか?割り込みを無効にする必要がありますか?ご協力いただきありがとうございます!

0 投票する
2 に答える
2411 参照

assembly - 遅延の測定 8051

8051 の遅延をコーディングする必要があります。それはできますが、遅延の周波数を計算する方法がわかりません。たとえば、私が行った遅延は次のとおりです。

しかし、私が知らないのは、この遅延が生成する周波数が何 Hz かということです。それを計算する方法はありますか?