找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

求教大神 C51單片機(jī) 報(bào)警器響10s 開啟滅火裝置

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:459782 發(fā)表于 2019-1-7 14:04 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
C51單片機(jī)代碼##這是主要的代碼 需要添加一個(gè) 報(bào)警器響了10s 開啟另一個(gè)裝置的代碼  求教
#include"LCD.H"
#include"AD0832.H"
#include"DAC0832.H"
#include"DS18B20.H"
sbit qx=P1^3;  //定義取消報(bào)警按鍵
sbit sp=P1^5;  //定義報(bào)警
sbit d1=P1^6;  //定義指示燈
sbit d2=P1^7;
unsigned char n=0;
unsigned char Serial[64]={0};
unsigned char dd[]={0};    //定義濃度
unsigned char CTemp[]={0}; //定義溫度
unsigned char code tab[]="0123456789. ";
unsigned char code T[8]={0x18,0x18,0x0F,0x1F,0x18,0x18,0x1F,0x0F};
void delayms(long dly)  //延時(shí)程序
{
int i;
char j;
for(i=0;i<dly;i++)
for(j=0;j<120;j++);
}
void speak()    //報(bào)警子程序
{
   sp=0;
   delayms(1000);
   sp=1;
}
int main (void)
{
  unsigned char i=255,v=0,temp=0;
IT0=1;        //中斷定義
EX0=1;
EA=1;
    delayms(600);
LCD_Init();
WriteStringToLcd(0,0,"Nd:");  //調(diào)用顯示
WriteStringToLcd(7,0,"ppm");
WriteStringToLcd(0,1,"Wd:");
Write_self(T);
Write_selfString(8,1,0);
delayms(200);
while(1)
{

v=ReadAdc0832(0);    //濃度計(jì)算顯示
dd[0]=tab[v/51];   
dd[1]=tab[10];
dd[2]=tab[10*v/51%10];
dd[3]=tab[100*v/510%10];
WriteStringToLcd(3,0,dd);
if(v/51>=1.0)    //濃度超額報(bào)警
  {
   d1=1;d2=0;speak();delayms(50);
  }
else
{
      d1=1;d2=1;
}  
temp=ReadTempreture(Serial,9); //溫度計(jì)算顯示
if(temp>100)
{
  CTemp[0]=tab[temp/100];
  CTemp[1]=tab[temp%100/10];
  CTemp[2]=tab[temp%100%10];
}
else
{
  CTemp[0]=tab[temp/10];
  CTemp[1]=tab[temp%10];
  CTemp[2]=tab[11];
  if(temp>32)      //溫度超額報(bào)警
  {
   d1=0;d2=1;speak();delayms(50);
  }
  else
  {
   d1=1;d2=1;
  }
}
delayms(200);
WriteStringToLcd(5,1,CTemp);
  }
}
void int0() interrupt 0 using 1  //中斷程序
{
  sp=1;
  d1=1;
  d2=1;
  delayms(1000000000);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:258164 發(fā)表于 2019-1-7 17:42 | 只看該作者
定時(shí)器中斷就可以實(shí)現(xiàn),報(bào)警器開始響就開始定時(shí),10s時(shí)間到,打開另一個(gè)裝置的開關(guān)。
至于定時(shí)器的時(shí)間,你可以設(shè)置100ms或者1s都可以,然后設(shè)置一個(gè)計(jì)時(shí)變量累加到10s就行了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:274129 發(fā)表于 2019-1-12 14:18 | 只看該作者
利用單片機(jī)的定時(shí)器實(shí)現(xiàn),在定時(shí)中斷函數(shù)里面進(jìn)行
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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