历史上的今天
返回首页

历史上的今天

今天是:2025年08月17日(星期日)

2021年08月17日 | 51单片机-无源蜂鸣器题目

2021-08-17 来源:eefocus

1.初学者的坑

上一讲的代码单片机一上电无源蜂鸣器就不停鸣叫比较吵,那么我们有没有办法让它规定响多久就可以停止不叫了呢。首先我们知道要想让无源蜂鸣器持续响,那么P1.6就要以一定的时间间隔(也可叫一定频率)不停的高低电平切换。


复习了前两讲的内容之后,我们动手自己写一个让无源蜂鸣器响一小段时间然后又不响一段时间,接着又响一小段时间的循环。这就类似于点亮一盏灯一段时间,熄灭一盏灯一段时间的循环。


这时初学者开始得意自己学过LED闪烁,于是就自己给自己出了道题目,让蜂鸣器响一下之后,保持不响的状态1秒钟,之后又响一下,又保持1秒不响这样循环下去,于是他们在while(1)里面这样写

1.png?imageView2/2/w/550

代码下进去发现蜂鸣器没响,只是听到隔1秒就“咔”的声音。初学者犯这样的错误是因为还没认真思考过代码控制IO端口输出的状态。


2.图解

我们上一讲代码的while(1)里波形的实现是这样的

2.png?imageView2/2/w/550


而本讲上图的代码中的while(1)里却是这样的波形

1.png?imageView2/2/w/550

这样就达不到人家无源蜂鸣器驱动的条件了,初学者犯这样的错误是因为还没能很细致的去一条条代码分析,我们要做到看一条代码记住此时的IO端口输出的状态,然后再分析下一条代码,这样才能系统的去了解程序和硬件执行的关系。

 

3.题目分析

上一讲无源蜂鸣器能发声是因为在死循环里这些方波持续的时间无限长,所以无源蜂鸣器就会一直响。那我们要让它响一段时间,就让这个方波持续着这段时间;然后把IO端口电平固定住不发生改变,无源蜂鸣器没有脉冲信号所以就不响了。这时我们再延时1秒,在这一秒里无源蜂鸣器不会响,过了这一秒之后再让IO端口持续输出一段方波时间,这时就可以再次弄响无源蜂鸣器,就这样死循环下去也就达到自己想的那个题目的要求了。

4.png?imageView2/2/w/550

4.代码


#include  

sbit BEEP = P1^6;

 

void delay_ms(unsigned int x)

{

    unsigned int i,j;

    if(x==1000)

    {

        for(i=0;i<19601;i++)//延时1s

        {

            for(j=5;j>0;j--);

        }

    }

    else while(x--)for(j=115;j>0;j--);

}

 

void main()

{  

    unsigned int i,time;

     

    while(1)

    {

        for(time=0;time<800;time++)//800决定鸣叫的时长

        {  

            BEEP=!BEEP;

            for(i=0;i<30;i++);//这里改为30延时长一点把鸣叫音调调低一些

        }

        delay_ms(1000);//延时1s 

    } 

}


推荐阅读

史海拾趣

Hifn Inc公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。从广义上讲,任何与电视机连接的网络终端设备均可视为机顶盒,它们不仅限于接收和转换电视信号,还具备丰富的网络交互功能。

机顶盒的核心功能在于接收并解码来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,将其转换成适合在电视机上播放的格式。这一过程包括接收、解码和显示三个主要步骤,确保了用户能够享受到高清乃至4K的超高清画质和震撼音效。此外,机顶盒还提供了诸如电子节目指南、因特网网页浏览等增值服务,极大地丰富了用户的观看体验。

随着技术的不断进步,机顶盒正朝着智能化、多功能化方向发展。例如,智能推荐算法能够根据用户的观看历史和偏好,提供个性化的节目推荐;语音识别技术则让用户能够通过语音指令控制机顶盒,实现更加便捷的操作体验。同时,机顶盒还支持家庭影院功能,让用户在家中就能享受到电影院般的视听效果。

总的来说,机顶盒作为连接电视与外部信号源的桥梁,不仅提升了电视节目的观看体验,还通过丰富的网络交互功能为用户提供了更加广泛的内容和娱乐选择。随着技术的不断发展和用户需求的日益多样化,机顶盒将继续在家庭娱乐领域发挥重要作用。

