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

单片机99秒定时报警器proteus仿真

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机99秒定时报警器proteus仿真
& @0 Z8 j8 r4 S* R5 I8 z' p- _0 e4 M( Z% R9 L
5 b- Z/ E+ c7 F' x+ l# n2 a
单片机源程序:
. Q" l) J. ?0 w0 K( ]6 j#include<reg52.h>) P$ z; R& n7 p. O# k+ z" ?
#define uchar unsigned char& @! y0 x3 K- f9 m7 p
#define uint unsigned int
' M9 }- M8 @' n' e1 rsbit k1=P1^0;
: E8 @% W& K5 j' d1 q5 L+ R, F. Q  Hsbit k2=P1^1;: |& q: }: I0 I! m2 y; J" ], R
sbit k3=P1^2;
1 Q0 p' Z4 p/ N6 Z) m& usbit k4=P1^3;
8 s  K, g) {$ y6 Rsbit buz=P3^0;
- ^5 l& t8 q9 ^) U* f/ y. zuchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
5 k  I$ Y" H7 z9 T: d" huchar count,shi,ge,dcount,dicount;; E3 _2 K; m4 ]3 v& V+ m& d8 p
void delay(int ms)
; y: x3 O( z. o3 Y- D# P  y{$ F, S8 ]7 {  o# d0 t
        uchar i,j;
  K9 X( c* n# K* l& @        for(i=ms;i>0;i--); g- ^  q6 s9 y8 Y- W
                for(j=200;j>0;j--);) E, b+ S4 _/ a6 U  l  x0 U- I
}
5 L1 X, Q! X. Y, r& [: }* g. ?: Evoid init()
3 H7 B1 P" j- W( h{7 l5 S  E, x7 _
        P0=0x6f;' k4 l/ {" ]0 T
        P2=0x6f;
