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

51单片机在倒计时的时候蜂鸣器不响,倒计为0时蜂鸣器响

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include <reg52.h>
  a6 M1 a% d0 f5 c) }- V& n$ D0 u& ~, |$ d* R$ ^
sbit DGT0=P2^3;//数码管控制位
% F* P. }7 Z( }% msbit DGT1=P2^2;9 V; B8 @( |. O2 t2 r- s
sbit DGT2=P2^1;
% w% D/ u7 ^9 i' @# [sbit DGT3=P2^0;  i: Q4 Y& s" g; l4 Z6 I
sbit BEEP=P2^5;
0 ^) {8 {; K6 Z0 d1 ^6 u& P" b- _+ X/ N% k; b! w# H/ b
" G% x$ N! n/ s! ?. u) f
unsigned char code  LedChar[]={
5 ~3 l3 K, u2 X' |# o. t1 o& q        0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};% @# r6 b0 @; \( x5 N( t3 }6 @
unsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//显示数据储存空间
- h9 v  ^- ~$ z  _0 f& M  J/ H# q1 U) Sunsigned char  flagls=0;//工作表示
& j9 ~+ S9 `" V- _unsigned int cnt=0;//计数器8 `1 K: b( x  t1 g. q# h. t
unsigned char i=0;//循环变量
7 U2 G( R- j+ z* Yvoid main()
" q* Q; N# B, d9 A7 L{
/ R5 k) ~$ @0 ?, U0 U        unsigned int sec=1000;//定义变量,倒计时起始数据% B2 b9 d+ X1 D6 O
        3 @$ J, @  y# P8 j& B, i
        TMOD=0x01;//MOV TMOD,#01H//12M晶振产生1ms定时+ f0 X7 r+ [1 }# v' H4 k
        TH0=0xFC;//定时器初置
# G( P5 ]: n# b0 [1 e& n% D) S- I        TL0=0x18;
# V; S: Z4 k. p  p          TR0=1;//启动定时计数
' e" i/ F7 K+ y3 ?& {! Y        EA=1;//允许中断6 N3 n, |! S0 c8 l$ t  r
        ET0=1;//允许定时器0中断2 K' U$ t: u0 ]9 R6 [" C
        while(1)
7 R8 O: Y" u& n' _+ {( y8 H6 J        {         
. a$ _: s  v; d% l                LedBuff[0]=LedChar[sec%10];//计数值个位存入$ O  i0 u. Q/ D, \* B; {
                        LedBuff[1]=LedChar[sec%100/10];//十位) _) E4 P$ U( Z. f" o! L1 L$ B
                        LedBuff[2]=LedChar[sec%1000/100];//百位1 X1 C1 H9 U9 C3 u
                        LedBuff[3]=LedChar[sec/1000];//千位
/ |8 S* t1 h- ~7 P' G
. S& Y) t/ \" N" N! j* k  J7 N5 y                if(flagls==1)//判断1秒时间到,工作表示有效
. C& q( d: J) Z8 Q8 i1 s: c                {$ K: u, \) x" W9 D/ p1 n' \
                        flagls=0;//等等下一秒,清零1 d6 K0 U, K4 S6 y4 `, x
                        sec--;4 |' x/ r- }' ?, v
                        
+ t" h- C5 d: }! }' J               
3 J5 H6 H7 [4 _6 n  V                }
1 {' f( B% }! @7 P/ i        }
2 Q5 C" O6 j7 g: g1 q" f; X         5 ^9 g8 n; P" X' p1 e
        
% J) J' H" ^0 x( I" C6 ]' z}  ~; R9 `: @3 N& C
void InterruptTime0() interrupt 1//定时中断$ ?! r6 Q$ v3 X' Q
{
( `& e- Q! T" ^8 u' k- d7 s" I        TH0=0xFC;//重赋初始值# G( o" i/ L$ K$ O6 j2 H3 H4 Q& P
        TL0=0x18;/ e1 f1 {8 J" k' d+ v5 U. M4 b+ e: B" ~
        cnt++;//计数器加1
0 t- ~  p; h/ C, ]4 d7 N' t- c        if (cnt>=200)//时间
1 v0 i6 {" m8 r        {
: ~# h! t5 ~6 N7 i0 d) C                cnt=0;//准备下一秒记时
  e. K/ w/ c% y$ `- q; W) `                flagls=1;//1秒时间到
$ @0 m2 \' w" B1 l% H) a$ |              
9 I: X" v( H! P* ~$ _6 ^) Y        }
; a2 \- E# w+ W) f& r& e+ v        P0=0xFF;//熄灭,P0高电平! _" U# Z* ^1 Q$ i4 s% l0 v* Q

0 A" W  ]# q/ {# b7 n         switch (i)/ t) R3 z. |! {* T2 L
        {: m; x/ v0 y  A1 y% Z+ u3 {
                case 0GT3=0;DGT2=0;DGT1=0;DGT0=1;i++0=LedBuff[0];break;//个位' V) g' _. U8 p! w% b
                case 1GT3=0;DGT2=0;DGT1=1;DGT0=0;i++0=LedBuff[1];break;//十位
+ W, n4 s% k) P; g* d                case 2GT3=0;DGT2=1;DGT1=0;DGT0=0;i++0=LedBuff[2];break;//百位/ M- I0 w- l& R' b6 J. T+ k! h" K5 S
                case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位& Z; D: e& I0 c6 G3 Q0 c+ o
        }# ^7 w9 ]& w1 O  H. M+ e3 H7 o
}5 @4 u) P$ Q: ~, m. k8 w
0 H! Y) J. a( }) O

7 U, Y6 {7 Q  P7 D  I
# a( o% ?: ^. C; H% a( y
4 M3 c! X; M& R$ E; ^% ?' a# H+ G* B+ o9 t( b; l0 P
  如何把修改程序加进去?
' `/ b) Q8 c. P0 ]; e
! y: p1 I6 L& R5 h

该用户从未签到

2#
发表于 2021-12-22 14:56 | 只看该作者
我这可以给你一点建议,可以用case语句写

该用户从未签到

3#
发表于 2021-12-22 16:04 | 只看该作者
+ l; D8 S% ^) H8 N# m" h6 |
倒计为0时蜂鸣器响 ?
" U- v& J9 X7 k! }2 k: F+ V1、以什么频率响?" b6 B. K7 q) N; [4 K0 Z
2、响时要不要显示闪烁?
9 z" L0 c% y8 ]. B  i3、响多久?或者以什么方式停响?
4 U( D2 b6 t/ v4、响的过程中是否允许关闭响?
, n& D  D! d, N; @& n- \" M; h- `5、响完了是重新开始计时,还是就停在那边?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 13:28 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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