問題タブ [shift-register]

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 に答える
174 参照

vector - std_logic_vector のシフト レジスタ

ここで同じ質問を見て、例に従おうとしましたが、シグナルを宣言するときにエラーが発生しました。具体的には:

これが私のコードです:

シグナル宣言について不平を言っていますが、その理由がわかりません。

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

vhdl - VHDL でのシフト レジスタの構造設計

vhdl でシフト レジスタの構造設計を行いました。WriteShift が 1 の場合はシフトを取得し、0 の場合はシフト レジスタが価格をロードします。テストベンチで writeshift を 1 に設定するとロードは完全に機能しますが、シミュレーションでは 00000 になります。

私のコードは次のとおりです。

0 投票する
0 に答える
92 参照

assembly - カスタム LCD ハードウェアに適合する MCS-51 コード

ROM上にデータがあらかじめ定義されているハードウェアで、キャラクタLCDドライバ(LCDにはHD47780チップセットが搭載されています)を自作し、ROMをロードする回路も作成しました。

下の最初の画像では、ROM メーカー回路の一部 (パラレル ポートを介してコンピューターに接続) が配線され、ROM 上のデータ ピンが LSB (最下位ビット) から MSB の順に次のように配置されます (上位ビット):

A8、A9、A10、A11、A12、A13、A14、A0、A1、A2、A3、A4、A5、A6、A7

ロムメーカー

この次の画像は、LCD ドライバーの一部です。ROM(Romメーカーで作成)をドライバーに挿入し、シフトレジスタを使用してアドレスを選択し、RSを制御します(LCDがコマンドモードかデータモードか)。

両方のシフト レジスタのクロックは、マイクロコントローラーの 1 つのピンと、クロック ロジック レベルが変化するたびに時間を延長して LCD イネーブル ラインを 220 マイクロ秒間ハイにするタイマーに接続されています。最初のレジスタ (INP) のデータ入力は一緒に接続され、マイクロコントローラの別のピンにも接続されます。CLR 入力を High に接続して、出力を有効にします。

液晶ドライバー

作成した rom テスターで rom の最初の 256 バイトのデータをテストしたところ、出力は正しいので、自分の rom が問題であることはわかりません。問題はコードにあることがわかりました。

これは私のコードです:

LCDC equ (シフト レジスタ GPIO ピンへのクロック) DAT equ (シフト レジスタ データ入力ピン)

関数を呼び出してコマンドを発行するだけです。

またはデータ用

一部のコマンドは実行されているように見えますが (アドレス指定が混同されていない限り)、通常の文字を印刷しようとすると、代わりに奇妙な文字が表示されます。

たとえば、私の ROM では、最初の 256 バイトを同じバイトで埋めました (例: アドレス 0 の値は 00h、アドレス 255 の値は 0FFh)。私が実行した場合:

画面に「A」の文字が表示されるのを見たかったのですが、何も表示されません。

私のコーディングは正しいですか?または私はそれを改善できますか?

私はhttp://plit.de/asem-51/asemw.htmのアセンブラーを使用しているので、それが私だけなのか、それとも一部のアセンブラーにバグがあり、一部を変更および/または削除する必要があるのか​​ わかりませんそれらのアセンブラーを満たすコード。

お知らせ下さい。

ありがとう。