如何使用stc12c5a60s2控制蜂鸣器

1,蜂鸣器的简介

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

“Smartcar智能小车爱好者”的小车上的蜂鸣器是电磁式的有源蜂鸣器,如下图所示:

这里的有源不是指电源的“源”,而是指有没有自带振荡器电路,有源蜂鸣器自带了震荡电路,一通电就会发声:”嘀”…”嘀”,无源蜂鸣器则没有自带震荡电路,必须要提供2~5KHz左右的方波驱动,才能发声。

前面我们通过对STC12Cxx系列的芯片的数据手册的I/O做了简单的了解,上一章,我们就是利用STC12Cxx系列芯片的I/O直接驱动LED灯的,本章的蜂鸣器实验中,我们能否直接用芯片的I/O口驱动呢?让我们来分析下:STC12C5A60S2芯片的单个I/O口最大提供20mA电路(工作在强推挽输出模式),而蜂鸣器的驱动电流是30mA左右,从整个系统考虑,是不足以用I/O口直接驱动蜂鸣器,所以,我们不能直接用芯片的I/O口直接驱动蜂鸣器,而是通过电路连接个三极管扩流后再驱动蜂鸣器,这个就能保证有足够的电流来驱动蜂鸣器发声了。

2,硬件设计

本章需要用到的硬件有:

1)指示灯LED1

2)蜂鸣器

蜂鸣器的电路原理图如下所示:

  

从上电路原理图可以看出B2为蜂鸣器,它的上端连接一个三极管9013(Q1)放大电流的作用,再往上接330欧的电阻(R2)起到限流作用,最上面的网络标号Beep通过右图可以知道它是通过拨码开关连接到STC12C5A60S2芯片的I/O口的P3.4引脚,如下图

综上可知,当STC12C5A60S2芯片的P3.4引脚输出高电平时,蜂鸣器发声; 输出低电平时,蜂鸣器不发声。这里同时也要注意,因为蜂鸣器以后的实验中用的比较少,默认我们芯片的I/O口引脚复位后输出高电平,蜂鸣器就响:“嘀”…….很吵闹,固小车的设计过程中加了个拨码开关,当不需要的时候,开关拨到OFF,本实验中要用到,所以需要将拨码开关拨到ON的一端,如下图。

3,软件设计

以后的实验中会经常用到LED灯,固从第二个实验开始,都是通过在本地新建一个文件夹,命名为” xxx实验”,然后通过拷贝实验一(LED跑马灯实验)作为模版得到工程文件,然后在该工程文件的基础上添加实验所需的各种外围设备文件。

在蜂鸣器实验中,由于我们程序设计上和LED灯很类似,且很简单,所以不需要新建一个xxx.h文件,只需在LED.h文件中添加少量代码来实现本实验的内容。得到本实验的工程文件如下图:

这里我们直接打开led.h文件,在文件中添加代码内容如下:

只需要定义一个蜂鸣器的引脚 sbit BEEP = P3^4; 这里的名称为BEEP的就相当于芯片的P3.4引脚,下面添加个函数beep_test() ,设置BEEP=1为高电平时,LED1=0点亮LED1; 然后熄灭LED1,同时蜂鸣器不响。 最后在mian.c中调用beep_test();

软件程序部分设计完了,很简单,点击keil的进行编译,编译通过无错误后会生成test.hex文件,这就是后面下载我们所需要的文件。

编译如果出现警告Warning的话,一般如果程序没写错的话,就是系统的一个警告,这种警告不影响实验结果,如果看的不舒服的话可以隐藏这种警告,包括后面的实验都可以这样。

4,下载验证

这里同第一个LED跑马灯实验一样,我们使用STC公司提供的STC-ISP软件进行下载程序到我们小车的芯片上。下载程序的方法和步骤和第一个LED跑马灯实验一样,希望同学们通过一个个实验能够快速掌握这些基本软件的使用。

