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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Clap3hame3 于 2021-12-15 14:01 编辑
2 a0 f( `- [- C% u) A. W: e/ |& b- m3 `8 V) C
#include <reg52.h>, g* L  K) X# K6 H# t
$ }: K- X5 L  ~  L' C4 ^- x
sbit DGT0=P2^3;//数码管控制位
9 H0 n3 E1 A: E; L) B+ [! nsbit DGT1=P2^2;
) X3 m7 V( U) p2 \" Nsbit DGT2=P2^1;" ?* N% P7 r* ?( |
sbit DGT3=P2^0;5 z4 C4 z: u  w
; Z% c% x* ?3 A( o
unsigned char code  LedChar[]={3 b1 A. n5 D1 H2 z* m
        0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  n& y9 x# Z( B1 Sunsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//显示数据储存空间
  ^8 I0 O, A: ~( U4 @0 M( _unsigned char  flagls=0;//工作表示
7 d1 {  J/ |7 e! A! h. Bunsigned int cnt=0;//计数器" N: E0 l: g$ B7 g2 R3 H! N, c1 @
unsigned char i=0;//循环变量
; y6 s) p" u3 {9 @$ s5 @$ Y4 gvoid main()) w0 n6 s4 |+ a% |7 K
{: A: ?  R9 K! L
        unsigned int sec=1000;//定义变量,倒计时起始数据
( ^% M( m) u* n) {
5 P2 g2 Z( b2 ~' @: X# U        TMOD=0x01;//MOV TMOD,#01H//12M晶振产生1ms定时0 e* ]) w5 x2 F% ~; B& Y% G& W5 i4 |
        TH0=0xFC;//定时器初置
9 @& T& \4 B( M/ x, W( |7 D* d  e        TL0=0x18;
3 |1 t& f4 h2 G$ y$ ^7 p         TR0=1;//启动定时计数) E- n/ ]1 t. m- ]; j
        EA=1;//允许中断7 f! L) }/ e7 k$ f9 T  v6 u& b
        ET0=1;//允许定时器0中断& _3 F, u* W- m* [, a7 O% y
        while(1)
: W; `9 `; v' v+ ~0 [5 K. t        {         
  a  V" O, {) T7 x+ K! o9 ~                LedBuff[0]=LedChar[sec%10];//计数值个位存入  a! n2 [# O- T
                        LedBuff[1]=LedChar[sec%100/10];//十位
: k8 G" j; p& t" I" \& |2 a# t- ]                        LedBuff[2]=LedChar[sec%1000/100];//百位9 y: T3 ]$ o/ I5 S2 t: R0 V# F
                        LedBuff[3]=LedChar[sec/1000];//千位
( j, t$ R$ Y! v$ I( o" M7 B2 I) z% m2 [0 ^
                if(flagls==1)//判断1秒时间到,工作表示有效
9 t1 {, P5 g" {                {
, @% d+ N9 z/ x4 ]0 m0 s* q5 L                        flagls=0;//等等下一秒,清零6 x2 f/ I: C3 |+ ?# H
                        sec--;//倒计数
6 r# e, h( k0 _% _  |
) J- S1 r" T: G' _8 }# P. t( p& y3 h! I
                }# ^+ M6 E3 @5 [0 }9 u5 |6 U
        }( P; i% [! _( J+ h. K3 U

( P0 Q/ p4 I9 W9 v* f6 b  q( X9 i0 e  j3 p: j8 Q! t6 V
}( h. ^& ?1 h4 x) D# N  Z5 d
void InterruptTime0() interrupt 1//定时中断
6 H1 \$ b' p( E4 a6 Q/ n{( W2 T3 P( L0 u3 _+ z) M
        TH0=0xFC;//重赋初始值
+ O8 {+ _( J3 }! q        TL0=0x18;) W: a5 H' u2 m8 x3 v1 C6 }' Q* }# D
        cnt++;//计数器加1; K) ^" ~* j2 F  A
        if (cnt>=200)//中断1000次得1秒,工作表示' @& R6 l& z4 N# g! F. a$ L
        {8 b5 ?. _2 x0 z$ H& W- Z( H; f
                cnt=0;//准备下一秒记时, d0 b% ^0 p! D, n8 W8 M
                flagls=1;//1秒时间到
1 X. ~4 u6 _& P+ G) D6 S
* s  v" `) r  D1 G$ v. d        }* v! D! L  T* y" Z$ @
        P0=0xFF;//熄灭,P0高电平
: r$ l4 R/ [% {         switch (i)
5 U% k3 S- g  b6 I        {9 e" ?( o9 N' _5 |; }+ D, |  v+ a. V
                case 0GT3=0;DGT2=0;DGT1=0;DGT0=1;i++0=LedBuff[0];break;//个位
! C& X8 n, y  A7 ?6 X6 K                case 1GT3=0;DGT2=0;DGT1=1;DGT0=0;i++0=LedBuff[1];break;//十位( w* _/ W- b2 Q7 ]& E9 @* y$ \2 n
                case 2GT3=0;DGT2=1;DGT1=0;DGT0=0;i++0=LedBuff[2];break;//百位  l, E/ P& G8 h5 C; S
                case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位8 U& f1 G' L7 X) O
        }0 _# z6 `% _9 L! V2 U$ u
}
8 B9 s5 c& ^8 S: ~+ i$ z这怎么让蜂鸣器响啊 8 W* t0 J3 T3 X; g$ n: V1 W) x1 U

* {7 ]; z" t" J5 o6 y5 J, {

该用户从未签到

2#
发表于 2021-12-15 14:23 | 只看该作者
+ f) K; y: x: Q
问题不说清,只好瞎猜了……
1 q. }8 b7 X8 _+ v) ^
+ s1 T# t, S1 `3 D/ W8 j假定,你是有源蜂鸣器。(瞎猜)& \! C& c8 w; s2 ?  m
假定驱动蜂鸣器 IO 是P17(瞎猜)
# u  P1 m5 r# B  S. R: }6 f假定低电平驱动(瞎猜), s' B/ n6 r, p# h0 G  P1 J) m; K
那么,一句话搞定:4 @1 R2 M' _  Y, Y
3 N# E; K5 D2 w8 J3 @
if(sec==0)     P17 = 0;

该用户从未签到

3#
发表于 2021-12-15 15:57 | 只看该作者
主循环加$ s& Z3 B$ [9 u' M% K
if(sec==0)9 I3 G9 h/ {7 R! W9 {
{ P2^4 =1;//蜂鸣器控制IO
2 y0 ~  O* x# n, @TR0=0;//停止计时
8 {; x' p8 `' v) }$ C}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 20:23 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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