找回密码
 注册
关于网站域名变更的通知
查看: 834|回复: 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 ^9 y3 D; y# M* W# F
    " C" [7 c8 o& J6 B+ f. G用于人体传感器报警。无线防盗报警器程序( K' v3 s" Z- I' r6 ]; l
    单片机源程序如下:
    4 P% J3 w3 A$ B! C' P#include <reg52.h>0 |- U/ P0 o  f( L) v
    0 Z- ~7 j$ D% {9 d
    #define uc unsigned char
    5 E# g; ~1 ]6 d#define ui unsigned int% N6 o& {# |9 X7 u
    " ~# t; @6 I+ \- A5 t0 o  I
    sbit SOS        =        P1^0;//布防
    ( T2 C( i# r' q8 J" I/ |7 osbit bufang        =        P1^1;//报警按键
    / ^) ?. }$ L  Jsbit chefang=        P1^2;//撤防
    * Z" [6 Y2 T: p0 Q3 psbit baojing=        P1^3;//蜂鸣器0 d$ C2 A' M7 O1 N, o1 |
    . G: l: A( |4 s3 f: y+ a: }
    bit bdata flag,flag1;//flag布防标志,flag1布防倒计时标志 % W" u, w2 Y+ k- E- O
    uc t,t1;                        //定时器专用变量 . L1 X6 w) Z8 Y0 X
    " k- Z% h8 C9 S+ [4 i8 H) m
    void delay(ui x)        //延时函数1ms  4 r7 U# K+ r. u  j1 z1 P
    {7 o: w2 }9 e' f/ G/ u8 F7 Z
            ui i,j;
    & G9 {* ?* M0 ]: Y        for(i=0;i<x;i++); @6 J9 C6 ~, `3 r1 b9 @; c0 ^* U: O
            for(j=0;j<110;j++);. R9 c- \2 @' U- X4 V' u# p' z
    }$ d# A6 ?5 m* S* x4 u

    # ]+ ?4 p. s3 b3 m& H: G! uvoid kongzhi()                //控制函数
    % L7 B- u! f1 L- s4 O& B' U{) e5 y% p8 `1 y3 p7 j
            if((bufang==1)&&(flag==0))        //在报警等待时按下布防键 & E8 Y; z. \% F
            {) A4 A$ e& J- X$ p* ]! N  m1 s3 k
                    delay(10);
    6 N+ T% ?; S* `& P- t3 S  w                if((bufang==1)&&(flag==0))
    ( t7 Z0 X" Z; p: [  ~* Y  l                {' J% `) ~9 B# @0 E$ t' m9 k
                            t=0;
    ' \9 T  O7 D0 a" y3 `                        t1=0;                        //清零计时器 4 Z6 }' r5 ^# V
                            TR0=1;                        //打开计时器 / h( q+ }8 O- c7 \0 R& |/ i
                            P2=0x85;                //显示字母b
    " |, [/ D% f1 [6 w7 e/ a                }
    ; E; D( I+ p- B: a1 M        }: ]$ W3 G/ k5 }8 _
            if((flag==1)&&(SOS==1))        //报警按键按下
      h9 C- h8 r! M* p# B# W6 s        {
    5 [# E; k9 Q2 R9 W                flag1=1;                        //蜂鸣器鸣响
    8 u/ A3 p* t, f                P2=0xbf;                        //显示"-"
    & A1 Y8 _1 h5 E# T& G- R1 M7 L                TR0=1;                                //开启定时器 # v7 X: K' U% O7 s* Q+ \% k
            }
    , W% }; X6 W9 o4 X        if(chefang==1)                        //撤防键按下
    4 p0 ]/ u6 y& p" W/ Z& Q4 l        {; P" N1 `) l4 n9 p6 @; `" a
                    delay(10);
    , X. ^& s3 C/ E; w: q                if(chefang==1)
    , R6 T% ]3 b' h6 m2 g6 g4 K4 O% N                {
    . l% E# p9 u* S- h/ g1 B5 V                        {
    7 e- p: f2 D2 d% F                                flag1=0;
    % ~1 ?9 M, Y7 P4 J4 F! C* r# G                                baojing=1;        //关闭蜂鸣器
    . ^  K, \. s3 ~0 ]+ V                                flag=0;                //停止计时器计时& V# q# o& w$ f6 c: R7 E# e% f
                                    TR0=0;                //关闭计时器
    ( d* W# A& o, \& C                                P2=0xa7;        //显示字母c 3 ~2 C$ ^+ N/ z, A
                                    delay(1000);//延时1s 2 B: [& D, h3 V, m
                                    P2=0xff;        //关闭显示,进入等待布防状态  
    4 S. ^; O% }* l- z1 U+ y/ `                        }
    . b: t3 [. H4 k5 Q" z                }, U% W% r7 l7 t% T! c4 B
            }
      k% `: k' [& Q}
    9 a. P9 h' ^) L
    $ z- r8 k6 @' \/ o! ?. Yvoid init()        //初始化函数
    9 r( w) B3 k( ^{
    9 h( o. P5 y0 C* B$ r        TH0=0x4b;
    ( w6 H' `2 [8 Z: O5 R% }& O8 r        TL0=0xff;; L# n6 P( X. h4 p
            TMOD=0x01;
    $ c3 \' V/ J8 m6 `8 d, ?. F        EA=1;
    5 h( `& c$ W  h) l& j  {! m, T1 J        ET0=1;
    : e+ `% H' [( z/ R* ]  }. s# P        TR0=0;                //定时器初始化 % q9 K9 Z6 h" \8 e( q* J9 ~
            bufang=0;1 g- s* f7 x; v6 M. A
            SOS=0;
      b4 M9 k; ~6 k6 R# Q9 r& [        chefang=0;        //按键初始化 " p: _5 U1 r: }$ m# p( p/ J% M
    }2 d5 D' m6 \* r$ k) W
    6 }/ z. A1 X0 Z# `' M/ l. Q
    void main()        //主函数0 R6 L; i* x. z; W! P7 x5 h0 ]
    {
    9 ]  c: N- z. n& t1 M- ?        init();        //调用初始化 ; _9 \7 S, @1 _7 k/ F8 E
            while(1)//循环
      e  Z$ ^" ~2 R& q4 B3 V        {
    1 h$ t; ^. w+ J4 i3 |* Q* `                kongzhi();//控制函数
    - ~' X/ j' }0 c& k% d        }
    * Z6 p+ h4 j) ?  z- W# x7 x& u}
    + z8 a) m$ d4 b* M; m  u: ]# Z* O  w; N; ]  y* F% Z! o- B
    void time() interrupt 1//定时器函数
    ! p0 _2 L! U  c( h4 ~{
    ; J7 d. i5 `+ z; D8 q  |        TH0=0x4b;
    , d' V6 @# S4 }, d( j        TL0=0xff;                //重新赋初值 - a) I, d$ J" f4 }
            t++;
    $ E$ ^+ M- t* ?4 N# b, L        if(t==20)$ i6 I# p' w9 Z$ n7 f* \8 z
            {$ d+ G- M: w  c/ S
                    t=0;
    : D& p) {  Z& c3 ?0 k* ~# J                t1++;9 ^6 K' |6 G+ X$ r4 g$ R8 h3 W
                    if(t1==30)//计时到30s时开启布防数码管停止显示  关闭定时器   ' n1 d8 p3 T; d: u7 R9 M  O0 e5 R
                    {- T, n* H' V) g7 y3 m
                            t1=0;
    " n. B$ m5 _' q' ?1 S$ m. I- ^……………………( c/ R# z  i6 v6 h( Y0 A5 z
    ' u1 C5 h5 ~+ n; Y
    …………限于本文篇幅 余下代码请从论坛下载附件…………7 I- b' W! x# i' J4 X9 B
    游客,如果您要查看本帖隐藏内容请回复

    " s+ p0 z$ S+ q! X( y- k2 H) N& @5 |

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-24 09:21 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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