& v/ k$ o( V, F2 ^& Y: R# w2 |        P1=0xff;1 e3 j7 P" S) @
        buz=0;
7 h: P0 z( w& f9 D% {: D; W! H' A6 A$ A        TMOD=0x01;4 D1 s: R) W' r5 V
        IE=0x82;. l  A1 G0 q$ L6 z% F
        TH0=(65536-50000)/256;' L; x! Y9 Q5 i9 [, J  w( P! R
        TL0=(65536-50000)%256;
- T; u6 g9 |1 {# }! ?        TR0=1;
. E1 y$ _  X& j% Z% D        dcount=99;        6 n6 P9 f7 v+ x
}. Z$ u4 D8 y; f" v' G
void keyscan()
9 L. K* j: @. E1 d0 n8 D9 H{
; O. ~. ?1 T$ O. I8 a1 J        if(k1==0)8 U- M% i1 N5 P2 y
        {        
6 i& E$ Q- \* _. u+ U: l9 n                4 X/ U! e/ q! S
                delay(5);5 [" Y5 P: R8 A
                if(k1==0)
; e$ \$ G! b; z0 C2 M: Z8 i4 P7 t$ O                {* r: N! x8 ?$ p  r* D. M
                        TR0=0;: b! B  G* W, k# |8 k) o
                }
9 T6 s3 Q( f. d; U5 S; X        }               
  j! D# E4 K0 n) G0 s  `                if(TR0==0)) h. K) E8 i/ n, T; Z$ `
                {
$ V! U) M# u% H2 @# c, ?  j$ Z7 [                        if(k2==0)
% X. d% b+ N" I                        {
/ @/ l. \8 c* @' T4 k. O% y$ X4 t                                delay(5);$ G- Q1 [! D) f+ w3 f7 N8 }
                                if(k2==0)8 Z( t2 r, w4 o9 M6 l2 c' Q6 M
                                {: j3 p* D, s, t0 C: N
                                       
* a/ @" v' U. @, N+ A) N                                        dcount++;6 M  j8 ^" {( A/ \# X% K2 g3 ]
                                        if(dcount==100)
9 C+ M( z; O# }" F$ b+ Y5 Q                                                dcount=0;
2 s! s) |6 M2 e+ V                                while(!k2)- [7 I/ t7 G/ [/ J, O
                                        {        * [) U6 J* N7 t$ r+ s: w4 r
                                        shi=dcount/10;
) J# Q& I- C8 P! J                                        ge=dcount%10;. F/ B! r% Z3 |& f/ k
                                        P0=duan[shi];
* ~# }: ^5 D) w9 t& z                                        P2=duan[ge];, P4 I* Z9 o4 R
                                        }
8 \/ W! Y0 c$ Y! J4 p2 a$ M                                }2 _0 I5 P( F- v* e  }# l, o7 A  Q
                        }  D! d+ {/ j5 ]' I4 N7 O, Y
        8 r" F8 C' B# Z& O5 L2 I
                        if(k3==0)0 q  A. \& B) R1 n1 b
                        {
% V8 N  W* M5 o, |                                delay(5);# X) M. B$ X0 p- G8 a
                                if(k3==0)
! Q/ C8 j" ]! W2 h. Y% C8 l                                {& O5 ~1 j& j0 L( \8 `  ]
                                        dcount--;
$ j, c3 }5 ]/ G                                        if(dcount==-1)
# Z( j. ~) d0 u9 }                                                dcount=99;/ N: X3 f- \1 W8 r4 j$ C) Q8 {
                                while(!k3)
* }- T$ _. A5 V' V                                        {
  Y1 _) W/ ]# \) v2 v5 N                                        shi=dcount/10;5 [2 g2 D* o$ q& X
                                        ge=dcount%10;" v% X& N! u+ @/ Y9 b$ Q
                                        P0=duan[shi];2 A3 ?2 D6 ^' B  M* D# @
                                        P2=duan[ge];- s/ r6 M1 Z( @( O( q- B1 B2 w% r
                                        }: V1 w5 _, }) C" i. g
                                }
# U  h$ |3 ^8 I: K* H% Q                                
. n# q* Z. T! _5 e                        }
( h; A3 U! N# P1 G% P                }/ L6 j( G( }3 q, b/ a
                        # x% U% k  T8 h5 o% C' g
                        if(k4==0)6 I  \) p! }1 f8 i9 w
                        {3 R+ u" \& G2 \4 l0 a$ _
                                delay(5);
9 }1 X$ N+ z( C* z( g# Q9 U9 D                                if(k4==0)/ c# @. N. u# S9 P5 j
                                {2 P* i7 A. N9 i4 s
                                TR0=1;- `& v! Q5 X6 N* X: N) u3 [
                                
% y$ g5 _/ L$ C5 A                                }
2 V% p; ]9 R6 `0 h% j                        }                                
+ M+ A( P% ^/ H$ F* I2 G$ P6 L                # ]3 K# t# d# k) K
        % N: E; q/ C2 ]6 q3 f! O
}$ ^6 [7 Y; V: b8 r- m
void timer0() interrupt 1
+ z( ~$ A( {9 X; K: u6 O{4 u; M# ]8 S* H; G; u
        TH0=(65536-50000)/256;2 v0 a7 Y* [! f4 J7 U( }
        TL0=(65536-50000)%256;4 G1 ?& _% W3 V0 m
        if(++count==20)
9 w& E5 t4 d4 f3 }* g) B        {8 `8 o/ _1 |* w
        count=0;8 l6 J6 c8 q" j6 u# D2 y
        dcount--;# }2 J3 I: y+ c: K& V5 ]9 I
        if(dcount==-1)5 U! s( D6 T9 N6 ^
        {
7 B0 L3 b; M5 T        TR0=0;+ V/ `' Y7 Z% u/ c9 h. v  R. d
        while(k1!=0)
( I/ j. O  Y6 Z0 K0 @0 U+ M                {% |/ {( Z7 a  X
                P0=0x00;+ ?  T0 s8 \* I
                P2=0x00;) Z* {0 o% O9 l# G, ^5 f
                buz=1;5 l! H' f: {9 t6 o0 W$ D$ E
                delay(1000);0 x. u  ]1 U) Y
                P0=0xff;8 I7 z5 a+ c9 B+ I  m8 ~
                P2=0xff;
/ ]$ T2 m1 H$ w7 x                buz=0;
4 Z, A# K4 r5 o9 \) U& ]/ h                delay(1000);' m: t# }! R4 D
                }& S  o, P, G, t! v
        dcount=99;
, Y% N( D7 R* m; A        }
) ?! {4 |) q1 d& I8 C8 B7 c        shi=dcount/10;- a0 u( |% \2 `! k
        ge=dcount%10;. [5 v* I0 t4 f4 i/ e
        P0=duan[shi];; a$ l! f; `6 G  V8 U
        P2=duan[ge];( A3 ?" M% {* D3 Q( |5 X/ m: ]- Q) M
        }- _* N$ K  s+ c3 M& E
               
* O( |" p$ }  N2 s}4 ^; O+ R* G: S+ H0 l
void main()
% @3 f* A  l/ o, j, F{
6 w  |- q; z# ^$ f  D6 Y        , j: L# |1 Y- q4 m
        init();
7 h! Y5 V% @# _; ]9 @5 R3 j        while(1)
0 c! o( P! @6 d  i+ @' {5 e        {
2 t; e+ `* B4 {0 q  g' K                keyscan();0 s" x- y& ~1 S0 o/ m
        }
$ a5 ?1 b) q- b        * b) m( [2 D% x" v
}
' k: j  n# X8 l9 M9 E+ F$ `
游客,如果您要查看本帖隐藏内容请回复
5 o$ S" i5 P- ?! y, t
( H7 q. A2 k: e

该用户从未签到

2#
发表于 2018-11-30 09:48 | 只看该作者
谢谢楼主分享

该用户从未签到

3#
发表于 2019-2-25 17:12 | 只看该作者
不错,谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 08:06 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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