找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5787|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

51hei開發(fā)板+數(shù)碼管 燃?xì)鈭?bào)警

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:42637 發(fā)表于 2012-7-25 08:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

MQ-5有4腳,VCC,GND,AOUT,DOUT

VCC,GND分別接51hei單片機(jī)開發(fā)板的+5V與……DOUT接外部中斷1(P3.3),中斷則報(bào)警……AOUT接ADC0804的VIN+,也就是hei板J2的3腳,J2的1腳接外部中斷0(P3.2),在ADC0804轉(zhuǎn)換中用,轉(zhuǎn)換與顯示……注意電源供電,否則工作不正常……


#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
sbit adc_cs=P2^0;
sbit adc_rd=P3^7;
sbit adc_wr=P3^6; 
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;
void delay(uint temp)
{
 while(temp--);
}
void init(void)
{
 P24=0;
 P27=1;
 P0=0xff;
 P27=0;
 P26=1;
 P0=0x00;
 P26=0;
 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==40)
 {
  temp=0;
  adc_start=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;
 uint i;
 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;
  }
  for(i=0;i<100;i++)/////////
  {
   P27=1;
   P0=0xfe;      
   P27=0;
   
   P26=1;
   P0=tab[bei];
   delay(50);
   P0=0x00;      
   P26=0;
     
      P27=1;
   P0=0xfd;      
   P27=0;
   
   P26=1;
   P0=tab[shi];
   delay(50);
   P0=0x00;      
   P26=0;
   
   P27=1;
   P0=0xfb;      
   P27=0;
   
   P26=1;
   P0=tab[ge];
   delay(50);
   P0=0x00;      
   P26=0; 
  } 
 } 
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:37685 發(fā)表于 2012-7-26 00:20 | 只看該作者
謝謝樓主 我正為這個(gè)發(fā)愁了 非常感謝你提供的這個(gè)程序
回復(fù)

使用道具 舉報(bào)

板凳
ID:42637 發(fā)表于 2012-7-26 13:56 | 只看該作者

上面的程序還有點(diǎn)小問題,蜂鳴器工作時(shí),數(shù)碼管要閃,要暗下來,我用二個(gè)中斷,二個(gè)定時(shí)器來處理,修正后相當(dāng)完善。

回復(fù)

使用道具 舉報(bào)

地板
ID:188814 發(fā)表于 2017-4-12 14:30 | 只看該作者
求修正后的程序。。發(fā)QQ郵箱1250271009@qq.com
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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