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

QQ登錄

只需一步,快速開(kāi)始

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

誰(shuí)有熱釋電紅外傳感器的具體代碼~~急求

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:264442 發(fā)表于 2017-12-27 15:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
3黑幣

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

使用道具 舉報(bào)

沙發(fā)
ID:279945 發(fā)表于 2018-4-17 17:01 | 只看該作者
它感應(yīng)到人體后會(huì)輸出3v直流電平
回復(fù)

使用道具 舉報(bào)

板凳
ID:397287 發(fā)表于 2018-9-29 09:25 | 只看該作者
#include <reg52.h>           //調(diào)用單片機(jī)頭文件
#define uchar unsigned char  //無(wú)符號(hào)字符型 宏定義   變量范圍0~255
#define uint  unsigned int   //無(wú)符號(hào)整型 宏定義    變量范圍0~65535
#define key_io P1
uchar key_can;

//   紅外熱釋電平時(shí)為0  有輸出為1

sbit beep = P2^3;      //蜂鳴器定義
sbit red  = P2^2;      //紅色發(fā)光二極管定義
sbit green = P2^1;     //綠色發(fā)光二極管定義
sbit yellow = P2^0;    //黃色發(fā)光二極管定義
sbit hw    = P1^3;     //紅外熱釋傳感器定義
bit flag_300ms = 0;

/****************獨(dú)立按鍵處理函數(shù)************************/     
void key()
{
    static uchar key_new = 0,key_old = 0,key_value = 0;
    if(key_new == 0)         //按鍵松開(kāi)
    {
        if((key_io & 0x07) == 0x07)
            key_value ++;
        else
            key_value = 0;
        if(key_value >= 5)   //按鍵松開(kāi)松手檢測(cè)
        {
            key_value = 0;
            key_new = 1;    //按鍵松開(kāi)后進(jìn)入等待按鍵狀態(tài)
        }
    }
    else
    {
        if((key_io & 0x07) != 0x07)  //按鍵按下
            key_value ++;
        else
            key_value =0;
        if(key_value >= 5)  //按鍵按下消抖
        {
            key_value = 0;
            key_new = 0;       //按鍵松開(kāi)后進(jìn)入等待松開(kāi)按鍵狀態(tài)
        }
    }
    key_can = 20;
    if((key_new == 0) && (key_old == 1))
    {
        switch(key_io & 0x07)
        {
            case 0x06: key_can = 1; break;    //得到按鍵值
            case 0x05: key_can = 2; break;    //得到按鍵值
            case 0x03: key_can = 3; break;    //得到按鍵值
        }
    }            
    key_old = key_new;   
}

/*************定時(shí)器0初始化程序***************/
void time_init()      
{
    EA   = 1;         //開(kāi)總中斷
    TMOD = 0X01;      //定時(shí)器0工作方式1
    ET0  = 1;         //開(kāi)定時(shí)器0中斷
    TR0  = 1;         //允許定時(shí)器0定時(shí)
}

uchar flag_alarm ;     //報(bào)警標(biāo)志位
uchar flag_bufang ;    //布防標(biāo)志位
uchar flag_bufang_en ; //布防標(biāo)志位使能
uint  flag_value;      //用做定時(shí)器的變量

/******************紅外報(bào)警處理**********************/
void hongwai_dis()
{
    if(flag_alarm == 1)    //報(bào)警
    {
        red = ~red;        //紅燈報(bào)警
        beep = ~beep;      //蜂鳴器報(bào)警
    }   
    if(flag_bufang_en == 1) //準(zhǔn)備開(kāi)始布防
    {
        green = ~green;    //綠燈閃
            
    }
    if(flag_bufang == 1)   //確認(rèn)布防
    {
        green = 0;         //如果延時(shí)布防成功 綠燈長(zhǎng)亮
        if(hw == 1)        //紅外有輸出
        {
            flag_alarm = 1;
        }
    }

}

/******************對(duì)應(yīng)不同按鍵處理**********************/
void key_with()
{
    if(key_can == 1)     //按鍵緊急報(bào)警
    {
        flag_alarm = 1;  //報(bào)警標(biāo)志位 ;      
    }
    if(key_can == 2)     //布防按鍵
    {
        flag_bufang_en = 1;     
    }
    if(key_can == 3)     //取消報(bào)警  把變量清零
    {
        flag_alarm = 0;   
        flag_bufang = 0;
        flag_bufang_en = 0;
        flag_value = 0;
        P2 = 0xff;      
    }           
}





/******************主程序**********************/      
void main()
{
    time_init();
    while(1)
    {
        key();        
        yellow = ~hw;    //紅外熱釋電指示燈 有輸出就亮黃燈
        if(key_can < 10)
        {
            key_with();  //按鍵設(shè)置函數(shù)
        }
        if(flag_300ms == 1)
        {
            flag_300ms = 0;
            hongwai_dis();     //紅外報(bào)警函數(shù)
        }   
    }
}

/*************定時(shí)器0中斷服務(wù)程序***************/
void time0_int() interrupt 1
{   
    static uint value;
    TH0 = 0x3c;
    TL0 = 0xb0;     // 50ms   
    value ++;
    if(value % 6 == 0)
    {
        flag_300ms = 1;
    }
    if(flag_bufang_en == 1)
    {
        flag_value ++;
        if(flag_value >= 600)  //30秒
        {
            flag_bufang = 1;
            flag_bufang_en = 0;
            flag_value = 0;
        }
    }
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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