Clulite公司的发展小趣事
  1. 创业初期
    • 描述Clulite公司的创始人或核心团队如何识别电子行业中的某个市场机遇。
    • 讲述他们是如何筹集初始资金,设立公司,并开发出第一款产品或解决方案的。
    • 可以提及公司在初创阶段面临的挑战,如技术难题、市场竞争等。
  2. 技术创新
    • 讲述Clulite如何通过研发创新,推出了一款颠覆性的产品或技术,从而获得了市场认可。
    • 详细描述这一创新过程,包括研发团队的努力、关键技术的突破等。
    • 提及这一创新如何帮助公司在市场上取得了竞争优势。
  3. 市场拓展
    • 描述Clulite如何逐步扩大市场份额,从地区市场走向全国乃至国际市场。
    • 可以讲述公司如何建立销售网络、与合作伙伴建立合作关系,以及参与行业展会等活动来推广品牌和产品。
    • 提及公司在市场拓展过程中遇到的挑战和应对策略。
  4. 品质管理
    • 讲述Clulite如何注重产品质量和客户体验,通过严格的质量控制流程来提升产品可靠性。
    • 描述公司如何建立完善的售后服务体系,为客户提供及时、专业的支持。
    • 提及这些举措如何帮助公司赢得了客户的信任和口碑。
  5. 可持续发展
    • 讲述Clulite如何关注环境保护和社会责任,推动公司的可持续发展。
    • 描述公司如何采取环保措施,减少生产过程中的污染排放。
    • 提及公司如何参与社会公益事业,回馈社会。

请注意,这些故事需要根据Clulite公司的实际情况进行调整和补充。如果你需要更具体的内容,建议查阅Clulite公司的官方网站、新闻报道或行业分析报告,以获取更详细的信息和数据。

BOSER公司的发展小趣事

随着科技的不断发展,BOSER公司意识到只有不断创新才能在激烈的竞争中立于不败之地。因此,公司投入大量研发资源,致力于开发具有自主知识产权的新技术。经过不懈努力,BOSER成功推出了一系列创新产品,引领了电子行业的技术发展潮流。

Emulation Technology Inc公司的发展小趣事

为了进一步扩大市场份额,Emulation积极实施国际化战略。公司先后在北美、欧洲和亚洲等地设立了分支机构,与当地合作伙伴建立了紧密的合作关系。这些分支机构不仅为Emulation提供了更多的市场机会,还帮助公司更好地了解当地市场需求和竞争态势。

CAMDENBOSS公司的发展小趣事

在电子行业的早期,CAMDENBOSS公司以其对技术的深入研究和不断创新而崭露头角。公司研发团队通过不懈努力,成功开发出一款具有革命性的连接器产品,该产品在信号传输效率和稳定性上取得了显著突破。这一技术突破不仅为公司赢得了市场的广泛认可,也奠定了其在电子连接器领域的领先地位。

Hei Inc Optoelectronic Division公司的发展小趣事
通过编程MCU来实现定时功能,可以灵活地设置加热时间和加热温度等参数,并实时监测和控制加热过程。MCU还可以与其他传感器和执行器连接,实现更复杂的控制逻辑。

问答坊 | AI 解惑

小区安防方案系统设计原则

系统设计原则 ü 实用性原则 总体设计:在系统设计的过程中,方案不仅综合考虑了小区内需要被集成的所有弱电子系统资源的充分利用与共享等实际情况,以及集成后智能化集成系统的实用性和在一段时间内先进型的问题,还着眼于未来,也即随着社会发 ...…

查看全部问答>

vs2005 mfc 程序,动态链接,出了问题!

WINCE5.0(操作系统已添加 MFC 组件) VS2005 MFC 动态链接 利用向导制作了一个最简单的对话框程序,复制到开发板中运行,结果提示: 缺少库,可是在操作系统中已经添加了 MFC 组件,难道 VS2005 MFC 程序需要自己的 MFC 库吗?…

查看全部问答>

请教JIAG接口问题:(

自己作了一块5409的板子,和仿真器(XDS510PP)联不上,好伤心啊。。。。  提示检查目标板电源和JTAG连接。            仿真器和5402DSK相连,没问题。        自己做的板 ...…

查看全部问答>

继电器

继电器的定义 继电器是一种当输入量(电、磁、声、光、热)达到一定值时,输出量将发生跳跃式变化的自动控制器件。 一、继电器的工作原理和特性 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应 ...…

查看全部问答>

电赛资料

本帖最后由 paulhyde 于 2014-9-15 08:56 编辑 分享一下  …

查看全部问答>

LED驱动中的问题

有个LED工作电流1A电压3.1V,现在选用芯片LM3405A来驱动LED,3.6V锂电池供电,手工搭的电路图以及芯片资料如附件。首先芯片的第一管脚是不是正对着芯片上的字左下角第一个管脚就是第一脚(我搭电路时就是这么搭的)?电路搭好(第四脚使能端与第五 ...…

查看全部问答>

M3简单收发源码

RT,也是学校发的,有需要的拿走吧…

查看全部问答>

MSP430g2211 GPIO模拟UART串口工程源码

MSP430g2211芯片 完成IO口模拟串口的程序,求工程包…

查看全部问答>

Hercules DIY 九:报警器基本功能实现

我这次做板留了一手,就是留有USBKIT那个接口,由于本次原理图小东东特别多也特别烦索,我先用USBKIT实现了基本功能,也就是说报警器功能上好用。 同时我也发现了原理图的不少问题。得以后有时间再说说。先看下视频,这段视频很短,3秒钟,左边是 ...…

查看全部问答>

F28027的编译问题

我最近是在看  越控越有趣 照着那个在做PICOLO,碰到了这么4个问题,不知道该怎么办啦…

查看全部问答>