LCD1602屏幕顯示的51單片機客車空調分區控制系統仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (17.28 KB, 下載次數: 17)
下載附件
2019-4-23 17:55 上傳
LM35溫度傳感器經過LM358+PCF8591 AD轉換后送給單片機處理
0.png (11.19 KB, 下載次數: 21)
下載附件
2019-4-23 17:56 上傳
L298驅動3個電機動作
0.png (8.78 KB, 下載次數: 13)
下載附件
2019-4-23 17:59 上傳
單片機源程序如下:
- #include<reg52.h>
- #include"delay.h"
- #include"lcd602.h"
- #include"iic.h"
- #include"pwm.h"
- #include"pwm1.h"
- #include"pwm2.h"
- /*******************數組定義********************/
- uchar tab1[] = {"T1: T2: "}; //3 12
- uchar tab2[] = {"T3: "}; //3
- /*******************端口定義********************/
- /*******************變量定義********************/
- double dianya1 = 0; //電壓1
- double dianya2 = 0; //電壓2
- double dianya3 = 0; //電壓2
- /*******************主函數********************/
- void main()
- {
- chushihua(); //液晶初始化
- iic_init(); //IIC初始化
- write_string(1,0,tab1);
- write_string(2,0,tab2);
- init_t0();
- init_t1();
- init_t2();
- while(1)
- {
- /*電壓采集*/
- dianya1=read_add(0x90,0x40)*5.0/255*10/3/0.01; //計算電壓,進而計算溫度
- dianya1=read_add(0x90,0x40)*5.0/255*10/3/0.01; //計算電壓,進而計算溫度
- dianya2=read_add(0x90,0x41)*5.0/255*10/3/0.01; //計算電壓,進而計算溫度
- dianya2=read_add(0x90,0x41)*5.0/255*10/3/0.01; //計算電壓,進而計算溫度
- dianya3=read_add(0x90,0x42)*5.0/255*10/3/0.01; //計算電壓,進而計算溫度
- dianya3=read_add(0x90,0x42)*5.0/255*10/3/0.01; //計算電壓,進而計算溫度
- write_num31(1,3,dianya1); //顯示溫度1
- write_num31(1,12,dianya2); //顯示溫度2
- write_num31(2,3,dianya3); //顯示溫度3
- /*溫度1控制*/
- if(dianya1/10<18)
- {pwm(0);}
- else if(dianya1/10>=18 && dianya1/10<=22)
- {pwm(50);}
- else
- {pwm(100);}
- /*溫度2控制*/
- if(dianya2/10<22)
- {pwm1(0);}
- else if(dianya2/10>=22 && dianya2/10<=25)
- {pwm1(50);}
- else
- {pwm1(100);}
- /*溫度3控制*/
- if(dianya3/10<22)
- {pwm2(0);}
- else if(dianya3/10>=20 && dianya3/10<=23)
- {pwm2(50);}
- else
- {pwm2(100);}
- }
- }
復制代碼
所有資料51hei提供下載:
基于單片機客車空調分區控制系統.rar
(143.19 KB, 下載次數: 91)
2019-4-23 15:39 上傳
點擊文件名下載附件
基于單片機客車空調分區控制系統 下載積分: 黑幣 -5
|