zoukankan      html  css  js  c++  java
  • 基于AT89C51单片机烟雾传感器

    #include <reg51.h>
    #include <stdio.h>
    #define uchar unsigned char           //宏定义无符号字符型
    #define uint  unsigned  int           //宏定义无符号整型
    
    sbit ST=P3^0;   //A/D启动转换信号
    sbit OE=P3^1;   //数据输出允许信号
    sbit EOC=P3^2;  //A/D转换结束信号
    sbit CLK=P3^3;  //时钟脉冲 
    uint i,j,AD0809;        //定义数据类型
    
    //延时子函数
    void delay()
    {
       i = 1000;
       while(i--);
    }
    /*************************************************************************
                                    CLK振荡信号        
    **************************************************************************/
    void timer0( ) interrupt 1 //定时器0工作方式1
    {
    
    TH0=(65536-2)/256;          //重装计数初值
    TL0=(65536-2)%256;          //重装计数初值
    CLK=!CLK;                          //取反
    }
    
     /*************************************************************************
                                    主函数        
    **************************************************************************/
     void main()
    { 
    TMOD=0X01;                          //定时器中断0
    
    CLK=0;                                  //脉冲信号初始值为0
    TH0=(65536-2)/256;          //定时时间高八位初值
    TL0=(65536-2)%256;          //定时时间低八位初值
    EA=1;                                  //开CPU中断
    ET0=1;                                  //开T/C0中断
    TR0=1;
     while(1)                           //无限循环
           {
            ST=0;                                //使采集信号为低
            ST=1;                                //开始数据转换
            ST=0;                                //停止数据转换
            while(!EOC);                //等待数据转换完毕
            OE=1;                                //允许数据输出信号
            AD0809=P1;                    //读取数据
            OE=0;                                //关闭数据输出允许信号
            if(AD0809>=251)                //电压显示不能超过5V
        {
            AD0809=250;
           P2 = 0xE0;//报警闪烁LED灯
          delay();
          P2 =~0xE0;
          delay();
          P0 = ~0x06;//数码管报警显示1
          delay();
          P0 = ~0x00;
          delay();
        }    
      }
       
    }        
    
        
  • 相关阅读:
    luogu P1353 [USACO08JAN]跑步Running
    bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊
    [USACO3.2]Sweet Butter
    [SDOI2009]Elaxia的路线
    [USACO5.4]Telecowmunication
    [洛谷1681]最大正方形II
    [清华集训2014]奇数国
    [洛谷2814]家谱
    [洛谷1868]饥饿的奶牛
    [HNOI2003]激光炸弹
  • 原文地址:https://www.cnblogs.com/kinson/p/7453963.html
Copyright © 2011-2022 走看看