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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
启动时,没有效果,按下1按键,数码管显示,按下二号键,蜂鸣器响一秒(此时数码管依旧亮) 按下复位键回到初始状态,我这个程序为什么蜂鸣器不响?
5 ?( w2 z  C, @8 m1 n0 w: \8 ~# O9 U$ d( r  n2 u3 G8 O
#include<reg51.h>
; ]: B; j5 b" s#define uchar unsigned char
) @' [/ X4 P) q" D$ juchar smg[]={0xc0,0xf9,0xa4,0xb0}; //数码管
2 H2 c; Y0 b0 F+ R7 ]; M  N! asbit a1=P2^0;# w. y: Z$ I' `0 K: t
sbit a2=P2^1;8 C' R! m/ v* m) |8 ]5 Z. W: U
sbit a3=P2^2;! f1 L8 }4 ]# l" [( E, o9 c6 P
sbit a4=P2^3; //位选码
% [; T! k; w0 |; V+ \sbit feng=P2^5;
3 ^% V& [6 W0 q5 I9 d1 ksbit jian0=P3^2; //按键- z& ^! }; \$ x6 u# _
sbit jian1=P3^3;
& i' G( [$ q$ Y3 Nvoid delay1() //定时1秒' s  D. t: f# o! ]
{
' I& d3 o! g4 b& juchar k;. d0 k. E3 d2 I) H/ r
for(k=20;k>0;k--)
( t! U  s+ l  j: k# [% A5 k8 h) I{
7 [+ F) p* @% h, r3 h9 FTH1=(65536-50000)/256;
: B. Y5 R  n( e: M& H  rTL1=(65536-50000)%256;
" d2 G; ?3 p' Qwhile(TF1==0);$ W5 N0 C8 B0 ~1 H* B/ z
TF1=0;6 m+ Z$ |# Z* g0 G; O8 F( ^
}7 f/ m+ L0 y6 Y8 K
}; {2 U/ c3 G7 V( V0 u# w
void delay()
* n- X$ Z: p/ v/ b% d! Y{0 A& x9 V" h: D" [% ^% H  ?) ^" P
int i;1 H2 P9 `) W+ Z6 q9 @& I6 T" i8 `
for(i=600;i>0;i--);
+ q2 p, T8 Q$ K" S2 m* \}6 p- l1 i; g. x) ~' ]- O1 r
void main()- Q( y0 \* o! |( Y
{
& d& @/ A1 Q+ DTMOD=0X11;4 \1 a- m) t0 B% z+ q4 D
TH0=(65536-5000)/256;
6 k$ C6 z+ L/ qTL0=(65536-5000)%256; //初始化
  J; h* p0 w6 _TH1=(65536-50000)/256;
5 K; D* s3 t4 A+ e. _: y- e8 [TL1=(65536-50000)%256;1 y  v' v1 P* L, @5 a
TR1=1;
' ]1 Y* {- r( J% P% rEA=1;
6 ?( P- L4 X+ z5 G4 l& [ET0=1; //开中断# ~( R! O; G' w
while(1)
* L/ A6 y3 e' O* Y{' s; X( P* \  k9 A# F
TH0=(65536-5000)/256;+ \: `$ q* ^- [( H2 S
TL0=(65536-5000)%256;% O* f5 A4 L* X, A! }3 P& A

: j8 E) P4 o( tif(jian1==0) //按键,去抖  X, K4 L6 O3 _1 G! l$ O/ ^
{
% G6 C3 s! z$ L1 l5 H; odelay();
, u2 K' j+ `9 W9 x& M$ }/ Gif(jian1==0)
( d/ G* K, W9 I) U4 D( u{
  ~8 |5 w7 D% v+ {) v3 bwhile(!jian1);4 ^8 A- @; s, c8 _
TR0=1;1 S8 v) u. U( J8 |& ~
}3 a! m+ y$ U' B: Z8 s
}
7 e, t( [1 V$ t4 N9 L0 zif(jian0==0)
  ~' @% T- w) o& k; l: c: u{7 n4 `9 s5 U+ h) R% D" y
delay();- P0 Q0 G) V  F+ w8 v
if(jian0==0)
' R2 r  t* L7 w- T1 I{5 P1 e, h* P  b
while(!jian0);
8 W8 I, O% U: h8 ^/ q. j
0 Y% j$ M: N8 s0 y- Lfeng=0;
# T$ g# m6 Z5 v; q/ @delay1();
0 A: q0 T. \( r5 N% p4 ]' q6 Wfeng=1;
  n) y' U* L3 y}
2 s* T9 G! A; T/ D}
3 z2 v5 r" `. v3 b0 m}( A7 W$ i9 v" g( ^4 A" `
}
) C3 h% u* R6 q* g- rvoid t0(void) interrupt 1 using 1
, Z2 K' J! ?6 P; ^+ v& I+ X{
0 m+ \/ R  O! l- i" n3 }2 ^7 C5 k4 n. Q# Z
+ S7 l: E+ h' ]* o: ~
TH0=(65536-5000)/256;
2 e6 \1 G9 X& x) \8 {; Z( F" kTL0=(65536-5000)%256;
. B' g& I, B+ L0 ^5 h; la1=0;
8 @5 V8 n* R+ ^/ q; r( U& @P0=smg[2];1 _% N$ z- H# t6 S# K7 y- o
delay();
+ U3 V7 [3 j" O' v) G: t/ Ma1=1;+ [9 g6 _1 a1 F. n; Q3 x
1 W2 ?3 B6 l0 [) H
a2=0 ;8 P0 a) t; i. }" J9 Z0 `) c& c
P0=smg[0];, u/ c4 V0 Q; M2 H. L9 ?6 W
delay();& W; l1 e, @( A+ l9 h) d# a
a2=1;3 E9 J1 I( x: @

+ j* [+ W- r- J1 k9 U' Sa3=0;
9 P8 R% D: V$ n6 o; z+ HP0=smg[0];
; @! M; {4 P' y) Adelay();
- M9 B; _2 l. e: ~: |a3=1;
% A9 [; F& j$ }" S
/ @. `) y7 c# u# M( S! n( T- r7 `a4=0;0 o9 R- {, s  i
P0=smg[3];$ o* @0 D" Q2 W! W& f
delay();- C% S) {; S( |# r$ M
a4=1;7 ~$ \# W$ j# L( Z6 a6 \2 m
0 ?% D2 s6 `0 e, C( x/ k4 a3 H
}
+ |( p& K3 H+ @

该用户从未签到

2#
发表于 2020-7-9 14:57 | 只看该作者
! q; T0 x7 J9 r- u- ?- ^* |
1. 不用单片机信号,直接给三极管低电平试试有没有声音,如果有声音,硬件正常的,最好接光耦驱动好一点) c- ?' z4 U- C1 ~4 |
2. 直接在大循环feng=0; 测试一下,看看能不能驱动,如果正常,硬件与单片机共地或电路正常' ?7 X4 D0 N4 M' v' n
3. 到此可能是你的定时器中的while()可能死循环了,可以一个普通的延时函数测试一下,把延时稍微延长一点时间,看看效果
3 o& {1 \$ G1 U8 N0 T2 t

点评

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

该用户从未签到

3#
 楼主| 发表于 2020-7-9 15:03 | 只看该作者
本帖最后由 yiwangxip 于 2020-7-9 15:08 编辑 + P$ A) R+ J0 r# }5 [
行者~ABC 发表于 2020-7-9 14:57* l6 i7 e  _' x) y
1. 不用单片机信号,直接给三极管低电平试试有没有声音,如果有声音,硬件正常的,最好接光耦驱动好一点. Z8 Q* K+ ?: L
2.  ...
: v9 ?/ p% Q+ a
3 D# e8 B1 G3 x! p; X$ a
我先给低电平试试
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2020-7-9 16:41 | 只看该作者
    行者~ABC 发表于 2020-7-9 14:57
    2 r' v) Y( r& V. d6 U! ^1. 不用单片机信号,直接给三极管低电平试试有没有声音,如果有声音,硬件正常的,最好接光耦驱动好一点
    & J" \. T6 _3 A9 g2.  ...

    % ]7 @5 S5 z4 l, @4 v3 X是的,有道理
    ; _( m+ m$ Z  }2 w; C

    该用户从未签到

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

    “来自电巢APP”

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-22 08:35 , Processed in 0.109375 second(s), 27 queries , Gzip On.

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

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

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