SHT11 温度と湿度の上限と下限、51 マイクロコントローラーに基づく LCD12864 ディスプレイ アラーム シミュレーション設計 (プロテウス シミュレーション + プログラム + 回路図 + レポート + 説明ビデオ)

51 マイクロコントローラー SHT11 温度と湿度の上限と下限 LCD12864 ディスプレイ アラーム シミュレーション設計 (プロテウス シミュレーション + プログラム + 回路図 + レポート + 説明ビデオ)


51 マイクロコントローラー SHT11 温度と湿度の上限と下限 LCD12864 ディスプレイ アラーム シミュレーション設計 (プロテウス シミュレーション + プログラム + 回路図 + レポート + 説明ビデオ)

シミュレーション図 proteus7.8以降

プログラムコンパイラ:keil 4/keil 5

プログラミング言語:C言語

デザイン番号:S0043

解説ビデオ

51 マイクロコントローラー SHT11 温度と湿度の上限と下限 LCD12864 ディスプレイ アラーム プロテウス シミュレーション設計

1.主な機能:

学んだ知識を使用して、51 マイクロコントローラーの温度と湿度の上限と下限 LCD12864 の表示アラーム シミュレーションを作成します。

1. SHT11 の温度と湿度を測定し、12864 で表示します。

2.ボタンで温度と湿度の上限と下限を設定でき、温度と湿度の測定値が制限を超えた場合にアラームが鳴ります。

3. 温度と湿度が正常値から大きく外れると、ブザー周波数は高くなります。

4. デフォルトの下限温度しきい値は 10°C、上限温度しきい値は 40.00°C です。湿度の下限はデフォルトで 30%、上限モードは 60% です。

シミュレーションにおける 51 マイクロコントローラー チップはユニバーサルであることに注意してください。AT89C51 と AT89C52 は 51 マイクロコントローラーの特定のモデルであり、コアは互換性があります。stc、atに関わらず端子機能、プログラムは同一であり、STC89C52/STC89C51/AT89C52/AT89C51など51個のマイコンチップに置き換え可能です。

この設計情報の表示図は次のとおりです。

2. シミュレーション

シミュレーションを開始する

シミュレーション プロジェクトを開き、proteus でマイクロコントローラーをダブルクリックし、16 進数ファイルのパスを選択して、シミュレーションを開始します。シミュレーションを開始すると、LCD12864 に温度と湿度が表示されます。

画像

シミュレーション中に、ボタンを押して表示値を変更し、SHT11 温湿度モジュールの値を調整します。

画像

画像上矢印と下矢印を使用して、温度/湿度の値を変更します。下矢印は値を減少させ、上矢印は値を増加させます。画像この矢印を使用して、調整値が温度か湿度かを変更します。

画像変更されたアイコンは湿度と温度の値を表示しており、1行目は湿度値、2行目は温度値です。

シミュレーションを開始した後、[設定/切り替え] ボタンを押して上限と下限のしきい値を調整します。デフォルトの下限温度しきい値は 10°C、上限温度しきい値は 40.00°C です。湿度の下限はデフォルトで 30%、上限モードは 60% です。

画像

シミュレーション開始後、湿度上限閾値の60%を超えるように湿度を調整した後、ブザーアラームが鳴ります 湿度上限を超える値が大きいほど、ブザーアラームが鋭く鳴り、LCD12864はオーバーリミットを表示します。

画像

シミュレーション開始後、湿度下限閾値より30%低く湿度を調整した後、ブザー警報が発生します 湿度下限値を下回る値が大きいほど、ブザー警報音が鋭くなり、LCD12864に表示されますオーバーリミット。

画像

シミュレーション開始後、調整温度が温度上限閾値の40℃を超えるとブザーが鳴り、温度上限を超える値が大きいほどブザーアラーム音が大きくなり、LCD12864にオーバー表示が表示されます。限界。なお、温度調整時、SHT11 の湿度は温度補償の影響を受け、値が変化しますが、実際のアプリケーションでは湿度パラメータが補正されますが、シミュレーションには反映されませんので、湿度値はシミュレーションは SHT11 と同じように表示されます。モジュールには大きなエラーが表示されますが、これは正常です。

画像

シミュレーション開始後、温度を下限温度しきい値より 10°C 低く調整した後、ブザーアラームが鳴ります。下限温度を下回る値が大きいほど、ブザーアラームが鋭く鳴り、LCD12864 に警告音が表示されます。限度を超えて。

画像

3. プログラムコード

keil4 または keil5 を使用してコンパイルすると、コードにはコメントが付いており、レポートと合わせてコードの意味を理解できます。

画像

メイン機能コード

