找回密码
 注册
关于网站域名变更的通知
查看: 852|回复: 6
打印 上一主题 下一主题

人体红外传感器无线防盗报警器程序

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2018-11-13 13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本帖最后由 Allevi 于 2018-11-14 10:23 编辑 9 u  ]3 i9 d, b$ y& F5 y
    % I2 V+ o3 _) Z6 }% [7 o
    用于人体传感器报警。无线防盗报警器程序$ \4 L! ]- |9 Q2 z
    单片机源程序如下:/ q/ B, C/ Y! Z# |4 l
    #include <reg52.h>
    7 b# x) G( F/ c0 h
    " P: J0 k' h" ~6 M9 R#define uc unsigned char# O; W7 w$ M) R
    #define ui unsigned int, ]9 J% |& o  f
    2 j) Z3 I6 u2 t+ Z) C. z5 S9 ~
    sbit SOS        =        P1^0;//布防
    . z' R& E2 s# k6 A. D6 i4 Jsbit bufang        =        P1^1;//报警按键5 x4 v$ g+ T2 y6 D( t8 ]
    sbit chefang=        P1^2;//撤防
    ( y) H6 q7 e. h; r6 _sbit baojing=        P1^3;//蜂鸣器
    2 e: X* C+ B/ H& M- i; h* B% Z2 x" `
    bit bdata flag,flag1;//flag布防标志,flag1布防倒计时标志
    8 L7 _. Y/ R/ W% M- u& q# F7 duc t,t1;                        //定时器专用变量
    8 T4 L) q! V& F5 W6 z1 p9 B1 v" I3 L0 C% V9 R" w  T1 G
    void delay(ui x)        //延时函数1ms  ' }, M9 h" [6 e% ^+ e) ~4 R9 N
    {9 P5 H! j/ t0 _" Z- I
            ui i,j;/ k% g- }0 K: s3 ?$ ?& F
            for(i=0;i<x;i++)
    ; H+ ~4 n+ c0 }0 H6 t6 U+ d/ |8 x: q        for(j=0;j<110;j++);
    , \# G& n* F% j+ T; w}( @  o. ~* j6 s# y  p0 m/ a

    * C9 _3 I8 u/ _- ?void kongzhi()                //控制函数
    2 O0 {" t. n/ d" N2 n9 ]3 V) n, S9 Q! f{
    ' Q& T& q* {8 j; p; K0 N$ s        if((bufang==1)&&(flag==0))        //在报警等待时按下布防键 ; d; E9 I2 T3 _& m9 E7 h
            {
    " A% H0 |7 m# y0 e! Z- C                delay(10);$ m9 t5 x' q2 I4 ^% D; ~* q
                    if((bufang==1)&&(flag==0))
    : X0 N( ?5 x$ K( ?! c0 Y3 d0 y                {( c9 R+ U  W$ |7 G% t
                            t=0;
    0 M& m& ?9 U0 \/ H3 q                        t1=0;                        //清零计时器
    ) z6 g! Z) i  B0 F# K: J0 b                        TR0=1;                        //打开计时器
    5 @, c: O( y' Y2 p& A7 X% y$ j                        P2=0x85;                //显示字母b
    * U8 i/ }- U' R6 B0 o                }
    . Y& O% \" F$ e5 i0 [% b        }2 k8 y! [3 B5 A
            if((flag==1)&&(SOS==1))        //报警按键按下/ {% b  {$ G' T6 O# O+ b
            {
      ?# W& r: ?, G9 s- f# T6 H1 C, I                flag1=1;                        //蜂鸣器鸣响 . `6 T4 h7 h; H* r  y& R+ a
                    P2=0xbf;                        //显示"-"
    $ t8 G! U* Y( V3 p, e+ X6 k. [                TR0=1;                                //开启定时器
    * j: P1 f8 a+ @, C, i. i        }3 O8 U, [. `4 Q! l
            if(chefang==1)                        //撤防键按下 # K. G/ O2 l, h0 s( \! M) ?' {, w
            {
    ' Q: q6 B1 U7 @$ A1 e5 v                delay(10);8 t) T' j5 `# E: l5 K" y
                    if(chefang==1)4 {" s) \8 g* u2 ]
                    {# j+ ^9 G: j& T1 W7 y
                            {$ T+ T( g8 F, W/ g4 O- `) I2 G: L
                                    flag1=0;. n3 ^/ ^) ?& G2 G3 r; `
                                    baojing=1;        //关闭蜂鸣器 6 B3 N) e/ w/ ?. J( g
                                    flag=0;                //停止计时器计时
      j& m  ]) ~2 p3 p" `6 E                                TR0=0;                //关闭计时器 7 M+ ^. p4 [0 c& C" [. {+ c/ s4 s
                                    P2=0xa7;        //显示字母c
    7 f/ F- c0 N% q4 t4 U3 \9 M1 ]* c5 S                                delay(1000);//延时1s ' r5 Z, M! @8 K5 R7 R7 r$ o
                                    P2=0xff;        //关闭显示,进入等待布防状态  
    # n! `9 Q( g4 h3 r( d/ W1 _                        }
    , j' G7 J0 C! F% Y6 q: X                }. F. g1 @2 l$ B+ |. w) q
            }( k2 H2 [! X. E, d" o/ X6 y7 i
    }
    % x# w8 {5 S8 K
    / }! q! f: |1 Evoid init()        //初始化函数 5 R5 l$ h" G! @  s3 \% |2 Z) ?! U
    {. J' C8 f9 W0 |; [9 j5 G
            TH0=0x4b;& }2 @: [% Z  T. s, F
            TL0=0xff;+ Q% B* s( o7 s
            TMOD=0x01;1 B. f" h) b  y1 X% R
            EA=1;
    $ b- V0 s1 ?# u: g" G        ET0=1;
    3 |( c# q7 ~* ?% k8 z7 X+ m        TR0=0;                //定时器初始化
    2 t/ b" X0 ?9 f2 i6 F4 p8 ~) Q1 h        bufang=0;
    $ _) p- k2 s) G- U        SOS=0;
    " l0 K. B- R( N4 v6 i        chefang=0;        //按键初始化
    7 \# V, B$ q8 f' K: f}
    ( c5 o' y5 K& a, p6 O7 }* _# D$ s: [( T. h8 V3 k
    void main()        //主函数
    : O' A2 _& h% n! d{
    4 @( R( i4 I) z! G1 y5 S        init();        //调用初始化 + b: ]: _/ m! w; N
            while(1)//循环
    0 X  u8 T2 S& q6 O" F9 l        {
    4 l/ n( u$ s1 S2 {                kongzhi();//控制函数 4 X( W4 h* f+ {; {
            }) m" w2 g* A5 U0 F( o
    }( Q6 t1 o  F- o) G" i) R* B% z/ G- L
    ( E, \# f5 g! p  g% R  N$ w  r* ]
    void time() interrupt 1//定时器函数 ! ?7 D, H# q# L) A# ?' Y
    {/ ~4 T( {7 k; V, L) I+ m. A
            TH0=0x4b;/ j  x" |- i( H
            TL0=0xff;                //重新赋初值
    ; b$ W/ y% h, ~6 x2 b$ J& S/ t        t++;6 T3 r3 h  r+ f
            if(t==20)
    ; @6 _* E$ A% i+ C% A6 g+ D. n# ~- }        {# ^" a- Y. J7 z4 N% k  j) p
                    t=0;
    # s* @2 z: v% ~8 y6 n8 ~3 P* A                t1++;2 l" L9 v6 k8 A" ]9 G% i. S( Y
                    if(t1==30)//计时到30s时开启布防数码管停止显示  关闭定时器   
    % r. \; E; m& d/ V1 P5 f                {8 v: b( w! B# O: H+ l. l# S" X
                            t1=0;0 W( b1 p9 m2 X0 ~% U
    ……………………
    9 P2 K0 l: C% W6 h* @, |  \3 {5 c! P% Y1 |) \# F) G1 A/ t7 `
    …………限于本文篇幅 余下代码请从论坛下载附件…………: g9 t, h3 N# N) x" L
    游客,如果您要查看本帖隐藏内容请回复

    / c/ {/ t: D8 h. t! Y" s4 n6 ?

    该用户从未签到

    4#
    发表于 2019-7-5 11:50 | 只看该作者
    801573= 0801573= 0
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-11 07:20 , Processed in 0.156250 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表