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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机99秒定时报警器proteus仿真
- y7 Q, \- D0 ?# P- G3 f' X" y5 e* P& W. Q$ |/ ~7 U
9 V  N, i* \7 d+ e" ^
单片机源程序:
7 s7 A& {$ a# X* q8 s" V1 Z#include<reg52.h>- w- u, R4 s: R8 g6 _
#define uchar unsigned char
' x) D# G6 i$ ]; X#define uint unsigned int" V2 i6 P8 j- o' |9 f
sbit k1=P1^0;0 g0 P8 {8 k* D9 O- Y$ l" Y) X
sbit k2=P1^1;* X) I, A! ?3 E. L
sbit k3=P1^2;) D! \+ F' x5 Y4 R3 F" F
sbit k4=P1^3;
8 S: R( Z( A$ Z. msbit buz=P3^0;
& u+ e% A( a$ b' D0 J" Wuchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};: m/ G5 y: P0 W; b% h* @. E
uchar count,shi,ge,dcount,dicount;
4 H3 y- U" ^. C8 `, I9 a( [8 A( ?void delay(int ms)
3 z; S5 v: v" d2 z{0 z: b( L6 i, _. q/ p
        uchar i,j;  t+ g, P2 u& Q' V, j2 D
        for(i=ms;i>0;i--)
0 `& s( W$ a2 N                for(j=200;j>0;j--);
; o  P9 u" E  Y+ D  \: q}) C7 V$ t4 O, M; p8 a
void init()
! s% ~1 ^: [2 M3 Z$ V& N4 c9 f{: M: J: q7 g/ u- Y# n4 S4 v, e% f
        P0=0x6f;
6 n0 J/ s- {7 [6 [6 g& q! S6 X/ u# D        P2=0x6f;
, h/ J; \, D/ G, P7 F6 f6 Q2 ^& X        P1=0xff;
9 p0 B: f7 ^* e/ Z; @+ Q        buz=0;8 x8 n; P; C1 x  H. f
        TMOD=0x01;
8 c0 J7 y' _. p# Y        IE=0x82;$ R2 _# U; n% `, P+ O, c
        TH0=(65536-50000)/256;" D# R( J* Z+ T
        TL0=(65536-50000)%256;% }  z/ v; E5 A) a7 b
        TR0=1;$ O1 a% ]2 i5 R$ V
        dcount=99;        
