|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
启动时,没有效果,按下1按键,数码管显示,按下二号键,蜂鸣器响一秒(此时数码管依旧亮) 按下复位键回到初始状态,我这个程序为什么蜂鸣器不响?
% W; E: u9 y3 W) h% J5 ?" \% X4 {% ^/ ~) t8 }& y5 T
#include<reg51.h>: O% U; N( [% {! S0 |9 E/ R, v
#define uchar unsigned char& G2 s% _9 c7 @/ l% f8 F, g
uchar smg[]={0xc0,0xf9,0xa4,0xb0}; //数码管
3 j" a1 Q" @% L$ Z9 B2 Bsbit a1=P2^0;* h9 o# J: T; ^1 v) w6 s! v
sbit a2=P2^1;
! p/ n0 c5 A4 s* i: V7 {sbit a3=P2^2;, o' f- y0 G2 s3 o8 N
sbit a4=P2^3; //位选码* p6 A/ U/ _0 N# B0 H T
sbit feng=P2^5;
6 X, ?9 h# V9 q, Z7 ~. O) Lsbit jian0=P3^2; //按键
, Q% l) G( W$ psbit jian1=P3^3;
& }4 |% a& w( ^8 E: ]- e. pvoid delay1() //定时1秒
8 c2 a& G* `6 w1 u! S. T{$ K1 F2 H$ A. H3 i& f; x0 O3 | W
uchar k;
5 N; Q3 F/ f' F6 w! l1 ^for(k=20;k>0;k--)5 }! x7 K" j! D1 A! U: A# |
{) {8 N/ r; ?2 t& }* j
TH1=(65536-50000)/256;
) F7 {: O7 ]( r6 c1 @TL1=(65536-50000)%256;
8 u7 \: i- y! p% T+ o# gwhile(TF1==0);, u2 x" c, _; p1 v4 l
TF1=0;$ T& N$ o- K, g8 N! G
}: D$ Y& ~$ i1 u& O) X7 c
}
& k! n! R$ ` [( |5 Kvoid delay()4 L ?3 g9 q: j5 G4 x6 T' H$ g
{
+ H% Q$ ]% ?' u: W7 i$ k) ~6 mint i;
6 _$ _) _! U) i# t. q7 Ufor(i=600;i>0;i--);
5 [0 g, e! R7 t, _8 p}
# G6 e/ N2 T6 Zvoid main()* Q6 M V9 H( h2 I; ]4 Q8 _8 W& }) {
{7 L, D; D4 K1 b3 X9 | _" v
TMOD=0X11;* ?& ~ H3 B/ a; q
TH0=(65536-5000)/256;
/ |. ?3 ]" P# ATL0=(65536-5000)%256; //初始化 s8 Y9 s3 q6 ~ f$ T2 N
TH1=(65536-50000)/256;
1 I0 ~3 B2 u" t' c7 DTL1=(65536-50000)%256;3 B9 t" d5 e n+ r) T/ r% n
TR1=1;& B/ l; L3 E2 ^6 E+ |9 d
EA=1;
( Q) l# R+ t8 S- rET0=1; //开中断/ E8 C+ }, d& S3 E
while(1)/ |3 U e9 a5 |, ` o+ h+ y6 e& P
{
" A- A- `: l4 a5 DTH0=(65536-5000)/256;
7 n5 z' h' @: Y5 E2 u, rTL0=(65536-5000)%256;
5 {7 r6 \: b$ D* y6 v
: J) P. V$ J1 ]- w" D' Zif(jian1==0) //按键,去抖+ o8 j; F1 X. h* ^
{5 H1 C" ]! D4 m3 X" M- [* q& R' o( _
delay();. [/ Y5 `& ?3 `4 \6 z+ m' l
if(jian1==0)
0 T- o: N$ }. U' e, i{
( a" R7 l+ e( }2 V6 J" y) a7 J; X1 pwhile(!jian1);
5 W" V& U* R6 d2 P! eTR0=1;0 _ z9 I m! M7 W
}
) L0 i6 T0 v6 [& M}
& G2 Y0 q& b5 bif(jian0==0)) S; i! ?2 h8 X5 p1 _5 f+ W
{
3 i7 S* m Z2 U+ U& c/ rdelay();
% _* S. G i3 A' r. F$ F; bif(jian0==0)
/ _2 y* @. p4 n$ z3 H{* R( o0 B7 h* c e
while(!jian0);
% Y9 q5 x( \. _( ?- M& v! m: M' r' H. h
feng=0;
! E& n7 d7 m5 Z8 z0 @% q! ~5 rdelay1();, i9 J k# l7 ~
feng=1;! }' v3 q, e5 ^1 f5 w1 K
}/ q" P1 Q/ n0 V) O& o/ u
}% `4 D8 W7 U8 N1 B
}7 p2 w ?& |7 b' U& d2 l; |% b
}
4 H* h% g' m1 a6 Qvoid t0(void) interrupt 1 using 1# g1 W# h- `0 ?% X0 P# u5 V
{" y# a& I7 w9 w
0 ?2 _7 b9 L$ X2 l7 Z6 x8 F0 ?
# e; ^! M# @' M- wTH0=(65536-5000)/256;
$ I6 d' U& F' qTL0=(65536-5000)%256;
+ j3 s3 C- O5 g8 Ga1=0;
, a5 N+ d. V+ G& S; p& pP0=smg[2];6 c* V/ Z# j4 N- a) Z/ f5 l
delay();
* Y/ S$ G5 S( \% c, b# ^3 La1=1;9 Z7 g' ? x5 D! M9 J
5 P- R4 w1 i8 p' u4 r3 Z" ^' ?9 wa2=0 ;* e" R6 N' {1 _! }9 m
P0=smg[0];3 N" y2 s$ B" l) Y( t! K
delay();
$ q2 V7 U8 R# a4 n. h/ Ta2=1;
T0 S, M, u: a. P
2 V$ t3 [+ R) _- ya3=0;' V0 D/ C* F/ f6 n+ o' _
P0=smg[0];
; o3 g7 y* ~' B: q odelay();
" U5 t6 }5 |! @. Wa3=1;
( b1 r) h) \ z) u. g, o0 L
: t; f$ _2 u: Aa4=0;0 z e9 X* f3 d$ c
P0=smg[3];1 d6 ^" Q! G3 e4 n9 o
delay();
, t) E( r* h, s- T0 o# l4 ^a4=1;6 y0 D, B# n, x% b2 z7 S5 f4 D
+ Q! T3 ~+ U+ P3 ?}7 m- Z% I8 i# P0 u( Y5 j
|
|