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

单片机程序蜂鸣器不响?请大神指点

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-9 14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

该用户从未签到

2#
发表于 2020-7-9 14:57 | 只看该作者
3 ?1 p! [7 b% D6 o' L
1. 不用单片机信号,直接给三极管低电平试试有没有声音,如果有声音,硬件正常的,最好接光耦驱动好一点+ J! H% s* b! t! V2 N4 V8 e2 C: r. a
2. 直接在大循环feng=0; 测试一下,看看能不能驱动,如果正常,硬件与单片机共地或电路正常
! q. M, j  b: r! [3. 到此可能是你的定时器中的while()可能死循环了,可以一个普通的延时函数测试一下,把延时稍微延长一点时间,看看效果! n6 @8 O% s8 i0 g& ]" u8 q3 Z+ B

点评

是的,有道理  详情 回复 发表于 2020-7-9 16:41
物品先给低电平试试  详情 回复 发表于 2020-7-9 15:03

该用户从未签到

3#
 楼主| 发表于 2020-7-9 15:03 | 只看该作者
本帖最后由 yiwangxip 于 2020-7-9 15:08 编辑 ' M4 q9 c- n( a9 d. m
行者~ABC 发表于 2020-7-9 14:57
' ^/ u$ q4 }% S& o( y! j" `3 J* B1. 不用单片机信号,直接给三极管低电平试试有没有声音,如果有声音,硬件正常的,最好接光耦驱动好一点! ~! A/ G  O2 |
2.  ...
! C/ s7 P4 R$ u7 y! r
; W4 C$ J, s& \. l9 ~# }) T9 J
我先给低电平试试
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2020-7-9 16:41 | 只看该作者
    行者~ABC 发表于 2020-7-9 14:57
    $ Q) S7 {/ f6 F3 ]/ A6 G5 u% k1. 不用单片机信号,直接给三极管低电平试试有没有声音,如果有声音,硬件正常的,最好接光耦驱动好一点
    % w+ I$ A' Z# o1 P2.  ...
    9 U: {$ x# X- v7 O0 Z! l
    是的,有道理% ?8 z; R& `* u

    该用户从未签到

    5#
    发表于 2020-7-9 17:10 | 只看该作者
    硬件会不会有问题

    “来自电巢APP”

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-19 22:44 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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