首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

采用12C2052AD的一氧化碳浓度报警程序(上)

采用12C2052AD的一氧化碳浓度报警程序(上)

采用12C2052AD的一氧化碳浓度报警程序(74HC164显示)
    //STC12C2052AD输出PWM波 ,同时检测电压显示,自动稳压 。

//74HC164串入并出显示数码管,一位一位显示,之后熄灭省电,根据我焊的板子确定的数码管值。

#Include <Stc12c2052ad.H>

#Include <Intrins.H>

#Define Uchar Unsigned Char

#Define Uint Unsigned Int

#Define AD_SPEED   0x60 //0110,0000   1      1     270个时钟周期转换一次,

//少占鱼制作  河北正定欢迎您   长沙航空职业技术学院  2010 年QQ:411656434

//京畿之地    魅力河北   河北欢迎您  

//注意:74HC164是先发Qh 位最后发Qa位的。共阳数码管代码要反过来写。

//74HC164的Qa----Qh对应数码管A----Dp各段。

Uchar Code Tab[16]={0x02,0x9f,0x25,0x0d,0x99,

   //  0   1   2  3    4      

                0x49,  0x41,  0x1f,0x01,0x09, 0x11,

   // 5  6   7  8  9   A   

    0xc1,0x63,0x85,0x61,0x71};   //共Y阳数码管     

  //     B     C    D E   F   



Uchar Xianshi[4]={0x11,0xd7,0x25,0x45};



Sbit OK=P1^1; //浓度正常指示灯

Sbit BAOJING=P1^2; //报警指示灯

Sbit Sound=P1^0; //声音报警



Sbit PWM=P3^7;

Sbit Contrl=P1^7; //加热控制端



Sbit Wei1=P3^3;

Sbit Wei2=P3^4;

Sbit Wei3=P3^2;

Sbit Wei4=P3^5;

Bit High=1; //定义高5V加热传感器标志

Bit Low=0; //定义低1.5V加热传感器标志

Bit START =0;

Uint Cnt=0;

Uchar TimeL=0x90;

Uchar TimeH=0x90;

/****************************************************************/

Void Pwm();

Void Delayms(Uint);         

Void ADC(Uchar Port);

Void InitADC();

//Void Baohu();

Void Ceshi();

Void Sendchar();

Float Voltage=0.0;

Uint Vol=0;

Void  Run_t0();

//显示测试

Void Ceshi()

{



Uchar I;

TI=0;

   OK=0;

    BAOJING=0;

    Sound=1;

Wei1=0;

Wei2=0;

Wei3=0;

Wei4=0;

For(I=0;I<16;I++)

{

SBUF=Tab[I];

While(!TI);

TI=0;

Delayms(850);

  }

  Wei4=1;

  Wei3=1;

  Wei2=1;

  Delayms(1600);

  Wei1=1;

}



Void Sendchar()

{



  TI=0;

  SBUF=Tab[Xianshi[0]];

  While(!TI);

  TI=0;

  Wei1=0;

  Wei1=0;

  Delayms(1200);

  Wei1=1;

  SBUF=Tab[Xianshi[1]];

  While(!TI);

  TI=0;

  Wei2=0;

  Wei2=0;

  Delayms(1200);

  Wei2=1;

  SBUF=Tab[Xianshi[2]];

  While(!TI);

  TI=0;

  Wei3=0;

  Wei3=0;

  Delayms(1200);

  Wei3=1;

  SBUF=Tab[Xianshi[3]];

  While(!TI);

  TI=0;

  Wei4=0;

  Wei4=0;

  Delayms(1200);

  Wei4=1;

}
返回列表