久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1858|回復: 1
打印 上一主題 下一主題
收起左側

單片機煙霧傳感器程序的輸出數據不變化

[復制鏈接]
跳轉到指定樓層
樓主
ID:345583 發表于 2020-3-12 16:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用ADC0809模塊轉化MQ-2數據     然后反饋回來的數據無論輸入5V還是接地  數據都一樣    求求各位大神幫忙看下   謝謝

#include <reg52.h>  
#include <intrins.h>
#include <stdio.h>
void ConfigUART (unsigned int baud);
#define adc0809_data  P0  //單片機P0接模塊D0~D7引腳

sbit ST = P2^3; //單片機P2.3接模塊STR引腳, 啟動轉換信號
sbit EOC = P2^2; //單片機P2.2接模塊EOC, 轉換結束信號,高電平有效
sbit OE  = P2^1; //單片機P2.1接模塊OE,輸出允許信號,高電平有效
sbit CLK = P2^0; //單片機P2.0接CLK ,ADC0809時鐘,輸入50-800KHZ的頻率
                 //一般選用500K
     //將短接片去掉開啟位選功能,否則默認IN0為輸入引腳
sbit AA = P2^4;  //單片機P2.6接模塊A引腳
//unsigned char Disp[]="0123456789";         //使用字符串保存數字0~9所對應的ASCLL碼
unsigned char AD_DATA[2]; //保存IN0通道轉換后的數據

float a,b;

unsigned char i;

void ConfigUART (unsigned int baud)
{
  SCON = 0x50;
  //TMOD &= 0X0F;
  TMOD |= 0x20;
  TH1 = 256 - (11059200/12/32) / baud;
  TL1 = TH1;
  ET1 = 0;
  TR1 = 1;
  ES = 1;
  //TR1 = 1;
}
  void time0()
{  
   TMOD|=0x01;
   TH0=216; //利用T0中斷產生CLK信號
    TL0=216;  
    TR0=1; //啟動定時器T0
    ET0=1;
    //ST=0;  
    //OE=0;
  // EA = 1;

}
void UART_T (unsigned char UART_data)//定義串口發送數據變量
{  
    SBUF = UART_data; //將接收的數據發送回去  
    while(TI == 0);  //檢查發送中斷標志位  
    TI = 0;       //令發送中斷標志位為0(軟件清零)
}
void UART_TC (unsigned char *str)
{  
    while(*str != '\0')  //檢查是否發送完畢
    {
            UART_T(*str);   //發送
            *str++;         //指針指向下一個字符   
    }
    *str = 0;               //發送完畢后指針歸零
}
char putchar(char c)
{
    UART_T(c);
    return c;
}
/***********************************
函數名:  delayms()
功能:    延時 ms 毫秒
***********************************/
void delayms(unsigned int ms)
{
unsigned char j;
i=100;
for(;ms;ms--)
{
  while(--i)
  {
   j=10;
   while(--j);
  }
}
}

/***********************************
函數名:  AD()
功能:    啟動AD轉換將值儲存于 AD_DATA[0]
***********************************/
void AD(void )
{
   ST=0;
   AA = 0;  //設置為IN0輸入
   ST=1; //啟動AD轉換
delayms(10);
   ST=0;  
   while(0==EOC);//等待轉換結束
   OE=1;  
   AD_DATA[0]=adc0809_data; //讀取AD數據,數據范圍為0-255
   OE=0;
   delayms(20);
   ST=0;
   AA = 1; //設置為IN1輸入
   ST=1; //啟動AD轉換
delayms(10);
   ST=0;  
   while(0==EOC);//等待轉換結束
   OE=1;  
   AD_DATA[1]=adc0809_data; //讀取AD數據,數據范圍為0-255
   OE=0;
   delayms(20);
/* if (adc0809_data>=251)
  {
     adc0809_data=250;
  }*/
}
/***********************************
函數名:  t0()
功能:    產生ADC0809CLK所需要的時鐘
***********************************/
/*void t0(void) interrupt 1 using 0
{  

   CLK=~CLK;
}*/
/***********************************
函數名:  Conut()
功能:    將AD_DATA[0]的各位拆分以方便
***********************************/
void Conut(void)
{
/*a[0]=AD_DATA[0]/100;
  a[1]=AD_DATA[0]/10%10;
  a[2]=AD_DATA[0]%10;
b[0]=AD_DATA[1]/100;
b[1]=AD_DATA[1]/10%10;
b[2]=AD_DATA[1]%10;*/

  a = AD_DATA[0]/250;
  b = AD_DATA[1]/250;
  
}


void main()
{

   ST=0;  
    OE=0;
    ConfigUART(9600);
   time0();
   // ConfigUART();
   //EA=1; //開總中斷
   // TMOD=0x02; //設定定時器 T0工作方式
/*   TH0=216; //利用T0中斷產生CLK信號
    TL0=216;  
    TR0=1; //啟動定時器T0
    ET0=1;
    //ST=0;  
    //OE=0;
   EA = 1;*/
while(1)
   {
      AD();
        Conut();   //計算
   
   printf ("shfh");
   printf ("%.2f",a);
   printf ("%.2f",b);
   
   delayms(10);  //100MS  
   }  
}

/***********************************
函數名:  t0()
功能:    產生ADC0809CLK所需要的時鐘
***********************************/
void t0(void) interrupt 1 using 0
{  
  TH0=216; //利用T0中斷產生CLK信號
    TL0=216;  
   CLK=~CLK;
}
void InterrupUART ()  interrupt 4
{
  if (RI)
  {
     RI = 0;
  SBUF = SBUF ;
  }
  if (TI)
   {
      TI =0;
   
   }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:711971 發表于 2020-3-20 01:39 | 只看該作者
你得上原理圖
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人综合一区二区三区 | 麻豆av网站 | 亚洲一区视频在线 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 欧美日本韩国一区二区三区 | 久久机热 | 在线观看中文字幕亚洲 | 久久综合一区 | 91精品国产92| 精品久久免费 | 中文字幕精品一区二区三区精品 | 成人性视频免费网站 | 一本一道久久a久久精品蜜桃 | 久久91| 国产aⅴ精品 | 日韩另类| 黑人一级黄色大片 | 精品欧美一区二区精品久久久 | 国产小视频在线观看 | 国产伦精品一区二区三区精品视频 | 国产综合久久久久久鬼色 | 成人网av| 欧美在线视频二区 | 国产一级一级毛片 | 久久精品高清视频 | 国产免费麻豆视频 | 欧美成人免费在线 | 一区二区三区免费 | 亚洲综合色婷婷 | 色五月激情五月 | 偷派自拍 | 亚洲国产精品久久久久婷婷老年 | 精品成人av | 91精品国产91久久综合桃花 | 国产精品18久久久久久久 | 一区二区三区在线免费观看 | 日韩中文字幕一区 | 91久久夜色 | 国产极品粉嫩美女呻吟在线看人 | 在线亚洲免费 | 国产精品视频不卡 |