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

51单片机倒计时后如何让蜂鸣器响

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Clap3hame3 于 2021-12-15 14:01 编辑
' ?1 X! \* ~3 e* @/ Z& _$ S/ E
( t, B4 [" I$ }#include <reg52.h>& t' I& G( O5 \
1 X  k) Q! Z1 C& C$ N
sbit DGT0=P2^3;//数码管控制位1 ?" R  n% h" p
sbit DGT1=P2^2;
6 p/ l# c7 d" }- Q% D2 r, g) f" osbit DGT2=P2^1;, Q6 k6 t6 k3 M9 m6 d7 k' {% y
sbit DGT3=P2^0;
6 k8 E8 e! _" F1 [  p
3 o$ l6 w3 w) Yunsigned char code  LedChar[]={
" d7 |6 @  W7 }5 D6 A        0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};5 M  T# C* ?$ F1 s* x. F+ l
unsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//显示数据储存空间+ d: h* I3 A1 ]2 M
unsigned char  flagls=0;//工作表示" j( b) {2 T5 J4 m4 b5 y: \
unsigned int cnt=0;//计数器9 B1 Y3 }$ \& _% f; L
unsigned char i=0;//循环变量0 `. _) ?  Q& R/ U  c
void main()/ q& M' h+ y+ u& M8 @$ e2 V  q
{. m3 f4 j0 z9 E6 ]
        unsigned int sec=1000;//定义变量,倒计时起始数据6 Y) D, T8 X+ T& v2 R

9 I- U$ x9 \( l2 f+ B; c1 E        TMOD=0x01;//MOV TMOD,#01H//12M晶振产生1ms定时
' u0 W& D- D: b        TH0=0xFC;//定时器初置
# @! a5 r- N1 J( z' F        TL0=0x18;
) U! }( x, S0 Z. @0 E1 {6 R8 @! }& H' ?         TR0=1;//启动定时计数3 P! A. F* U# K' G0 a
        EA=1;//允许中断8 P8 \6 J& Y& ?
        ET0=1;//允许定时器0中断# y/ W4 M' W/ _. q% x' L1 B! e2 @: j
        while(1)
! l+ M0 M$ @. X) W- @8 M7 ~        {         
( I0 Q* q" v+ S6 _. v6 |9 Z                LedBuff[0]=LedChar[sec%10];//计数值个位存入# z$ z; @4 c8 S! w2 r
                        LedBuff[1]=LedChar[sec%100/10];//十位
; w' v1 [9 r- M3 S                        LedBuff[2]=LedChar[sec%1000/100];//百位9 T/ u. K* E# S+ K" O5 U% Y. H8 |
                        LedBuff[3]=LedChar[sec/1000];//千位
) a; b1 U; H* l6 Z2 w6 L
6 q1 Y2 A6 Y# z& u: ?5 a+ o$ A                if(flagls==1)//判断1秒时间到,工作表示有效
4 Q2 a( A' q# a+ N& `* ?" |                {
0 d: ~$ ^& D% A# Z% g                        flagls=0;//等等下一秒,清零
/ o) n. {! a! t* L$ W                        sec--;//倒计数
1 O$ V( }, z0 y$ I4 H- u1 W7 F4 L( p

$ ?' ?" |8 T5 s6 B                }
2 P4 V3 [' Y7 }. e        }. k) Z; B/ `8 j# e' ]' ]9 Y7 R4 y

$ y, c. `* D5 T% Z" q; E- @: T+ z; ~4 ]  c- D
}
" `3 t' V6 R8 f7 S& v* n/ tvoid InterruptTime0() interrupt 1//定时中断! e/ d7 Z3 r4 r4 ?+ R7 J
{
! l* v- ]( F2 a9 ^# E* t, l' u        TH0=0xFC;//重赋初始值2 Y, K4 w* P1 C/ U6 V$ U% ^' d
        TL0=0x18;5 P2 X3 r6 @# j9 |
        cnt++;//计数器加1
3 k) g; e3 S7 L4 U+ C' n        if (cnt>=200)//中断1000次得1秒,工作表示
" u/ |1 B# |/ a, N, Q! R! ]* q        {4 n% \- ?' x' ]# X2 r* @# ?+ M7 f4 {
                cnt=0;//准备下一秒记时
) S8 l+ v* n# n/ W  `) f                flagls=1;//1秒时间到9 y$ e" J; X$ k4 [% @* @8 \% I+ D' c
# _2 U5 G( v7 q& ^( ^2 ~: {3 d
        }8 Y) K+ n6 z( o2 v! {5 X
        P0=0xFF;//熄灭,P0高电平, n( _6 F6 {# ]( l& Q
         switch (i)
6 h; S1 u" Y! g1 U        {
- z4 C) ?, V6 y$ t+ F& [                case 0GT3=0;DGT2=0;DGT1=0;DGT0=1;i++0=LedBuff[0];break;//个位: \2 Y! S$ y' E0 V; ]' q6 X
                case 1GT3=0;DGT2=0;DGT1=1;DGT0=0;i++0=LedBuff[1];break;//十位, T: c5 G, f4 H! ?6 n
                case 2GT3=0;DGT2=1;DGT1=0;DGT0=0;i++0=LedBuff[2];break;//百位
2 V; W5 a3 M4 g; `9 E; d. H4 i- v: k                case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位  x3 H' d' ~3 E/ U% z
        }; P+ h: F  X/ q3 Y9 g% d
}
# [/ v$ F/ f, ^, [! n  x这怎么让蜂鸣器响啊
; ^) p5 H& G. p& n& u4 S8 R5 j$ G( G6 N$ }5 p6 L& q5 X9 g- s

该用户从未签到

2#
发表于 2021-12-15 14:23 | 只看该作者

5 b) z) n5 C3 D9 b9 a& U! [; K问题不说清,只好瞎猜了……
; i* I. |1 M- Y: M3 y3 O0 z* }* Y3 y+ z; j/ u
假定,你是有源蜂鸣器。(瞎猜)
3 g1 X8 g4 {, {1 m" u- g6 ^1 u& }* T假定驱动蜂鸣器 IO 是P17(瞎猜)
/ v" ^) Z, ]" Y- Z# S7 ~假定低电平驱动(瞎猜)& y+ t6 _3 A& n/ y" R% A
那么,一句话搞定:
2 N. M6 T8 s3 |* P6 U
0 L, l7 z# O8 Q3 s  y& aif(sec==0)     P17 = 0;

该用户从未签到

3#
发表于 2021-12-15 15:57 | 只看该作者
主循环加! K8 M* j. k  f$ Q# X. `- M8 i
if(sec==0)
' j3 T) O3 ]3 n{ P2^4 =1;//蜂鸣器控制IO; U  Q  X% ~6 s4 z% I5 @% s& Y- @
TR0=0;//停止计时
  L2 F2 m9 w; ~+ v+ b. e7 B}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 11:22 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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