% j3 @9 x$ \2 e, U9 {! Q}
' c& T7 b6 e5 c/ N9 e/ `3 Kvoid keyscan()
. p7 _0 n! J5 O9 `{, y) X7 x5 m1 P3 J% R  G0 _  h
        if(k1==0)2 |/ {; n; _* [4 J$ s6 w7 X( G
        {        
6 G' [1 Z' l9 j; e0 q; `               
$ B" q; P# C& t( S) Y                delay(5);
* h8 o& F4 [. V2 k  i( A                if(k1==0)
, w$ T. R  p' B                {
. D- t8 y# e# \! a/ t                        TR0=0;
- F8 q! h6 I/ p! K/ o2 V+ e( A                }; }5 k: \1 C8 }4 {
        }               
) B: U: w+ i) t, P3 ]* m7 U                if(TR0==0)* Y* C# ?8 b! a7 n
                {
% ]3 t2 k; Y9 {                        if(k2==0)
% K8 \' l" O0 ]7 u# U                        {
2 a+ ~/ g+ r- X; b4 z                                delay(5);
% w% f4 O" z, N+ b2 r* S7 G. w                                if(k2==0)$ `3 ^, p# e/ B6 @! t
                                {
1 d+ y' G$ Q% _4 E                                       
& G6 h8 A7 R3 Y0 Y$ F                                        dcount++;
' Y( _: I) i  @! g9 p6 V7 |# F                                        if(dcount==100)
4 b1 T0 p& v5 o  A. r* |5 Y                                                dcount=0;
% I: ~1 r3 X, q% g                                while(!k2)' ^* {4 x# w0 Z. P) ~0 f9 K
                                        {        - M4 o* X4 W$ C7 V7 l# i$ m
                                        shi=dcount/10;( Y: }# O6 E" G4 S
                                        ge=dcount%10;- |4 `7 v" P$ I0 {
                                        P0=duan[shi];7 W' |0 t& e6 {7 [
                                        P2=duan[ge];% G* c# p$ e' s# l  d6 m5 Z
                                        }# d1 U+ {. Z/ t+ K
                                }3 P) ^/ I6 U; |" [$ ^- j, i# J
                        }
$ O2 G. j% @8 v1 D9 l& U  {5 t        
- Z0 W: _8 q- A* @4 F4 `8 s& a: ?                        if(k3==0)
/ Z" J+ H7 h. N* L. ^, H                        {
6 [0 G$ q0 p# g, [# o1 M                                delay(5);& ^$ E2 B  q4 B2 [% w6 H! ]7 j' e' c
                                if(k3==0)( X- U  |: s! h6 _3 [0 }
                                {
. r5 Z8 M9 d; v9 W4 |, E& w0 z7 K" `, l                                        dcount--;
, x& t2 J' q; x8 S                                        if(dcount==-1), J) m( i4 n  T5 g1 d( m+ M3 S
                                                dcount=99;
8 h/ [. l9 M; ?2 U" l. g1 a! n                                while(!k3)
' M* c8 L' g0 `- l& Y; F' i, ]                                        {
* K; f; ?1 `$ E. Y# N, f                                        shi=dcount/10;+ u9 X! C6 @% v/ \
                                        ge=dcount%10;
  j8 q: U6 I5 y( c                                        P0=duan[shi];! y4 j' U) A& s, d
                                        P2=duan[ge];
7 w* c; m4 D, C8 b& p7 f& ]                                        }  l! ?: o2 h4 K! V- p! X' }
                                }( s7 S  b/ o$ O; Z
                                , R! [! C! I* C) j% e4 h$ ?. j
                        }8 e0 `4 l. ^! [3 @4 `9 H+ g+ _. h
                }& n$ j) H% J6 q8 X' o- j: W
                        
6 H9 \1 {3 L; u4 a/ C                        if(k4==0)' h, s8 N) V5 J/ E+ z
                        {
8 x( j( ?3 g8 g9 E8 s                                delay(5);% `$ m# ?* L- T
                                if(k4==0)8 I+ w# g6 R$ m; i
                                {
/ d4 |$ c3 @5 a. d6 _' l# [# A                                TR0=1;
7 J, {2 e' [, V* Y- y                                5 e% c# b  [) N, h
                                }0 |' \: K4 t0 D- C5 P8 ]; t
                        }                                , ^4 Y: m1 O! U) ]/ K
                9 x' h2 z* A- r) z
        
) d3 O! z2 R: @' n}0 r* I0 I! T# c0 V
void timer0() interrupt 16 E, T+ X3 g2 x+ C8 n4 R( |2 p
{
  d& k( T  `' @4 k        TH0=(65536-50000)/256;
6 c  ^9 [% ]* J6 e7 n+ a        TL0=(65536-50000)%256;
) J6 a; s  f2 Z/ ]        if(++count==20)0 D6 x( q: b) k* g2 Y! u
        {
2 T+ e; F3 S8 o+ ^        count=0;3 j: J7 @5 p; c3 c' y5 }. e* a
        dcount--;
6 F/ f3 [1 j0 ?( H        if(dcount==-1)% s0 v2 m8 {; H
        {* r, {! v5 G1 m( l
        TR0=0;
7 W3 h6 n. R; E4 L        while(k1!=0)
' g+ y1 q9 n( F3 U* ^8 E                {* D' g  M; w) v$ p. J% A8 k
                P0=0x00;. ^5 W/ t' X6 S2 Z# z( Z+ z; ?
                P2=0x00;
; G% c7 u( K0 Z                buz=1;. g7 X0 b% C) B* D, O4 d
                delay(1000);
: P. w" ~- K  Y# e3 l; P                P0=0xff;4 {1 G2 J  _+ {0 k+ C
                P2=0xff;; Y. f7 l5 v) u
                buz=0;
; l8 ~# v  T4 }* P6 k, Q                delay(1000);
0 {# Y' a$ J! J. I: \                }  ?6 ^, I6 J3 j5 j% v& N
        dcount=99;
' q/ j, ~* [: j' r# V        }& `( m) k1 T5 l0 `+ h. T$ ]
        shi=dcount/10;
6 U9 j& H/ a0 O8 ?: K7 m        ge=dcount%10;, Z% ^) `1 j" }" Q5 ?
        P0=duan[shi];
9 E4 J' q" A! a8 q( c$ W        P2=duan[ge];
) A* S% U- I+ I$ f6 J# U        }! L! ]5 c7 ]/ P; A3 D
               
2 h& Z( V( D% v- o% V}0 |& k# v9 r- T; u1 W
void main()
) D$ p: e! t( N7 d& K; t, ^{$ t$ k% Z3 [7 a& f9 A
        
& @/ E+ E& j! j- b, a2 K& Y3 A; v! V        init();- b/ N7 u9 ~3 g; d" Z
        while(1)
! t  I7 H$ }1 S* ^: M% s        {3 g4 R$ t3 t/ x' [- l5 V
                keyscan();, }( c. J; m7 E
        }
0 ^/ g+ Y. A6 s4 ~, C# {        
, ^7 Z, E! \/ Q/ E! y: O6 o7 F3 X4 i}% b2 Z' M9 A. s& |5 l0 U
游客,如果您要查看本帖隐藏内容请回复

+ Q4 S, m2 }8 l/ @5 w2 d/ `2 V: y& X7 S7 \

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-18 00:49 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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