资源简介

单片机接收烟雾传感器传输的烟雾浓度信号,若烟雾浓度大于规定范围,装置将发出声光报警,烟雾浓度可以通过数码管显示,烟雾浓度范围可通过按钮设置

资源截图

代码片段和文件信息

#include
#define duan P3
typedef unsigned char BYTE;
typedef unsigned int WORD;
sbit baiwei=P1^2; 
sbit shiwei=P1^1;
sbit gewei=P1^0;
sbit key0=P2^3;
sbit key1=P2^4;
sbit key2=P2^5;
sbit led0=P2^0;
sbit led1=P2^1;
sbit led2=P2^2;
sbit beep=P4^5;
unsigned char code shuzi[10]={0xc00xf90xa40xb00x99
0x920x830xf80x800x98};
unsigned char disp[3];
unsigned char shezhi;
void light0()
{
 led0=0;
 led1=1;
 led2=1;
}
void light1()
{
 led1=0;
 led0=1;
 led2=1;
}
void light2()
{
 led2=0;
 led0=1;
 led1=1;
}
void delay1ms(int x)
{
for(x;x>0;x--)
{
unsigned char i j;
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
void button()
{
 if(key0==0)
 {
  delay1ms(10);
  if(key0==0)
  {
   disp[2]++;
   if(disp[2]==10)
   {
   disp[2]=0;
   disp[1]++;
   }
   if(disp[1]==10)
   {
   disp[1]=0;
   disp[0]++;
   }
   while(!key0);
   }
  }
 if(key2==0)
 {
  delay1ms(10);
  if(key2==0)
  {
   disp[2]--;
   if(disp[2]==-1)
   {
   disp[2]=9;
   disp[1]--;
   }
   if(disp[1]==-1)
   {
   disp[1]=9;
   disp[0]--;
   }
   while(!key1);
   }
  }

void display()
{
  unsigned char j;
  baiwei=1;
  j=disp[0];
  P3=shuzi[j];
  delay1ms(4);
  baiwei=0;
  shiwei=1;
  j=disp[1];
  P3=shuzi[j];
  delay1ms(4);
  shiwei=0;
  gewei=1;
  j=disp[2];
  P3=shuzi[j];
  delay1ms(4);
  gewei=0;
  P3=0xff;
}
 void tm0_isr() interrupt 1 using 1
{
 button();
}
void main()
{
    disp[0]=1;
    disp[1]=0;
    disp[2]=0;
    beep=0;
    led0=1;
    led1=1;
    led2=1;
 P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    P6M0 = 0x00;
    P6M1 = 0x00;
    P7M0 = 0x00;
    P7M1 = 0x00;

    AUXR |= 0x80;                   //???0?1T??
//  AUXR &= 0x7f;                   //???0?12T??

    TMOD = 0x00;                    //????????0(16??????)
    TL0 = (65536-50000)%256;                     //??????
    TH0 = (65536-50000)/256;
    TR0 = 1;                        //???0????
    ET0 = 1;                        //?????0??
    EA = 1;
    while (1);
{
 shezhi=disp[0]*100+disp[1]*10+disp[2];
 if(shezhi>80&&shezhi<90)
 {
  light0();
 }
 if(shezhi>100&&shezhi<110)
 {
  light1();
 }
 if(shezhi>110&&shezhi==110)
 {
  light2();
 }
 display();
}



  
  
  
  
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      10212  2016-04-15 13:14  烟雾报警器\smoke

     文件       2566  2016-04-15 13:05  烟雾报警器\smoke.c

     文件        915  2016-04-15 13:14  烟雾报警器\smoke.hex

     文件         43  2016-04-15 13:14  烟雾报警器\smoke.lnp

     文件       6487  2016-04-15 13:14  烟雾报警器\smoke.LST

     文件      12915  2016-04-15 13:14  烟雾报警器\smoke.M51

     文件      10577  2016-04-15 13:14  烟雾报警器\smoke.OBJ

     文件        150  2018-07-16 11:44  烟雾报警器\smoke.plg

    .......     57004  2018-07-16 11:44  烟雾报警器\smoke.uvopt

    .......     13398  2016-03-30 15:49  烟雾报警器\smoke.uvproj

    .......     57010  2017-06-29 09:52  烟雾报警器\smoke_uvopt.bak

    .......     13399  2016-03-29 15:07  烟雾报警器\smoke_uvproj.bak

     文件       6376  2009-05-07 14:37  烟雾报警器\STARTUP.A51

     文件      14043  2016-03-29 12:48  烟雾报警器\STARTUP.LST

     文件        749  2016-03-29 12:48  烟雾报警器\STARTUP.OBJ

     文件      12805  2016-03-17 18:13  烟雾报警器\stc15f2k60s2.h

    ..A..H.       162  2016-05-07 15:49  烟雾报警器\~$时钟程序.docx

     文件      16753  2016-03-19 14:22  烟雾报警器\时钟程序.docx

     目录          0  2018-07-16 11:44  烟雾报警器

----------- ---------  ---------- -----  ----

               235564                    19


评论

共有 条评论