蜂鸣器的一点没想到

#include <reg52.h>

sbit BUZZ = P1^6;

unsigned char T0RH;
unsigned char T0RL;

void OpenBuzz(unsigned int fre);
void StopBuzz();

void main()
{
    unsigned int i;
    EA = 1;

    while(1)
    {
        OpenBuzz(4000);
        for(i=0; i<30000; i++);
        StopBuzz();
        for(i=0; i<30000; i++);
        OpenBuzz(1000);
        for(i=0; i<30000; i++);
        StopBuzz();
    }
}

void StopBuzz()
{
    ET0 = 0;
    TR0 = 0;
}

void OpenBuzz(unsigned int fre)
{
    unsigned int reload;

    reload = 65536 - (11059200)/(fre*2);
    T0RH = (unsigned char)(reload >> 8);
    T0RL = (unsigned char)reload;
    TMOD = 0x01;
    TH0 = 0xFF;
    TL0 = 0xFE;
    ET0 = 1;
    TR0 = 1;
}

void InterruptTimer0() interrupt 1
{
    TH0 = T0RH;
    TL0 = T0RL;

    BUZZ = ~BUZZ;
}

注意OpenBuzz里面的2,为什么要乘以2呢? 注意,频率的定义为周期的倒数,是高低电平所占的整个周期。
但是本例子占空比直接默认的就是50,那么高电平所占的时间就是一半咯!

1635,1376, 917,1376,2062,1836,1635, 917,1376,1376,1836, 917,1376,1376, 917,1456, 917,1635,1376, 917,1376,2062,1836,1635, 917,1376,1376,1836, 917,1376,1376, 917,1836,1376, 917, //前奏 34 30, 917, 917,1376,1376,1226,1092, //故事的小黄花 41 30, 917, 917,1376,1376,1226,1092,1226,1376,1836, //从出生那年就飘着 51 30, 917, 917,1376,1376,1226,1092, //童年的荡秋千 58 30,1092,1226,1092,1031,1092,1226,1031,1092,1226,1376, //随记忆一直晃到现在 69 1836,1376,1376,1092,1031,1092,1226, //Re So So Si Do Si La 76 1376,1226,1092,1092,1092,1092,1226,1092,1226,1376, //So La Si Si Si Si La Si La So 86 1836,1376,1226,1092,1031,1092,1226,1376, //吹着前奏 望着天空 94 1226,1092,1092,1092,1092,1226,1092,1226,1376, //我想起花瓣试着掉落 103 30,1376,1376,1376,1376,1635,1456,1376, 917,1031,1092,1376,1367,//没想到 失去的勇气我还留着 116 30,1376,1376,1376,1376,1092,1376, //好想再问一遍 123 1635,1456,1376, 917,1031,1092,1376,1226, //你会等待还是离开 131 1092,1226,1031,1092,1376, 917, 728, 687, 728, 917,1376, //刮风这天 我试过握着你手 142 30,1376, 817, 817, 30, 817, 917, 917, //但偏偏 雨渐渐 150 30, 917,1031,1092,1226,1092,1031,1092, //大到我看你不见 158 30,1092,1031, 917,1092, 30,1031, 917, 728, 612, 728, 687, 687, //还要多久 我才能在你身边 171 30, 687, 687, 917, 917, 817, 917,1031, //等到放晴的那天 179 1226,1092, 1031, 917, 817,1376,817, 728, 728, //也许我会比较好一点 188 1092,1226,1031,1092, 30,1376, 917, 728, 687, 728, 917,1376, //从前从前 有个人爱你很久 200 30,1376, 817, 817, 30, 817, 917, 917, //但偏偏 风渐渐 208 30, 917,1031,1092,1226,1092,1031,1092, //大到我看你不见 216 30,1092,1031, 917,1092, 30,1031, 917, 728, 612, 728, 687, 687, //好不容易 又能再多爱一天 229 30,1376, 687, 917, 917, 817, 917, //但故事的最后 236 1031,1635,1456,1376,1226,1092,1226,30,1092,1376 //你好像还是说了 拜拜 246 }; 为什么蜂鸣器的代码要这样子设计
最新发布
06-10
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值