「マイクロコントローラーとC51プログラミング技術の原理と応用」最終レビューノート

記事ディレクトリ

1 | 2. 空白を埋めてください

1.1 Atmel 社のマイクロコントローラーのモデル名、 の意味など

ここに画像の説明を挿入します

1.2 ハードウェアアーキテクチャ、マイクロコントローラ構成

ここに画像の説明を挿入します

1.3 CPUレジスタ

CPUは演算装置とコントローラの2つの部分から構成されており、主に命令のフェッチ、命令の変換、各種演算に必要な制御信号の発行などを行い、マイコンの各部分が調和して動作します。

1.4 PC リセット、PC 機能、いくつかの番号 (補足: リセット ピンといくつかのマシン サイクル)

  1. CPUが実行する命令のアドレス(次の命令が格納されているアドレス)を示します。長さは16 ビットなので、アドレス範囲は 0 ~ 65535 (64K) です。
  2. マイコンがリセットされると、PC=0000H になります。これは、マイコンがリセットされると、CPU が ROM の 0000H ユニットからプログラムを実行することを意味します。
  3. SFR から物理的に独立しています。
  4. RST:リセット信号入力端子、ハイレベルでアクティブ。このピンに 2 マシン サイクルを超えて High レベルを追加すると、リセットできます。マイクロコントローラが正常に動作している場合、このピンは ≤0.5V の Low レベルでなければなりません。

1.5 SP スタック、関数、番号、場所 (補足: オンチップ データ メモリ内)

SP スタック ポインタ: スタックの位置を示すために使用される 8 ビット レジスタで、ソフトウェアによって変更できます。

機能: ① プログラムのブレークポイントアドレス (リターンアドレスとも呼ばれます) を保護します;
② データを保護します (シーンの保護とも言います)

常にスタックの先頭、RAM 領域 (オンチップ データ ストレージ領域) を指します。

1.6 メモリ、チップ内外のデータメモリ、チップ上でいくつかの部分に分かれている(補足:一般的なデータメモリ)

ここに画像の説明を挿入します

内蔵RAMは汎用データメモリと特殊機能レジスタSFRの2つの領域に分かれています。

ここに画像の説明を挿入します

1.7 EA がハイレベルに接続されている場合、どのプログラムが実行されますか?

EA=1 のとき、CPU は内蔵 ROM の 0000H 部からプログラムを実行します (ハイレベル)。

1.8 外部メモリ、DPTR を使用

  1. DPTR は主に外部データ メモリ RAMのアドレスを格納するために使用され、 CPU が外部 RAM にアクセスするためのデータ ポインタとして機能します。

1.9 AT89 シリーズのピン機能、リセット (2 マシン サイクル以上のハイ レベル、ウォッチドッグ、ウォッチドッグを開始する方法)、

Open/Feed the Dog: WDT を開くには、ユーザーは次の手順を実行する必要があります。01EHそして0E1H書き込みWDTRSTレジスタへ(SFRアドレスは0A6H)

WDT オーバーフローにより、RST ピンは98 クロック サイクルのリセット パルス持続時間でハイ レベルのリセット パルスを出力します

1.10 インターフェースの問題、ポート P0 のドレインがオープン、出力ポートとしてプルアップ抵抗が接続され、下位 8 ビットが PO に送信され、上位 8 ビットが P2 (補足: ペリフェラル)

ペリフェラルの場合: 下位 8 ビットは PO、上位 8 ビットは P2 をパスします

P0.0 ~ P0.7: P0 ポート ライン (ピン 39 ~ 32) は
最も強力な出力能力を持ち、8 つの TTL 負荷を駆動できます。


① 通常の I/O モード、 ② システム拡張時のバスモードの2 つの動作モードがあります
(タイムシェアリング)
I/Oモード時:ポートの内部出力回路は「オープン回路構造」となっているため、MOS負荷を駆動する場合は10K程度のプルアップ抵抗を接続しないと動作しません。高いレベルの出力が可能です。
拡張モードの場合: ポート P0 は、下位 8 ビットのアドレスとデータを外部メモリに提供する「マルチプレクス バス」になります (現時点では汎用 I/O ポートとして使用できません)。

ここに画像の説明を挿入します

1.11 アドレッシングモード、加算、減算、乗算および除算命令 (補数: 元のオペランドと宛先オペランド)

即時アドレッシング、レジスタアドレッシング、直接アドレッシング、レジスタ間接アドレッシング、相対アドレッシング、インデックスアドレッシング、ビットアドレッシング

加算命令:ADD、

キャリー付き加算:ADDC

コマンドを 1 つ追加します: INC

ボロー命令付き減算:SUBB

1 命令デクリメント: DEC

乗算命令:MUL

除算命令:DIV

MOVC A,@A+DPTR、その後に元のオペランドが続き、その前に宛先オペランドが続きます。間接アドレス指定を登録します。

MOV A,@R1 間接アドレス指定

MOV A,R1 ダイレクト アドレッシング