void main()
{
    
    
    uchar i=0;
	lcd_init();                 // 初始化
    lcd_clear(0);               // 清屏
    lcd_set_line(0);             // 设置起始行为0

 	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
    while (1)
	{
    
    
		//按键检测
		if(!k1)//设置
		{
    
    
			if(mode<4)
				mode++;
			else
				mode=0;
			while(!k1);
		}
		if(mode==1)//设置温度下限
		{
    
    
			if(!k2)
			{
    
    
				if(wen_set1<wen_set2)
					wen_set1+=1;
				while(!k2);
			}
			if(!k4)
			{
    
    
				if(wen_set1<wen_set2)
					wen_set1+=0.1;
				while(!k4);
			}
			if(!k3)
			{
    
    
				if(wen_set1>-81.11)
					wen_set1-=1;
				while(!k3);
			}
			if(!k5)
			{
    
    
				if(wen_set1>-81.11)
					wen_set1-=0.1;
				while(!k5);
			}

		}
		if(mode==2)//设置温度上限
		{
    
    
			if(!k2)
			{
    
    
				if(wen_set2<81.11)
					wen_set2+=1;
				while(!k2);
			}
			if(!k4)
			{
    
    
				if(wen_set2<81.11)
					wen_set2+=0.1;
				while(!k4);
			}

			if(!k3)
			{
    
    
				if(wen_set2>wen_set1)
					wen_set2-=1;
				while(!k3);
			}
			if(!k5)
			{
    
    
				if(wen_set2>wen_set1)
					wen_set2-=0.1;
				while(!k5);
			}
		}
		if(mode==3)//设置湿度下限
		{
    
    
			if(!k2)
			{
    
    
				if(shi_set1<shi_set2)
					shi_set1+=1;
				while(!k2);
			}
			if(!k4)
			{
    
    
				if(shi_set1<shi_set2)
					shi_set1+=0.1;
				while(!k4);
			}

			if(!k3)
			{
    
    
				if(shi_set1>1.1)
					shi_set1-=1;
				while(!k3);
			}
			if(!k5)
			{
    
    
				if(shi_set1>1.1)
					shi_set1-=0.1;
				while(!k5);
			}

		}
		if(mode==4)//设置湿度上限
		{
    
    
			if(!k2)
			{
    
    
				if(shi_set2<81)
					shi_set2+=1;
				while(!k2);
			}
			if(!k4)
			{
    
    
				if(shi_set2<81)
					shi_set2+=0.1;
				while(!k4);
			}

			if(!k3)
			{
    
    
				if(shi_set2>shi_set1)
					shi_set2-=1;
				while(!k3);
			}
			if(!k5)
			{
    
    
				if(shi_set2>shi_set1)
					shi_set2-=0.1;
				while(!k5);
			}

		}
		//蜂鸣器
		if(beep_time>0)
		{
    
    
			if(sec<beep_time)
			{
    
    
			 	sec++;
				delay(15);
			}
			else
			{
    
    
				sec=0;
				beep=!beep;
			}
		}
	}
}

4. 概略図

模式図はADを使用して描画されており、物理オブジェクトとリンクするための参考として使用できます。シミュレーションは物理オブジェクトとは異なります。経験の浅い場合は、物理オブジェクトを安易に作成しないでください。初心者は物理的なオブジェクトを作成するときに多くの愚かな間違いを犯し、多くの時間を費やしますが、この設計は物理的なオブジェクトに関する質問に対する答えを提供しません。

Proteus シミュレーションと物理的な作業の違い:

1. 実行環境: Proteus シミュレーションはコンピュータ上で実行されますが、実物はハードウェア回路基板上で実行されます。

2. デバッグ方法: Proteus シミュレーションでは、シングルステップ デバッグを簡単に実行して変数値の変化を観察できますが、実際のオブジェクトでは、デバッガーまたはシリアル ポート出力を通じてデバッグする必要があります。

回路接続方法: Proteus シミュレーションでは、回路接続はソフトウェア設定を通じて変更できますが、実際にはハードウェア回路基板と接続ワイヤを通じて変更する必要があります。

3. 実行速度: Proteus シミュレーションはコンピュータ操作に基づいているため、通常、実物よりも高速に実行されますが、実物は回路基板の物理的制限やデバイスの応答時間などの要素を考慮する必要があります。

4. 機能の実現: Proteus シミュレーションでは、ソフトウェアの設定によってさまざまな機能を実現できますが、実際のオブジェクトでは、回路設計とデバイスの性能に応じて実現する必要があります。

画像

コンポーネントのリストは次のとおりです。

構成機種数

マイコンAT89C51 1

コンデンサ 10uf 1

コンデンサ 30pf 2

水晶発振器 12MHZ 1

抵抗器 10k 1

ボタン6

温湿度センサー SHT11 1

ポテンショメータ 1k 1

抵抗器 1k 1

トランジスタ PNP 1

ブザーパッシブ1

ディスプレイ LCD12864 1

除外 10k 1

5. 設計レポート

7386 ワードの設計レポート。設計ブロック図、概要、ハードウェア設計の概要、ソフトウェア設計の概要、シミュレーション デバッグ、概要、参考資料が含まれます。

画像

6. 設計情報コンテンツ一覧とダウンロードリンク

マテリアルデザイン資料には、シミュレーション、プログラムコード、解説ビデオ、機能要件、設計レポート、ソフトウェアおよびハードウェアの設計ブロック図などが含まれます。

0. 使用上の一般的な問題と解決策 - 必読!

1. シミュレーション図

2. プログラムのソースコード

3. 提案報告書

4. 概略図

5. コンポーネントリスト

6. 印象ツールとその使用法

7. ソフトウェアおよびハードウェアのフローチャート

8. 機能要件

9. 設計レポート

Altium Designer ソフトウェア情報

KEIL ソフトウェア情報

プロテウス ソフトウェア情報

マイコン学習教材

防御スキル

設計レポートの共通説明

マウスをダブルクリックして開くと、詳細が表示されます。 51 STM32 マイクロコントローラー コース卒業プロジェクト.url

画像

データのダウンロード リンク (クリック可能):

おすすめ

転載: blog.csdn.net/weixin_52733843/article/details/132634975