Em8086 と Proteus を使用したインテリジェントな温度制御システムの作成: 詳細なアセンブリ言語とハードウェア シミュレーション技術

日常生活では、インテリジェントな温度制御システムの出現により、私たちの環境はより快適になり、さまざまな複雑な気候の変化に適応します。ここでは、emu8086 と Proteus をアセンブリ言語とハードウェア シミュレーション技術と組み合わせて、任意の部屋の温度を自動的に制御できるシステムを構築します。

1. プロジェクトの紹介

このプロジェクトの中心的な目標は、emu8086 マイクロプロセッサ シミュレータと Proteus 回路設計ソフトウェアを使用して、アセンブリ言語に基づくインテリジェントな温度制御システムを開発することです。このシステムでは、温度のしきい値範囲を 23 度から 32 度に設定します。この温度範囲ではファンモーターが停止し、省エネと快適性の効果が得られます。

まず、プロジェクト全体の運用プロセスを理解するために、使用するソフトウェアとハ​​ードウェアの基本を理解する必要があります。

プロジェクトのダウンロード

2. ツールの紹介

2.1 エミュ8086

emu8086 は、主に Intel 8086 マイクロプロセッサをエミュレートするマイクロプロセッサ エミュレータです。このシミュレータ上にアセンブリ言語のコードを記述し、ハードウェアの直接制御を実現します。

2.2 プロテウス

Proteus は、回路設計、基板レイアウト、マイクロコントローラー シミュレーション機能を提供する電子設計自動化 (EDA) ツールです。このプロジェクトでは、Proteus を使用してハードウェア回路をシミュレートします。

3. 予備的な温度制御アルゴリズム

設計とプログラミングを開始する前に、最初に簡単な温度制御アルゴリズムを決定する必要があります。アルゴリズムの簡易版は次のように設定できます: 温度が 32 度より高い場合はファンを開始し、温度が 23 度より低い場合はファンをオフにし、この範囲内ではファンを維持します。ステータスは変わらず。

このアルゴリズムの疑似コードは次のとおりです。

if temperature > 32
    start fan
else if temperature < 23
    stop fan
else
    keep fan status

ただし、これは最も基本的なバージョンにすぎず、実際の環境は複雑で変化しやすいため、アルゴリズムに対してさらに調整や最適化を行う必要がある場合があります。

4. アセンブリ言語を理解する

私たちのプロジェクトでは、コアの制御ロジックはアセンブリ言語で実現されます。アセンブリ言語は、ハードウェアの構造と密接に関連しており、ハードウェアをきめ細かく制御できる低レベルのプログラミング言語です。ただし、その複雑さのため、学習曲線は比較的急勾配になります。ここでは、誰もが理解して使用できるように、いくつかの基本的な構文と操作のみを紹介します。

アセンブリ言語では主にプロセッサのレジスタを操作することでデータ処理や制御フローの受け渡しを実現します。通常MOV、データをある場所から別の場所に移動する命令、ADD基本SUB的な算術演算を実行する命令、JMP条件付きジャンプを実行するJZ、 、などの命令を使用します。JNZ

理解を容易にするために、簡単なサンプルコードを見てみましょう。

; 设置一个初始温度
MOV AX, 25

; 如果温度高于32,启动风扇
CMP AX, 32
JA start_fan

; 如果温度低于23,关闭风扇
CMP AX, 23
JB stop_fan

; 保持风扇状态
JMP keep_fan_status

start_fan:
; 启动风扇的代码
...

stop_fan:
; 关闭风扇的代码
...

keep_fan_status:
; 保持风扇状态的代码
...

5. プロテウス回路設計

ソフトウェア ロジックに加えて、温度制御システムには実際のハードウェア デバイスも必要です。このプロジェクトでは、Proteus を使用してハードウェア回路をシミュレートします。

Proteusでは、温度センサー、マイクロコントローラー、ファンモーターなどの主要コンポーネントを含む回路を設計できます。アセンブリコードを記述することで、マイコンを制御して温度センサーから温度を読み取り、温度に応じてファンのオン/オフを制御できます。

簡略化した回路図は次のとおりです。

  温度传感器
      ↓
  微控制器 ── 风扇

温度センサーは現在の温度情報をマイクロコントローラーに提供し、マイクロコントローラーはこの情報に基づいてファンを開始するか停止するかを決定します。

6.emu8086とProteusの組み合わせ

我々は、emu8086 がマイクロプロセッサをシミュレートしてアセンブリ コードを実行できること、そして Proteus が回路全体の動作をシミュレートできることを知っています。では、この 2 つをどのように組み合わせるのでしょうか?

まず、マイクロプロセッサを含む回路を Proteus で構築する必要があります。この電気プロセッサは、emu8086 エミュレータで使用されているのと同じモデル (8086 など) です。次に、このマイクロプロセッサを Proteus で設定して、emu8086 からアセンブリ コードをロードする必要があります。このようにして、アセンブリ コードは Proteus の回路上で実行できます。

7. アセンブリ言語コードの実装

次に、温度制御システムを制御するためのより完全なアセンブリ コードを実装します。スペースの都合上、メインの制御ロジック部分のみを示します。

; 初始化DS寄存器
MOV AX, 0
MOV DS, AX

; 从温度传感器读取温度
MOV DX, TEMP_SENSOR_PORT
IN AL, DX
MOV [TEMP], AL

; 检查温度
MOV AX, [TEMP]
CMP AX, 32
JA start_fan
CMP AX, 23
JB stop_fan
JMP keep_fan_status

start_fan:
; 启动风扇的代码
...

stop_fan:
; 关闭风扇的代码
...

keep_fan_status:
; 保持风扇状态的代码
...

このコードでは、最初に DS レジスタを初期化し、次に温度センサーから温度を読み取ります。次に、読み取った温度に基づいて、ファンを開始するか、ファンを停止するか、またはファンの現在の状態を維持するかを決定します。

8. 結論

このプロジェクトを通じて、私たちはemu8086とProteusをアセンブリ言語やハードウェアシミュレーション技術と組み合わせて使用​​し、インテリジェントな温度制御システムを構築する方法を習得しました。このプロジェクトは単なるシミュレーションですが、実際にハードウェアを動作させるためのプラットフォームを提供し、アセンブリ言語とハードウェア設計の原理をより深く理解することができます。実際の仕事や研究では、実際のニーズに応じてこのプロジェクトを拡張および最適化し、より多くのニーズに対応できます。

おすすめ

転載: blog.csdn.net/qq_38334677/article/details/131223633