最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 最新DIY >

指纹+红外遥控锁+红外钥匙 制作教程(3)

时间:2017-07-22 15:36来源:数码之家 作者:liuzxi 点击:
buzz(4);buzz(1); buzz(4); buzz(1);buzz(4); buzz(1); } else { buzz(1); } } voidIRopenLock() //红外密码验证 { if(B_IR_Press) //有IR键按下 { LedR=1;Delay(10);LedR=0;buzz(1); B_IR_Press= 0; if(B_IrUserEr



                   buzz(4);buzz(1); buzz(4); buzz(1);buzz(4); buzz(1);


         }


         else


         {


                   buzz(1);


         }                          





}


voidIRopenLock()   //红外密码验证


{


         if(B_IR_Press)           //有IR键按下


         {


                   LedR=1;Delay(10);LedR=0;buzz(1);


                   B_IR_Press= 0;        


                   if(B_IrUserErr==0)


                   {


                            if(IR_code==ClocsKey)      //如果是锁门按键 锁门


                            {


                                     set3=1;


                            }
                            else
                            {

                                     buf[k++]=IR_code;

                            }
                   }

                   if(k==passLen)

                   {

                            for(k=0;k<passLen;k++)

                            {

                                     if(buf[k]!=passChar[password[k]])

                                               break;

                            }

                            if(k==passLen)

                            {

                                      set5=1;

                                     //  putbytes("OK ");

                             }
                            else
                            {  
                                     buzz(4);buzz(4);

                            }

                            k=0;  
                   }  
         }
}


////////////////////////////////////


/*蜂鸣器函数 */


////////////////////////////////////


void fengming(uint x,uint y)       //x时长,y音调
  
{        
  
         uinti;


         for(i=0;i<x;i++)


         {


                   buzzer=~buzzer;


                   Delayus(y);


         }


}

void buzz(uint No)

{
         uinti=0;

         uintshengdiao[]={478,0451,0426,0402,0372};       //中1DO 523Hz0956us  中2RE 578 0842    中3M 659 0759
  
                                         //高1DO 10460478         #DO# 1109 0451    高2RE 1175 0426 #2RE#1245 0402          高3M 1318 0372
  
         switch(No)
  
         {        

                   case1:     for(i=0;i<3;i++)

                                     {
  
                                               fengming(62,478);            

                                      }
  
                                     break;

                   case2:     for(i=0;i<3;i++)

                                     {
                                               fengming(70,426);

                                     }

                                     break;

                   case3: for(i=0;i<3;i++)                       //高5SO 15680319  

                                     {

                                               fengming(94,319);
                                     }
                                     break;

                   case4: for(i=0;i<3;i++)

                                     {

                                               fengming(31,956);//低音do 错误用    

                                               Delayus(1000);      


                                     }

                                     break;        

                   case123: for(i=0;i<5;i++)  
                                     {  
                                               fengming(30000/shengdiao,shengdiao);          
  
                                               Delayus(500);
  
                                     }
  
                                       break;  

                   case321:for(i=5;i>0;i--)
  
                                     {

                                               fengming(30000/shengdiao,shengdiao);          

                                               Delayus(500);
                                     }

         }        

         buzzer=0;           //关蜂鸣器,省电
}

void Timer0() interrupt 1 using 1 //调用定时器0,自动重装载模式

{

         IR_RX_HT6121();                //红外接收函数//125um

   t++;                              

         if(t>480000)               //一分钟休眠 脚位清零  灭灯   关供电模块

         {

                   t=0;power=1;LedR=0;LedG=0;open=0;close=0 ;    buzzer =0;

                   PCON|= 0x02;

         }

//      TL0= 0x00;                //设置定时初值

//      TH0= 0x28;               //设置定时初值

}

void int0(void) interrupt 0

{    

         PCON&= 0xEF;

         power=0;                   //供电模块上电

}

void int1(void) interrupt 2

{    

  PCON &= 0xEF;     //按钮2唤醒

  power=0;                      //指纹模块上电

}

/*        这个函数无效果

void soft_reset(void)

{

((void (code *) (void)) 0x0000) ();

}                           */,

***************************************/


由于版权问题,不公开指纹模块驱动,和调用函数,如果购买模块厂家会提供。



如果要降低造价,可以不使用指纹模块,只使用红外密码开锁。

下面是红外接收子程序,STC官网提供,稍做修改,即可使用

随便找个遥控器,先通过以下程序读取设备码各按键码,然后挑两个放入password数组,就可以用这个遥控器开锁了。 (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容