51单片机烟雾报警器制作 程序Word文件下载.docx
《51单片机烟雾报警器制作 程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《51单片机烟雾报警器制作 程序Word文件下载.docx(6页珍藏版)》请在冰点文库上搜索。
//ADC0809
sbitST=P3^3;
sbitEOC=P3^4;
sbitOE=P3^2;
//按键
sbitKey1=P3^5;
sbitKey2=P3^6;
sbitKey3=P3^7;
//显示数组0-9+F
ucharData_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x3f};
sbitWei1=P2^7;
sbitWei2=P2^6;
sbitWei3=P2^5;
sbitWei4=P2^4;
//函数声明
externucharADC0809();
voidDisplay(ucharX,ucharData);
voiddelay(uintt);
//酒精含量变量
uchartemp=0;
//蜂鸣器变量
ucharFF=10;
//显示模式
ucharMode=0;
ucharp;
voidmain()
{
while
(1)
//正常模式
if(Mode==0)
//读取AD值
temp=ADC0809();
for(p=0;
p;
FF)
Feng=0;
}
else
Feng=1;
//调整模式
Display(1,FF);
//功能键
if(Key3==0)
delay(100);
while(Key3==0)
Display(0,temp);
Mode=1;
Mode=0;
//增加
if(Key2==0&
&
Mode==1)
while(Key2==0)
FF++;
if(FF==251)
FF=250;
//减少
if(Key1==0&
while(Key1==0)
FF--;
if(FF==0xff)
FF=0;
//ADC0809读取信息
ucharADC0809()
uchartemp_=0x00;
//初始化高阻太
OE=0;
//转化初始化
ST=0;
//开始转换
ST=1;
//外部中断等待AD转换结束
while(EOC==0)
//读取转换的AD值
OE=1;
temp_=Data_ADC0809;
returntemp_;
//延时
voiddelay(uintt)
uinti,j;
for(i=0;
i<
t;
i++)
for(j=0;
j<
10;
j++);
//显示X表示状态Data表示数据
voidDisplay(ucharX,ucharData)
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=0xff;
//正常模式
if(X==0)
P0=~Data_[11];
//非正常
P0=~Data_[10];
Wei1=0;
delay(10);
P0=~Data_[Data/100];
Wei2=0;
P0=~Data_[Data/10%10];
Wei3=0;
P0=~Data_[Data%10];
Wei4=0;
}