1.12reg51.h効果

コマンドを前処理して効率を向上させます。

reg52.h は 8051 マイクロコントローラに固有のヘッダ ファイルで、8051 チップのレジスタ アドレスと関連定義が含まれているため、プログラマはチップのハードウェア リソースに直接アクセスでき、プログラム設計が簡素化されます。reg52.h ヘッダー ファイルをインクルードすると、ヘッダー ファイル内で定義されたレジスターとビット定義を使用して、IO ポート、タイマー、割り込みなどのチップの内部レジスターでの操作を実装し、特定の制御タスクを完了できます。

1.13 絶対アドレスアクセス

ここに画像の説明を挿入します

1.14 割り込み機能、パラレルポート、割り込みフラグビットを使用 (シリアル割り込みのみ手動でリセットする必要があります) (補足: シーケンス 0.1.2.3.4.5)

ここに画像の説明を挿入します
ここに画像の説明を挿入します

0.1.2.3を使用して、作業レジスタセットの変更

1.15 アキュムレータ関数、PSW機能

最も一般的に使用されるレジスタ。算術演算命令で使用されるすべてのレジスタと演算結果は A に格納されます。

psw: プログラム実行のステータス情報を表す 8 ビットレジスタで、命令実行に関するステータス情報を格納します。

=

1.16 シリアル通信、与えられる文字数、文字数、ボーレート伝送バイナリ単位はbps

ここに画像の説明を挿入します

ボーレート、1 秒あたりに送信されるビット数。

1 分あたりの数字符、たとえば、1+8+0+1=10、つまり、文字は 10 ビットでなければなりません

1.17 シリアルポート送信を受け入れる、SBUF割り込みフラグビットソフトウェアのクリーンアップ

1.18 外部回路離脱割り込みはレベルトリガーモード

1.19 マクロを使用して絶対アドレスにアクセスする場合は、ヘッダー ファイル == "absacc.h" == を呼び出します。

3. 空欄を埋める手順

3.1 ADC0809

ここに画像の説明を挿入します

INC0-7のアドレスに直接アクセスするにはどうすればよいですか?

外部割り込みが変更されます

INT 0 ‾ \overline{INT0}NT0 _ _割り込み0

INT 1 ‾ \overline{INT1}INT1 _ _中断2

P2 ポート (この図では P2^7 (変更可能) のみが Low レベル (Low レベルが有効) となり、残りは High レベルになります)

P0ポートの下3桁(8チャンネルを区別)

ここに画像の説明を挿入します

空欄を埋める:

ここに画像の説明を挿入します
ここに画像の説明を挿入します

  1. 外部割り込み0(IT0 EX0)の場合 割り込み番号
  2. ハードウェア接続に従って 8 つのチャネルのアドレスを決定します
  3. IN0はどこですか
  4. xdata

ここに画像の説明を挿入します

ハードウェアとプログラムの理解(ハードウェアが変わる、8チャンネルが変わる、割り込みの立ち上がりが良くなる、割り込み番号が変わる)

3.2 アセンブリ言語

mov A,@R0(间接寻址要)
ADC A,(加数、被加数、进位)
INC R0(指针变量的修改)
DJNZ R2,LOOP(减一不为0循环)
JC(C=1) ,JNC(C=0)

ここに画像の説明を挿入します

3.3 LCD1602

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

プログラム開始の定義

配列では、学生番号と名前の完全なスペルが含まれる可能性があります (長さは計算する必要があります) -> 計算は必要ありません\n

ここに画像の説明を挿入します

初期化関数を呼び出して位置を決定する

4. プログラミング

4.1 ハードウェア接続図の作成とプログラムの作成

焦電型赤外線センサー、アクティブブザー搭載

ここに画像の説明を挿入します

最低限のシステム、ボタン、発光ダイオード、接続されたブザー、焦電型赤外線センサー(人が近づくとハイレベルを出力、人がいない場合はローレベルを出力)を読み取るだけで、人が近づくと警報を発し、または、ボタンを押すとアラームが鳴り(音量 A と音量 B)、ダイオードが点滅します。

水晶発振回路(30pf)とリセット回路を描画

回路図(10点) プログラム(10点)

4.2 ストップウォッチのプログラミング (タイマー、第 8 章)

ここに画像の説明を挿入します

いくつかの回路、アプリケーション、およびいくつかのコンポーネントの動作方法を考慮して、回路を追加します。

(T0、T1) 必ずしも 50ms であるとは限りません

時間の初期値を計算する(aを計算する)

ここに画像の説明を挿入します

十の位に変換する
ここに画像の説明を挿入します

ここに画像の説明を挿入します

この件に関するいくつかの言葉を添付しました

まず、基礎知識のある方向けの講座ですが、とても簡単そうに見えますが、先生が描いたポイントをよく読んで、必ず手書きでコードを書いてください!、見ただけでは覚えられない

おすすめ

転載: blog.csdn.net/m0_52592798/article/details/129470286