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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include <reg52.h>& n( K/ g4 K, J  P# y: L

8 I/ e5 l5 f. P8 E- |sbit DGT0=P2^3;//数码管控制位
! A9 n% i! u* Usbit DGT1=P2^2;  `' r% t3 e9 A# J! d& y; ]4 |, n
sbit DGT2=P2^1;5 s8 z- i7 K/ t
sbit DGT3=P2^0;4 U  h5 A9 p8 R6 E6 p& A4 V
sbit BEEP=P2^5;. b- E0 X' ^% f$ Y; D

9 @' W% ?3 A- y2 B2 o" ^( N; f4 T( g5 g' k
unsigned char code  LedChar[]={; J+ t) D8 P; m  H% C
        0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
! i* ^7 Q6 \# i' [; ]unsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//显示数据储存空间
# B$ i' g; ^! {4 z" ounsigned char  flagls=0;//工作表示# d8 t2 v9 I, [+ @; _- u% M' o9 P' S
unsigned int cnt=0;//计数器9 ^# X3 O$ N- S, t* P5 s# T" g
unsigned char i=0;//循环变量2 Z/ f  @6 O% W% x
void main()
  `+ v& a5 |4 D0 E0 P" j{0 x8 d1 y+ ~* s
        unsigned int sec=1000;//定义变量,倒计时起始数据# d# ]& S* c# @5 S5 r) d6 F
        # v6 I# M9 O* c/ X$ ~3 b
        TMOD=0x01;//MOV TMOD,#01H//12M晶振产生1ms定时* [. |  I- Z2 K
        TH0=0xFC;//定时器初置# j$ q% k0 C. m8 c% S% I
        TL0=0x18;
+ [" X) x4 V# C          TR0=1;//启动定时计数$ _) V5 i& p- I
        EA=1;//允许中断2 @6 t- Z8 m0 L* {
        ET0=1;//允许定时器0中断
+ E3 i- a! f% ~1 f% C( _        while(1)
+ r9 C, _. N' Y4 X& N4 t        {         5 @2 B/ Z9 |9 D) b/ t9 e! N/ x
                LedBuff[0]=LedChar[sec%10];//计数值个位存入
  @+ b# w% E+ h" q* A5 ~                        LedBuff[1]=LedChar[sec%100/10];//十位: A; T& ~9 N+ n+ h, A, P
                        LedBuff[2]=LedChar[sec%1000/100];//百位# S* x! T8 G5 x, ^2 t7 _! D6 m
                        LedBuff[3]=LedChar[sec/1000];//千位) F$ U1 s, Q( e( w

( U' p2 h# Y4 V! n9 n) d$ h                if(flagls==1)//判断1秒时间到,工作表示有效6 e2 }. G+ O0 O* B) q' M7 r
                {$ x. V9 t; S/ u# D
                        flagls=0;//等等下一秒,清零. A! x1 M; X9 \5 m, n  N
                        sec--;
) S# q9 h) R3 r2 H% _* q                        
  V0 J9 X6 P5 A# L" K1 b               
0 o6 x! w% {& j$ j7 U2 c! I                }
7 D$ c3 e/ W7 l0 N' s7 [8 a        }
$ ?. |  g0 v$ G         & j/ r: k7 _% n5 n% Y9 _3 e0 e; F
        
8 d. d# D7 H. R}1 I3 w5 Q! K) l: M% ~/ J& l3 r
void InterruptTime0() interrupt 1//定时中断
$ _6 J8 ?) @0 ~' m  G7 ~- F{! T  a& C" o7 E& S# k
        TH0=0xFC;//重赋初始值: h3 h) w% L% O' V  A6 b
        TL0=0x18;
& Y$ r4 ]& r1 G1 \9 j9 V- ]4 c        cnt++;//计数器加1( P5 r0 r- q3 O& o! b; ]
        if (cnt>=200)//时间
, h; S7 q8 L, a4 L8 s+ f$ v4 |        {
5 I, c0 h' C: M8 k' n" ?                cnt=0;//准备下一秒记时6 c- l% }4 m2 B, h5 R% O5 T
                flagls=1;//1秒时间到
  Y1 v0 W' R. |; L) u: |% K              9 x0 {; p  @/ n& I) Z1 w! n1 w
        }
# S: N1 ?, p, V8 m- j        P0=0xFF;//熄灭,P0高电平
3 R. y" ~' r& f, i
0 x/ Q1 H9 _; {- [$ `9 U         switch (i)7 s3 H- R+ _8 `
        {# Q3 g, n8 {& }5 U: j% Z, b
                case 0GT3=0;DGT2=0;DGT1=0;DGT0=1;i++0=LedBuff[0];break;//个位  C- C6 B7 Z1 y" b3 |' H. Z6 v) q
                case 1GT3=0;DGT2=0;DGT1=1;DGT0=0;i++0=LedBuff[1];break;//十位
  P, G, `) U) k, N- c- O                case 2GT3=0;DGT2=1;DGT1=0;DGT0=0;i++0=LedBuff[2];break;//百位
( R+ w$ ~: g" [9 B  i) g                case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位
: p' t; ^" G( x8 J' W/ w2 j        }. J  K* l+ \7 g0 B  f4 L
}
% C' l( X$ F. T3 W* @
' @) t- t1 F% c, X  P* e. Z, ~4 I  D/ @/ b2 K
7 U' I$ U# f0 j
% f- Z# ]9 {/ A; I# z, f
+ k* T7 s/ b8 K; v
  如何把修改程序加进去?& x7 D+ V* v  M5 p  w
. y" N3 x; Y) @  O2 R7 K: f

该用户从未签到

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

该用户从未签到

3#
发表于 2021-12-22 16:04 | 只看该作者

$ U) x! l9 L9 a3 k8 p倒计为0时蜂鸣器响 ?" |+ x% l5 p' L3 f/ t
1、以什么频率响?9 E; Q3 N- G! ^! U7 S$ C
2、响时要不要显示闪烁?8 K+ [9 \$ C# ^. S. B% ?7 Q% \0 ?) b
3、响多久?或者以什么方式停响?
% ^+ s( C% Q: x" Y/ g) n$ D8 T; C* Z! _4、响的过程中是否允许关闭响?
5 P2 s# F8 y- \9 `5 G5、响完了是重新开始计时,还是就停在那边?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-15 06:30 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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