乐山师范学院毕业论文(设计)
}
}
warn(); //手动报警/取消
if((S0>=S1)||(S2>=S3)) {ledw=0;BEEP=0;};//报警条件
User.c:
#include\#define uchar unsigned char #define uint unsigned int uint temp1; fun.c:
#include\sbit ledw=P1^3; //LED sbit BEEP = P1^4; //蜂鸣器
unsigned char code led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共 阴 uchar t=0,k=0;
uint x=0,y=62,S,S0,S1=2500,S2,S3=50,y1=12; void delay1(uint n) { }
//=============================预热 void pre() {
uchar i; while(n--);
P2_4=1;P2_5=1;P2_6=1;P2_7=1; //消影
26
乐山师范学院毕业论文(设计)
for(i=0;i<5;i++) //LED闪烁三次 {
ledw=~ledw; delay1(55000);
} ledw=1; while(1)
//预热30秒左右
{ delay1(200); P0=led[y/10]; P2_6=0; delay1(200); P0=led[y]; P2_5=0; delay1(200); if(y==0) break;
}
}
//=============================初始化 void initial() { TMOD=0x01; //定时器工作方式
ET0=1; TR0=1;
EA=1;
BEEP=1;
27
乐山师范学院毕业论文(设计)
}
TH0=(65536-50000)/256; TL0=(65536-50000)%6;
//=============================数码管显示 void output() { uchar a,b,c,d; a=x/1000;
//千位
b=x00/100; //百位 c=x0/10; //十位 d=x;
//个位
P2_7=0; P0=led[a]; delay1(250); P2_6=0; P0=led[b]; delay1(250); P2_5=0; P0=led[c]; delay1(250); P2_4=0; P0=led[d]; delay1(250);
}
//==========================确定显示类型/加减设定值void getx()
28
乐山师范学院毕业论文(设计)
{
if(k==0)
//显示设定烟雾浓度
并增/减 +100/-100 上限4000
1800 { x=S1; if(P3_0==0) { while(!P3_0); S1=S1+100;
if(S1>=4000) S1=4000;
}
if(P3_1==0) { while(!P3_1); S1=S1-100;
if(S1<=1800) S1=1800; }
}
else if(k==1) //显示实际烟雾浓度 { x=S0; }
else if(k==2) //显示设定温度 并增/减 +1/-1 { x=S3; if(P3_0==0)
{ 上限50 下限20 29
下线
乐山师范学院毕业论文(设计)
}
}
}
while(!P3_0); S3=S3+1; if(S3>=50) S3=50;
if(P3_1==0) { }
while(!P3_1); S3=S3-1;
if(S3<=20) S3=20;
else if(k==3) //显示实际温度 { }
x=S2;
//=================================未达到自动报警条件时手动报警 /取消报警 void warn() { }
//===============================标志位k值确定 服务确定x程序
30
if(P3_3==0) { }
while(!P3_3);
BEEP=~BEEP;ledw=~ledw;