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

標題: 偶然看到馬家有熱釋電模塊,就做了一個單片機報警器 含PCB源程序 [打印本頁]

作者: 1007947409    時間: 2020-4-2 13:46
標題: 偶然看到馬家有熱釋電模塊,就做了一個單片機報警器 含PCB源程序
偶然看到TB上有熱釋電模塊,就想自己做一個報警器,或者走廊燈,可是純模塊的話輸出時間啊,玩不出花樣,不能按照自己的想法做出各種改變,那就用單片機來解決吧。壓縮包里有原理圖,bom,PCB還有keil文件,程序里具體說明都有。

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


按鍵    6*6*高度自選   
直插按鍵    PCB少打孔了   
電容    22uf    5*11規(guī)格
    10uf    5*11規(guī)格
三極管    9012    9013
單片機    15W201s   
DC接口    5.5*2.1規(guī)格   
電阻    10K   
穩(wěn)壓    5V   
蜂鳴器    12V   
模塊    熱釋電    微波感應(yīng)

單片機源程序如下:
  1. #include<stc15.h>         //stc15單片機的頭文件
  2. #include<intrins.h>
  3. unsigned char dengdai;        //定義函數(shù)集

  4. sbit hongwai=P3^1;                 //位定義
  5. sbit fengming=P1^1;                 //位定義



  6. void csh(void)                   //中斷初始化函數(shù)
  7. {
  8.    P0M0 = 0x00;
  9.     P0M1 = 0x00;
  10.     P1M0 = 0x00;
  11.     P1M1 = 0x00;
  12.     P2M0 = 0x00;
  13.     P2M1 = 0x00;
  14.     P3M0 = 0x00;
  15.     P3M1 = 0x00;
  16.     P4M0 = 0x00;
  17.     P4M1 = 0x00;
  18.     P5M0 = 0x00;
  19.     P5M1 = 0x00;
  20.     P6M0 = 0x00;
  21.     P6M1 = 0x00;
  22.     P7M0 = 0x00;
  23.     P7M1 = 0x00;
  24. //       
  25.     IT1 = 1;                    //設(shè)置INT1的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
  26.     EX1 = 1;
  27. //                   //設(shè)置INT0的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
  28.     IT0=1;       
  29.         EX0=1;
  30.        
  31.         EA=1;
  32. }
  33. void delay(unsigned int amt)                //@12.000MHz 1000ms          一秒鐘的延時
  34. {         unsigned int w;         
  35.         unsigned char i, j, k;
  36.            for(w=amt;w>0;w--)
  37.         {
  38.            _nop_();
  39.               _nop_();
  40.            i = 46;
  41.            j = 153;
  42.            k = 245;
  43.            do
  44.            {
  45.                    do
  46.                       {
  47.                            while (--k);
  48.                    } while (--j);
  49.             }        while (--i);       
  50.         }
  51. }
  52. void main()
  53. {   
  54. csh();                 //初始化外中斷
  55.     dengdai=0; //微波的話就保留,紅外就把這句去掉
  56.         delay(60);        //微波的話就保留,紅外就把這句去掉          微波啟動會有一分鐘的三四次校準輸出,那就屏蔽前一分鐘的微波輸出
  57.   dengdai=1;          //讓外中斷可以運行
  58. hongwai=1;                        //使引腳處于輸入狀態(tài)
  59. fengming=1;            //使引腳處于輸出關(guān)閉狀態(tài)
  60.         while(1)
  61.         {
  62.            if(hongwai==0&dengdai==1) //當模塊發(fā)來一個低電平把電路下拉成低電平,同時處于非等待可以輸出狀態(tài)
  63.            {
  64.                delay(1); //防止報警誤觸發(fā)
  65.                    if(hongwai==0&dengdai==1)        //確認被觸發(fā)
  66.                    {
  67.                          fengming=0;         //蜂鳴器輸出
  68.                                  delay(10);//報警持續(xù)時間
  69.                                  fengming=1;   //蜂鳴器輸出
  70.                    }
  71.            }
  72.         }
  73.          
  74. }
  75. void exint0() interrupt 0   //外中斷函數(shù)
  76. {
  77.             dengdai=0;          //馬上讓模塊觸發(fā)不生效
  78.          fengming=1;  //馬上關(guān)閉蜂鳴器
  79.          delay(45);          //等待45秒
  80.          dengdai=1;          //恢復(fù)模塊生效
  81. }
  82. void exint1() interrupt 2   
  83. {
  84.                     ;//這個外中斷功能你自己想干啥干啥,給你預(yù)留好了
  85.    
  86. }
復(fù)制代碼

所有資料51hei提供下載:
紅外報警.zip (2.56 MB, 下載次數(shù): 16)









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