找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3099|回復(fù): 2
收起左側(cè)

酒精濃度傳感器

[復(fù)制鏈接]
ID:103184 發(fā)表于 2016-1-14 12:58 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
#include <stdio.h>
//**************定義管腳***************//
//sbit P0_7=P0^7;      //小數(shù)點
sbit P1_0_A=P1^0;      //74LM138A相連接
sbit P1_1_B=P1^1;      //74LM138B相連接
sbit P1_2_C=P1^2;      //74LM138C相連接
sbit SAT=P1^3;         //SATAD轉(zhuǎn)換啟動信號,輸入高電平有效
sbit OE=P1^4;          //OE為輸出允許信號,高電平有效
sbit EOC=P3^2;         //AD轉(zhuǎn)換結(jié)束信號,轉(zhuǎn)換結(jié)束時,此端輸出一個高電平
sbit LED_RED=P1^5;     //低電平點亮
sbit LED_BLUE=P1^6;    //低電平點亮
sbit SPEAKER=P1^7;     //高電平報警
unsigned int   DATA;       
//****************七段碼*****************//--->高電平點亮七段碼
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
                            0x6d,0x7d,0x07,0x7f,0x6f,0x80};
void  Xint0()  interrupt   0  using     1   //中斷INT0函數(shù)
{         
      
          OE=1;
      DATA=P2;
      OE=0;
          
}
//****************延時函數(shù)******************//
void delay_1ms(unsigned int i)
{   
       unsigned char x, j;
      for(j=0;j<i;j++)
      for(x=0;x<=148;x++);
}
//************ADC0809轉(zhuǎn)換函數(shù)**************//
void ADC0809()
{   
     SAT=0;
         EOC=1;               
     delay_1ms(1);
     SAT=1;
         EOC=0;               
     delay_1ms(1);
     SAT=0;
         EOC=1;
     delay_1ms(5);
}
//*************Display函數(shù)*******************//
//--->Display函數(shù)的功能:將采集到的電壓值轉(zhuǎn)換為實際氣體濃度值進行顯示
void Display(unsigned int date)
{        
    unsigned int ge,shi,bai,qian;
        qian=date/1000%10;//--->提取千位
        bai=date/100%10;  //--->提取百位
        shi=date/10%10;   //--->提取十位
        ge=date%10;       //--->提取個位
    P1_2_C=0; //C
    P1_1_B=0; //B
    P1_0_A=0; //A      --->選擇千位數(shù)碼管
    P0=table[qian];  //--->將千位的數(shù)據(jù)送給千位
    delay_1ms(3);
    P1_2_C=0;//C
    P1_1_B=0;//B
    P1_0_A=1;//A      --->選擇百位數(shù)碼管
    P0=table[bai];  //--->將百位的數(shù)據(jù)送給百位
    delay_1ms(3);
    //P0=table[10];    //--->點亮小數(shù)點
    //delay_1ms(3);
    P1_2_C=0;//C
    P1_1_B=1;//B
    P1_0_A=0;//A      --->選擇十位數(shù)碼管
    P0=table[shi];  //--->將十位的數(shù)據(jù)送給十位
    delay_1ms(3);
    //P0=table[10];    //--->點亮小數(shù)點
    //delay_1ms(3);
    P1_2_C=0;//C
    P1_1_B=1;//B
    P1_0_A=1;//A      --->選擇個位數(shù)碼管
    P0=table[ge];   //--->將個位的數(shù)據(jù)送給個位
    delay_1ms(3);  
}
//*****************主函數(shù)******************//
void main()
{
        ET0=0;
        IT0=1; //設(shè)INT0為邊沿觸發(fā)
        EX0=1; //中斷INT0允許
        EA=1;  //開放中斷
    while(1)       
    {
        ADC0809();
        DATA=DATA*4;          //數(shù)據(jù)的處理
        Display(DATA);   
       if(DATA<400)    //--->判斷是否需要報警
              {            
                  SPEAKER=0; //--->不報警
                  LED_BLUE=0;
             }
       else if (DATA>=800)     
          {              
                SPEAKER=1;//--->嚴(yán)重報警
                LED_RED=0;
                        LED_BLUE=1;
                delay_1ms(2);
                SPEAKER=0;
                LED_RED=1;
                delay_1ms(2);
                SPEAKER=1;
                LED_RED=0;
           }
       else   
             {
                 SPEAKER=1;   //--->一般報警
                 LED_RED=1;
                         LED_BLUE=1;
                         delay_1ms(2);
                 SPEAKER=0;
                 delay_1ms(2);
                 SPEAKER=1;
            }
     }
}

相關(guān)帖子

回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2016-1-15 05:59 | 顯示全部樓層
樓主 你上傳的這3個程序有什么不不同?有沒有原理圖上傳一個?(可加200黑幣)
回復(fù)

使用道具 舉報

ID:119164 發(fā)表于 2016-5-7 22:05 來自觸屏版 | 顯示全部樓層
有興趣做產(chǎn)品 QQ903735643
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表