当前位置: 首页 > news >正文

单片机学习-蜂鸣器如何发出声音

硬件电路

 软件编写

①发出声音

#include "reg52.h"
typedef unsigned int u16;   // 重新定义 类型
typedef unsigned char u8;	// 重新定义 类型sbit BEEP = P2^5;  //定义 P2第五个管教  为BEEP 
// 延时函数
void delay_time(u16 times)
{while(times--);
}   void main()
{u16 i = 2000;   // 为什么定义这个 i , 这个i  是 执行多少次频率while(1){while(i--)	 // i 递减2000次  发出声音的时长{BEEP =!BEEP;  // ! 逻辑非运算  BEEP默认有上拉电阻,P2^5 是高电平 使用非运算 BEEP为0 低电平	,等下一次循环还是为低 ,// 低-高,一次循环  循环2000 次delay_time(200);   // 延时100ms}i =0;   // 2000次循环结束 将 i 清零BEEP = 0; // 循环结束 将BEEP  为低电平 关闭蜂鸣器}
}

BEEP =! BEEP    为何使用 非运算,这里面 P2 的管脚默认 有上拉电阻,P2^5 输出高电平

每次循环 非运算一下 为低电平 ,产生那种评率 0 1  0 1  0 1 循环下去 

②改变音色

BEEP = 0;
delay_time(100);
BEEP = 1;
delay_time(200);
// 改变音色 修改它的频率
// 改变频率 周期的 高低的周期 就是 高低电平的时间

http://www.lryc.cn/news/141339.html

相关文章:

  • 利用敏捷开发工具实现敏捷项目管理的实践经验分享
  • 代码随想录训练营 贪心02
  • Linux安装NVM(简洁版)
  • vue 弹出框 引入另一个vue页面
  • 为Android做一个ShowModal窗口
  • 神经网络的工作原理
  • Pandas数据分析教程-数据清洗-字符串处理
  • Nginx 核心配置
  • yum命令安装程序
  • 什么是CSS中的BFC?
  • 探讨uniapp的页面问题
  • 【跨域异常】
  • 上市公司环境信息披露(含环境负债、管理、监管、业绩与治理披露,2008-2022)
  • 网络基础入门
  • Oracle工具之SQLLDR
  • 探索pytest:Python自动化测试的新境界
  • K8s学习笔记4
  • Kafka 学习笔记
  • vue实现表格的动态高度
  • HodlSoftware-免费在线PDF工具箱 加解密PDF 集成隐私保护功能
  • 09 数据库开发-MySQL
  • QT通过ODBC连接GBase 8s数据库(Windows)示例
  • Java-三个算法冒泡-选择排序,二分查找
  • docker版jxTMS使用指南:使用jxTMS提供数据
  • 阿里 MySQL 规范
  • C++ Primer阅读笔记--动态内存和智能指针
  • git分支管理策略
  • IntelliJ IDEA maven配置,设置pom.xml的配置文件
  • C#__使用Thread启动线程和传输数据
  • appium2.0+ 单点触控和多点触控新的解决方案