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

標題: 51hei單片機,MQ-5天然氣傳感器,1602顯示 [打印本頁]

作者: lspcdzx2012    時間: 2012-7-24 22:09
標題: 51hei單片機,MQ-5天然氣傳感器,1602顯示

用51hei板,買了個MQ-5天然氣傳感器,做了個燃氣漏泄報警器兼讀數。

用打火機檢驗,靈敏,滿足要求


#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    時間: 2012-7-24 23:01

上電3小時,MQ-5有點燙,靈敏度沒有降低


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

牛人啊  期待更多 精彩分享


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

用hei51板上的ADC0804是為了量化漏泄濃度

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

而AOUT腳,就是量化濃度。

另外這個程序有漏洞,我已經作了完善處理。

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

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




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品二区 | 成人一区二区三区 | 日本成人免费网站 | 全部免费毛片在线播放网站 | 成人福利网站 | 亚洲第一免费播放区 | 国产福利在线免费观看 | 99爱免费 | 久久久久久久国产 | 国产精品色综合 | 国产精品日韩欧美一区二区三区 | 亚洲一区二区久久久 | 日操操夜操操 | 成人国产精品久久 | 天天操夜夜操 | 日韩专区中文字幕 | 青青草社区 | 久久精品av | 中文字幕精品一区二区三区在线 | 国产欧美一区二区三区在线看 | 午夜噜噜噜 | 狠狠亚洲 | 99精品久久久久 | 亚洲色图综合 | 国产精品久久久久一区二区三区 | 欧美国产在线一区 | 人人看人人草 | 亚洲男女视频在线观看 | 成人在线观看亚洲 | aa级毛片毛片免费观看久 | 精品视频免费 | 国产日韩一区二区三区 | 九九国产在线观看 | 日韩精品一区二区三区在线观看 | 亚洲36d大奶网 | 国产精品永久免费视频 | 亚洲欧美综合精品另类天天更新 | 一级片子 | 国产成人精品免高潮在线观看 | 精品国产乱码久久久久久影片 | 亚洲专区在线 |