如何使用stc12c5a60s2控制蜂鸣器相关推荐

  1. STM32F030控制蜂鸣器定时响和控制LED亮

    一:STM32F030控制蜂鸣器定时响 (1)main.c中: u16 StartTime=0; void main() {StartTime=500;//蜂鸣器响的时长SPEEK(1); }void ...

  2. 51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...

    一.实操演示- 按键控制蜂鸣器 1.图文详细 独立按键硬件电路 蜂鸣器硬件电路 2.连接方式: J20的第3号引脚连接到J7引脚,即P15连接J7. J29的第7.8号引脚连接到JP1的第1.2号引脚 ...

  3. Linux系统编程二:字符设备控制之点亮LED灯、控制蜂鸣器

    目录 一.概述 二.文件IO 2.1 open和close 2.2 write和read 2.3 ioctrl 三.点亮LED 3.1 程序流程 3.2 代码实现 3.3 编译验证 四.控制蜂鸣器 五 ...

  4. 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)

    实验二 基于FPGA的分频器的设计 1. 实验目的: (1) 掌握QuartusⅡ软件的层次型设计方法: (2) 掌握元件封装及调用方法: (3) 熟悉FPGA实验平台,掌握引脚锁定及下载. 2. 实 ...

  5. 单片机并行口控制蜂鸣器播放音乐

    要用单片机并行口控制蜂鸣器播放音乐,需要完成以下步骤: 设计音乐:需要先确定音乐的节拍和音符,并将其转换为代码中的数值. 设置并行口:需要将单片机的并行口配置为输出模式,以便控制蜂鸣器. 编写代码:需 ...

  6. linux pwm控制蜂鸣器 滴滴_第七章----pwm蜂鸣器

    Linux代码的重用: 在头文件中加载即可使用到原来所有的功能,还有动态方式就是一个驱动使用另一个驱动的资源. 对于像蜂鸣器这样的实验,它的内部文件有很多,所有要有很多的源代码以用于妥善管理. 有多个 ...

  7. 【跟着江科大学Stm32】GPIO_按键控制LED_光敏传感器控制蜂鸣器

    不要管别人怎么说,一定要坚持,坚持一定会有收获! 一.按键控制LED 用两个按键来分别控制两个LED的状态,初始状态两灯均熄灭,按下1次点亮,再按下熄灭 因为江科大的套餐抢不到 我就自己看着图和利用现 ...

  8. Linux高级应用(十)控制蜂鸣器的应用程序

    实验步骤: 1.设计一个简易蜂鸣器驱动 beep_drv.c 2.编译驱动 Makefile 生成ko文件 3.查看驱动的信息 #modinfo beep_drv.ko 在ubuntu上 4.下载ko ...

  9. Verilog实现4位按键分别控制蜂鸣器发出不同音阶(未完成,请指导)

    实验任务: 使用板载4位独立按键,进行4位按键消抖检测,当没有按键按下时不响,按下则发出声响,分别为 DO RE MI FA. 实验思路 还是有两个part,一个part用来检测按键是否按下,输入ke ...

最新文章

  1. python生成50个随机数_Python:如何生成12位随机数?
  2. modelsim仿真中 do文件的写法技巧
  3. netty4搭建简单的http服务器
  4. OpenMP参考链接
  5. 跨地域的VPC私网互通【高速通道案例】
  6. LQR轨迹跟踪算法Python/Matlab算法实现2
  7. 什么是SQL Server数据库镜像?
  8. 博客“评论王”评选活动开始啦!
  9. 【NLP开发】Python实现聊天机器人(微软小冰)
  10. 青灯教育python百度云_《青》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  11. utools:比everything更好用的集成工具
  12. 我如何零基础转行成为一个自信的前端
  13. 二级域名分发系统美化版网站源码 附搭建教程
  14. 菜鸟入门:Java语言学习
  15. 淘宝推荐最靠谱的补单平台排行榜
  16. 场效应晶体管与晶体三极管对比,谁能更胜一筹?
  17. 【论文阅读】Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis
  18. compact php,如何使用php compact()函数
  19. 烽火HG680-LC/HG680-LY/HG680-LV_S905L3B_当贝桌面-通刷-线刷固件包
  20. 广数980tc3尾座锁定代码_广州数控GSK980TC3系列 PLC及安装连接手册.pdf

热门文章

  1. c语言统计行数、字符数、字数
  2. 9.10 安卓常用工具类之一 定位-----LocationUtils
  3. [C++]小根堆 插入/删除/初始化
  4. SWAN之ikev2/acert-fallback测试
  5. android的适配器作用,适配器在Android中的作用是什么?
  6. FCFS进程调度算法
  7. 击鼓传花击鼓次数相同c语言,击鼓传花
  8. Python学习-列表的常见操作
  9. LiteCAD参考文档的学习四(单文本、多文本、弧形文本、光栅图像、图像引用、ECW/Jpeg2000 Image图像、填充图案、尺寸、引线)
  10. 【Python中字典的len()方法】