采用12C2052AD的一氧化碳浓度报警程序(上)
- UID
- 852722
|
采用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;
} |
|
|
|
|
|