欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 51hei單片機(jī),MQ-5天然氣傳感器,1602顯示 [打印本頁]

作者: lspcdzx2012    時(shí)間: 2012-7-24 22:09
標(biāo)題: 51hei單片機(jī),MQ-5天然氣傳感器,1602顯示

用51hei板,買了個(gè)MQ-5天然氣傳感器,做了個(gè)燃?xì)饴┬箞?bào)警器兼讀數(shù)。

用打火機(jī)檢驗(yàn),靈敏,滿足要求


#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define lcd P0
sbit adc_cs=P2^0;
sbit adc_rd=P3^7;
sbit adc_wr=P3^6; 
sbit en=P3^4;
sbit rw=P2^7;
sbit rs=P3^5;
sbit busybit=P0^7;
sbit beep=P2^2;
sbit P26=P2^6;
sbit P27=P2^7;
sbit P24=P2^4;
bit beep_flag;
bit adc_flag;
bit adc_start;
uchar tab[]="0123456789";
//////
void lcd_init(void);
//////////
void delay(uint temp)
{
 while(temp--);
}
void init(void)
{
 P24=0;
 P27=1;
 P0=0xff;
 P27=0;
 P26=1;
 P0=0x00;
 P26=0;
 lcd_init();
 TMOD=0x01;
 TH0=0x3c;
 TL0=0xb0;
 ET0=1;
 TR0=1;
 IT1=0;
 EX1=1;
 IT0=1;
 EX0=1;
 EA=1;
}        
void  int0_srv() interrupt 0
{
 adc_flag=1;
}
void int1_srv() interrupt 2
{  
 beep_flag=1;  
}
void timer0_srv() interrupt 1
{
 uchar temp;
 TH0=0x3c;
 TL0=0xb0;
 temp++;
 if(temp==20)
 {
  temp=0;
  adc_start=1;
 } 
}
void testbusy(void)//read com
{
 busybit=1;
 en=0;
 rs=0;
 rw=1;
 delay(5);
 en=1;
 delay(5);
 while (busybit);
 en=0;
}
void wr_dat(uchar dat,busyflag)
{
 if(busyflag)
 testbusy();
 en=0;
 rs=1;
 rw=0;
 lcd=dat;
 delay(5);
 en=1;
 delay(5);
 en=0;
}
void wr_com(uchar com,busyflag)
{
 if(busyflag)
 testbusy();
 en=0;
 rs=0;
 rw=0;
 lcd=com;
 delay(5);
 en=1;
 delay(5);
 en=0;
}
void lcd_init(void)
{
 delay(1650);//time
 wr_com(0x38,0);
 delay(550);//time
 wr_com(0x38,0);
 delay(550);
 wr_com(0x38,0);
 wr_com(0x38,1);
 wr_com(0x08,1);
 wr_com(0x01,1);
 wr_com(0x06,1);
 wr_com(0x0c,1);
}
uchar adc_change(void)
{
 uchar value;
 adc_cs=1;
 adc_wr=1;
 delay(2);
 adc_cs=0;
 delay(2);
 adc_wr=0;
 delay(10);
 adc_wr=1;
 delay(2);
 adc_cs=1;
 while(!adc_flag);
 adc_flag=0;
 adc_rd=1;
 _nop_();
 adc_cs=0;
 delay(2);
 adc_rd=0;
 _nop_();
 value=P1;
 _nop_();
 adc_rd=1;
 delay(2);
 adc_cs=1;
 return value;
}
void main()
{
 uchar adc_value;
 uchar ge,shi,bei;
 init();
 while(1)
 {
  if(beep_flag)
  {
   beep_flag=0;
   beep=0;
   delay(10000);
   beep=1;
   delay(10000);
  }
  if(adc_start)
  {
   adc_start=0;
   adc_value=adc_change();
   bei=adc_value/100;
   adc_value=adc_value%100;
   shi=adc_value/10;
   ge=adc_value%10;
  }
  wr_com(0x80,1);
  wr_dat('M',1);
  delay(3);
  wr_dat('Q',1);
  delay(3);
  wr_dat('-',1);
  delay(3);
     wr_dat('5',1);
  delay(3);
  wr_dat(':',1);
  delay(3);
     wr_com(0xc0,1);
  wr_dat(tab[bei],1);
  delay(3);
  wr_dat(tab[shi],1);
  delay(3);
  wr_dat(tab[ge],1);
  delay(3);    
 } 
}

作者: lspcdzx2012    時(shí)間: 2012-7-24 23:01

上電3小時(shí),MQ-5有點(diǎn)燙,靈敏度沒有降低


作者: lspcdzx2012    時(shí)間: 2012-7-24 23:09
去掉USB接口線顯示暗淡,加上USB線顯示正常,供電要考慮
作者: admin    時(shí)間: 2012-7-25 04:38

牛人啊  期待更多 精彩分享


作者: liuyang    時(shí)間: 2012-7-26 15:21
我也有這個(gè)模塊,問下你這個(gè)程序是用51hei板載的ad檢測(cè)的嗎?可以不用ad直接用io口來檢測(cè)行嗎?
作者: lspcdzx2012    時(shí)間: 2012-7-26 20:51

用hei51板上的ADC0804是為了量化漏泄?jié)舛?/p>

MQ-5模塊有4個(gè)引腳,DOUT#就是你說的直接IO測(cè),我也用到了。

而AOUT腳,就是量化濃度。

另外這個(gè)程序有漏洞,我已經(jīng)作了完善處理。

[此貼子已經(jīng)被作者于2012-7-26 20:55:59編輯過]

作者: kinglucifun    時(shí)間: 2014-7-6 15:11
學(xué)習(xí)學(xué)習(xí)
作者: 過客的思念    時(shí)間: 2016-1-17 09:18
MQ-4可不可以用這個(gè)
作者: 不離不棄    時(shí)間: 2016-2-26 15:13
請(qǐng)問有沒有MQ5和單片機(jī)的連接電路圖啊  
作者: fshjie    時(shí)間: 2016-3-1 11:25
牛人啊,程序先收藏私,待我的單片機(jī)到貨了來驗(yàn)證.
作者: jinlin    時(shí)間: 2016-5-9 01:57
請(qǐng)問有沒有基于DM430-A ,MQ-5可燃?xì)怏w傳感器,lcd1602 顯示器的編程,求答,畢業(yè)論文用
作者: XMODS1234    時(shí)間: 2017-1-20 16:14
傳感器接到單片機(jī)I/O口?怎么掃描?
作者: 非黃騰達(dá)    時(shí)間: 2017-8-10 15:01
程序都沒有注釋,看著費(fèi)力不懂




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1