|
電路原理圖如下:
0.png (75.7 KB, 下載次數(shù): 59)
下載附件
2018-5-8 22:22 上傳
]S`9GR_FD4QXX}MIOT33DV2.png (73.98 KB, 下載次數(shù): 64)
下載附件
2018-5-8 20:33 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (32.4 KB, 下載次數(shù): 53)
下載附件
2018-5-8 22:23 上傳
單片機(jī)源程序如下:
- //宏定義
- #define uchar unsigned char
- #define uint unsigned int
- bit ZF1,ZF2,ZF3,ZF4; //溫度的符號位,=0為正數(shù),=1為負(fù)數(shù)
- bit flag,shanshuo;
- //頭函數(shù)
- #include<reg52.h>
- #include<Lcd.h>
- #include<DS18B20.h>
- //函數(shù)聲明
- //IO說明
- sbit LED1=P1^4;
- sbit LED2=P1^5;
- sbit LED3=P1^6;
- sbit LED4=P1^7;
- sbit LED5=P1^0;
- sbit LED6=P1^1;
- sbit LED7=P1^2;
- sbit LED8=P1^3;
- sbit BUZZER=P2^0;
- sbit K1 =P3^3;
- sbit K2 =P3^4;
- sbit K3 =P3^5;
- sbit K4 =P3^6;
- sbit K5 =P3^7;
- //變量聲明
- uchar Mode=0;//
- uchar S=0;
- uint SI=0;
- uint TT0=0,TT1=0,TT2=0,TT3=0;//溫度變量
- bit flag_BJ1,flag_BJ2,flag_BJ3,flag_BJ4;
- bit ZFH1=0,ZFL1=0,ZFH2=0,ZFL2=0,ZFH3=0,ZFL3=0,ZFH4=0,ZFL4=0;
- char TEMH1=40,TEML1=20,TEMH2=39,TEML2=21,TEMH3=36,TEML3=23,TEMH4=33,TEML4=27;
- uchar set;
- void delay(uint ms)
- {
- uint i,j;
- for(i=0;i<ms;i++)
- for(j=0;j<110;j++);
- }
- void key()
- {
- if(K1==0)
- {
- delay(10);
- if(K1==0)
- {
- set++;
- if(set>=3)
- {
- set=0;
- flag=0;
- }
- }
- while(!K1);
- }
- if(set!=0)
- {
- flag=1;
- BUZZER=1;
- flag_BJ1=0;flag_BJ2=0;flag_BJ3=0;flag_BJ4=0;
- LED1=1;LED2=1;LED3=1;LED4=1;
- }
- if(K2==0)
- {
- delay(10);
- if(K2==0)
- {
- if(set==1)
- {
- if(Mode==0)
- {
- if(ZFH1==0)
- {
- TEMH1++;
- if(TEMH1>=99)
- TEMH1=99;
- }
- else
- {
- TEMH1--;
- if(TEMH1==0)
- ZFH1=0;
- }
-
- }
- if(Mode==1)
- {
- if(ZFH2==0)
- {
- TEMH2++;
- if(TEMH2>=99)
- TEMH2=99;
- }
- else
- {
- TEMH2--;
- if(TEMH2==0)
- ZFH2=0;
- }
-
- }
- if(Mode==2)
- {
- if(ZFH3==0)
- {
- TEMH3++;
- if(TEMH3>=99)
- TEMH3=99;
- }
- else
- {
- TEMH3--;
- if(TEMH3==0)
- ZFH3=0;
- }
-
- }
- if(Mode==3)
- {
- if(ZFH4==0)
- {
- TEMH4++;
- if(TEMH4>=99)
- TEMH4=99;
- }
- else
- {
- TEMH4--;
- if(TEMH4==0)
- ZFH4=0;
- }
-
- }
- }
- if(set==2)
- {
- if(Mode==0)
- {
- if(ZFL1==0)
- {
- TEML1++;
- if(TEML1==TEMH1)
- TEML1=TEMH1-1;
- if(TEML1>=99)
- TEML1=99;
- }
- else
- {
- TEML1--;
- if(ZFH1==1&&TEML1==TEMH1)
- TEML1=TEMH1+1;
- else if(ZFH1==0&&TEMH1==0&&TEML1==0)
- TEML1=1;
- if(TEML1==0)
- ZFL1=0;
- }
-
- }
- if(Mode==1)
- {
- if(ZFL2==0)
- {
- TEML2++;
- if(TEML2==TEMH2)
- TEML2=TEMH2-1;
- if(TEML2>=99)
- TEML2=99;
- }
- else
- {
- TEML2--;
- if(ZFH2==1&&TEML2==TEMH2)
- TEML2=TEMH2+1;
- else if(ZFH2==0&&TEMH2==0&&TEML2==0)
- TEML2=1;
- if(TEML2==0)
- ZFL2=0;
- }
-
- }
- if(Mode==2)
- {
- if(ZFL3==0)
- {
- TEML3++;
- if(TEML3==TEMH3)
- TEML3=TEMH3-1;
- if(TEML3>=99)
- TEML3=99;
- }
- else
- {
- TEML3--;
- if(ZFH3==1&&TEML3==TEMH3)
- TEML3=TEMH3+1;
- else if(ZFH3==0&&TEMH3==0&&TEML3==0)
- TEML3=1;
- if(TEML3==0)
- ZFL3=0;
- }
-
- }
- if(Mode==3)
- {
- if(ZFL4==0)
- {
- TEML4++;
- if(TEML4==TEMH4)
- TEML4=TEMH4-1;
- if(TEML4>=99)
- TEML4=99;
- }
- else
- {
- TEML4--;
- if(ZFH4==1&&TEML4==TEMH4)
- TEML4=TEMH4+1;
- else if(ZFH4==0&&TEMH4==0&&TEML4==0)
- TEML4=1;
- if(TEML4==0)
- ZFL4=0;
- }
-
- }
- }
- }
- while(!K2);
- }
- if(K3==0)
- {
- delay(10);
- if(K3==0)
- {
- if(set==1)
- {
- if(Mode==0)
- {
- if(ZFH1==0)
- {
- TEMH1--;
- if(ZFL1==0&&TEMH1==TEML1)
- TEMH1=TEML1+1;
- else if(ZFL1==1&&TEML1==1&&TEMH1<0)
- TEMH1=0;
- if(TEMH1<0)
- {
- TEMH1=1;
- ZFH1=1;
- }
- }
- else
- {
- TEMH1++;
- if(ZFL1==1&&TEMH1==TEML1)
- TEMH1=TEML1-1;
- if(TEMH1>=50)
- TEMH1=50;
- }
- }
- if(Mode==1)
- {
- if(ZFH2==0)
- {
- TEMH2--;
- if(ZFL2==0&&TEMH2==TEML2)
- TEMH2=TEML2+1;
- else if(ZFL2==1&&TEML2==1&&TEMH2<0)
- TEMH2=0;
- if(TEMH2<0)
- {
- TEMH2=1;
- ZFH2=1;
- }
- }
- else
- {
- TEMH2++;
- if(ZFL2==1&&TEMH2==TEML2)
- TEMH2=TEML2-1;
- if(TEMH2>=50)
- TEMH2=50;
- }
- }
- if(Mode==2)
- {
- if(ZFH3==0)
- {
- TEMH3--;
- if(ZFL3==0&&TEMH3==TEML3)
- TEMH3=TEML3+1;
- else if(ZFL3==1&&TEML3==1&&TEMH3<0)
- TEMH3=0;
- if(TEMH3<0)
- {
- TEMH3=1;
- ZFH3=1;
- }
- }
- else
- {
- TEMH3++;
- if(ZFL3==1&&TEMH3==TEML3)
- TEMH3=TEML3-1;
- if(TEMH3>=50)
- TEMH3=50;
- }
- }
- if(Mode==3)
- {
- if(ZFH4==0)
- {
- TEMH4--;
- if(ZFL4==0&&TEMH4==TEML4)
- TEMH4=TEML4+1;
- else if(ZFL4==1&&TEML4==1&&TEMH4<0)
- TEMH4=0;
- if(TEMH4<0)
- {
- TEMH4=1;
- ZFH4=1;
- }
- }
- else
- {
- TEMH4++;
- if(ZFL4==1&&TEMH4==TEML4)
- TEMH4=TEML4-1;
- if(TEMH4>=50)
- TEMH4=50;
- }
- }
- }
- if(set==2)
- {
- if(Mode==0)
- {
- if(ZFL1==0)
- {
- TEML1--;
- if(TEML1<0)
- {
- TEML1=1;
- ZFL1=1;
- }
- }
- else
- {
- TEML1++;
- if(TEML1>=50)
- TEML1=50;
- }
- }
- if(Mode==1)
- {
- if(ZFL2==0)
- {
- TEML2--;
- if(TEML2<0)
- {
- TEML2=1;
- ZFL2=1;
- }
- }
- else
- {
- TEML2++;
- if(TEML2>=50)
- TEML2=50;
- }
- }
- if(Mode==2)
- {
- if(ZFL3==0)
- {
- TEML3--;
- if(TEML3<0)
- {
- TEML3=1;
- ZFL3=1;
- }
- }
- else
- {
- TEML3++;
- if(TEML3>=50)
- TEML3=50;
- }
- }
- if(Mode==3)
- {
- if(ZFL4==0)
- {
- TEML4--;
- if(TEML4<0)
- {
- TEML4=1;
- ZFL4=1;
- }
- }
- else
- {
- TEML4++;
- if(TEML4>=50)
- TEML4=50;
- }
- }
- }
- }
- while(!K3);
- }
- if(K4==0)
- {
- delay(10);
- if(K4==0)
- {
- flag=0;
- set=0;
- }
- while(!K4);
- }
- if(K5==0)
- {
- delay(10);
- if(K5==0)
- {
- flag=1;
- set=0;
- flag_BJ1=0;flag_BJ2=0;flag_BJ3=0;flag_BJ4=0;
- LED1=1;LED2=1;LED3=1;LED4=1;
- Mode++;
- if(Mode==4)
- Mode=0;
- }
- while(!K5);
- }
- }
- void init()
- {
- TMOD=0x11;
- TH0=0x4b;
- TL0=0xff;
- EA=1;
- ET0=1;
- TR0=1;
- }
- //主函數(shù)
- void main()
- {
- uint i;
- Kaiji_LCD_Mode();
- init();
- for(i=0;i<5;i++)
- {
- tmpchange0();
- TT0=tmp0();
- tmpchange1();
- TT1=tmp1();
- tmpchange2();
- TT2=tmp2();
- tmpchange3();
- TT3=tmp3();
- delay(500);
- }
- Init_LCD_Mode();
- Mode=0;
- //主循環(huán)
- while(1)
- {
-
- key();
- //節(jié)點(diǎn)溫度顯示
- // if(set==0)
- // {
- if(Mode==0)
- {
- tmpchange0();
- TT0=tmp0();
-
- Data_WD(TT0,ZF1,Mode,TEMH1,TEML1,ZFH1,ZFL1,set); delay(25);
- }
- else if(Mode==1)
- {
- tmpchange1();
- TT1=tmp1();
-
- Data_WD(TT1,ZF2,Mode,TEMH2,TEML2,ZFH2,ZFL2,set); delay(25);
- }
- else if(Mode==2)
- {
- tmpchange2();
- TT2=tmp2();
-
- Data_WD(TT2,ZF3,Mode,TEMH3,TEML3,ZFH3,ZFL3,set); delay(25);
- }
- else if(Mode==3)
- {
- tmpchange3();
- TT3=tmp3();
-
- Data_WD(TT3,ZF4,Mode,TEMH4,TEML4,ZFH4,ZFL4,set); delay(25);
- }
- // } //溫度+ 上限+ 下限+ 溫度》=上限*10 || 溫度《=下限*10 / 溫度+ 上限+ 下限- 溫度》=上限*10 /溫度- 上限+ 下限- 溫度》=下限*10/ 溫度+ 上限- / 溫度- 上限- |溫度|《=|上限*10| / 溫度- 下限+
- if(((TT0/100==0&&TT0/10%10==0&&TT0%10==1)!=1)&&((ZF1==0&&ZFH1==0&&ZFL1==0&&((TT0>=TEMH1*10) ))||(ZF1==0&&ZFH1==0&&ZFL1==1&&TT0>=TEMH1*10) ||(ZF1==0&&ZFH1==1)||(ZF1==1&&ZFH1==1&&(TT0<=TEMH1*10)) ))
- {
- LED1=0;
- flag_BJ1=1;
- }
- else
- {
- LED1=1;
- flag_BJ1=0;
- // BUZZER=1;
- } //溫度+ 上限+ 下限+ 溫度》=上限*10 || 溫度《=下限*10 / 溫度+ 上限+ 下限- 溫度》=上限*10 /溫度- 上限+ 下限- 溫度》=下限*10/ 溫度+ 上限- / 溫度- 上限- |溫度|《=|上限*10| / 溫度- 下限+
- if(((TT0/100==0&&TT0/10%10==0&&TT0%10==1)!=1)&&((ZF1==0&&ZFH1==0&&ZFL1==0&&( (TT0<=TEML1*10))) ||(ZF1==1&&ZFH1==0&&ZFL1==1&&TT0>=TEML1*10) ||(ZF1==1&&ZFH1==1&&(TT0>=TEML1*10)) || (ZF1==1&&ZFL1==0)))
- {
- LED5=0;
- flag_BJ1=1;
- }
- else
- {
- LED5=1;
- flag_BJ1=0;
- // BUZZER=1;
- }
- if(((TT1/100==0&&TT1/10%10==0&&TT1%10==1)!=1)&&((ZF2==0&&ZFH2==0&&ZFL2==0&&((TT1>=TEMH2*10) ))||(ZF2==0&&ZFH2==0&&ZFL2==1&&TT1>=TEMH2*10) ||(ZF2==0&&ZFH2==1)||(ZF2==1&&ZFH2==1&&(TT1<=TEMH2*10)) ))
- {
- LED2=0;
- flag_BJ2=1;
- }
- else
- {
- LED2=1;
- flag_BJ2=0;
- // BUZZER=1;
- }
- if(((TT1/100==0&&TT1/10%10==0&&TT1%10==1)!=1)&&((ZF2==0&&ZFH2==0&&ZFL2==0&&( (TT1<=TEML2*10))) ||(ZF2==1&&ZFH2==0&&ZFL2==1&&TT1>=TEML2*10) ||(ZF2==1&&ZFH2==1&&(TT1>=TEML2*10)) || (ZF2==1&&ZFL2==0)))
- {
- LED6=0;
- flag_BJ2=1;
- }
- else
- {
- LED6=1;
- flag_BJ2=0;
- // BUZZER=1;
- }
- if(((TT2/100==0&&TT2/10%10==0&&TT2%10==1)!=1)&&((ZF3==0&&ZFH3==0&&ZFL3==0&&((TT2>=TEMH3*10) ))||(ZF3==0&&ZFH3==0&&ZFL3==1&&TT2>=TEMH3*10) ||(ZF3==0&&ZFH3==1)||(ZF3==1&&ZFH3==1&&(TT2<=TEMH3*10)) ))
- {
- LED3=0;
- flag_BJ3=1;
- }
- else
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
0.jpg (24.25 KB, 下載次數(shù): 61)
下載附件
2018-5-8 22:23 上傳
所有資料51hei提供下載:
基于單片機(jī)的多點(diǎn)溫度監(jiān)控.rar
(298.57 KB, 下載次數(shù): 123)
2018-5-8 20:31 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|