/*
**********************************************************************
*                         头文件包含
**********************************************************************
*/
#include <reg52.h>
#include <intrins.h>
/*
**********************************************************************
*                         本地宏定义
**********************************************************************
*/
typedef unsigned char u8;       // 重命名类型u8简化代码编写
typedef unsigned int u16;/*
**********************************************************************
*                         本地全局变量
**********************************************************************
*/
sbit gBuz = P1^5;          // P1.5通过ULN2003放大功率后驱动BUZZER/*
**********************************************************************
*                         函数原型声明
**********************************************************************
*/
void BuzzerOnOff(void);
void delay1ms(void);
void delay50ms(void) ;
void delay1ms100us(void);
void delay900us(void);
void delay800us(void);
void delay750us(void);
void delay700us(void);
void delay650us(void);
void play5_d(void);
void play1(void);
void play2(void);
void play3(void);
void play4(void);
void play5(void);
void play6(void);
void play4_h(void);
void play5_h(void);
void play6_h(void);
void play7(void);
void play5_2(void);char num[]={0x32,0x30,0x31,0x36,0x30,0x31,0x30,0x38,0x30,0x31,0x32,0x37};
/*********************************************************************
* 函 数 名       : main
* 函数功能       : 主函数
* 参数列表       : 无
* 函数输出       : 无
*********************************************************************/
void main(void)
{while (1){play1();play2();play3();play1();play1();play2();play3();play1();play3();play4();play5_2();play3();play4();play5_2();  play5_h();play6_h();play5_h();play4_h();play3();play1();play5_h();play6_h();play5_h();play4_h();play3();play1();play2();play5_d();play1();delay50ms();play2();play5_d();play1();delay50ms();}
}/*********************************************************************
* 函 数 名       : BuzzerOnOff
* 函数功能       : 给蜂鸣器开关各一段时间
* 参数列表       : 无
* 函数输出       : 无
*********************************************************************/
void BuzzerOnOff1(void)
{gBuz = 1;delay1ms();gBuz = 0;delay1ms();
}void BuzzerOnOff2(void)
{gBuz = 1;delay900us();     gBuz = 0;delay900us();
}
void BuzzerOnOff3(void)
{gBuz = 1;delay800us();     gBuz = 0;delay800us();
}
void BuzzerOnOff4(void)
{gBuz = 1;delay800us();     gBuz = 0;delay700us();
}
void BuzzerOnOff5(void)
{gBuz = 1;delay750us();     gBuz = 0;delay700us();
}void BuzzerOnOff6(void)
{gBuz = 1;delay700us();     gBuz = 0;delay700us();
}void BuzzerOnOff7(void)
{gBuz = 1;delay650us();     gBuz = 0;delay650us();
}
void BuzzerOnOff5_d(void)
{gBuz = 1;
delay1ms100us();     gBuz = 0;delay1ms100us();
}/*********************************************************************
* 函 数 名       : delay1ms
* 函数功能       : 用单片机小精灵V1.0自动生成的精确延时1ms的延时函数
* 参数列表       : 无
* 函数输出       : 无
*********************************************************************/
void delay50ms(void)   //误差 0us
{unsigned char a,b;for(b=173;b>0;b--)for(a=143;a>0;a--);
}
void delay1ms(void)   //误差 0us
{unsigned char a,b,c;for(c=1;c>0;c--)for(b=142;b>0;b--)for(a=2;a>0;a--);
}void delay1ms100us(void)   //误差 0us
{unsigned char a,b;for(b=8;b>0;b--)for(a=67;a>0;a--);_nop_();  //if Keil,require use intrins.h
}void delay900us(void)   //误差 0us
{unsigned char a,b;for(b=69;b>0;b--)for(a=5;a>0;a--);
}void delay800us(void)   //误差 0us
{unsigned char a,b,c;for(c=1;c>0;c--)for(b=2;b>0;b--)for(a=197;a>0;a--);
}
void delay750us(void)   //误差 0us
{unsigned char a,b;for(b=83;b>0;b--)for(a=3;a>0;a--);
}void delay700us(void)   //误差 0us
{unsigned char a,b;for(b=41;b>0;b--)for(a=7;a>0;a--);
}
void delay650us(void)   //误差 0us
{unsigned char a,b,c;for(c=1;c>0;c--)for(b=92;b>0;b--)for(a=2;a>0;a--);
}
void play1(void)
{int i=200;while(i) {BuzzerOnOff1();i--;}delay50ms();
}
void play2(void)
{int i=200;while(i) {BuzzerOnOff2();i--;}delay50ms();
}
void play3(void)
{int i=225;while(i) {BuzzerOnOff3();i--;}delay50ms();
}
void play4(void)
{int i=250;while(i) {BuzzerOnOff4();i--;}delay50ms();
}
void play4_h(void)
{int i=130;while(i) {BuzzerOnOff4();i--;}delay50ms();
}void play5(void)
{int i=275;while(i) {BuzzerOnOff5();i--;}delay50ms();
}void play5_2(void)
{int i=500;while(i) {BuzzerOnOff5();i--;}delay50ms();
}
void play5_h(void)
{int i=130;while(i) {BuzzerOnOff5();i--;}delay50ms();
}
void play5_d(void)
{int i=200;while(i) {BuzzerOnOff5_d();i--;}delay50ms();
}
void play6(void)
{int i=275;while(i) {BuzzerOnOff6();i--;}delay50ms();
}
void play6_h(void)
{int i=130;while(i) {BuzzerOnOff6();i--;}delay50ms();
}
void play7(void)
{int i=300;while(i) {BuzzerOnOff7();i--;}delay50ms();
}

89C51单片机蜂鸣器演奏两只老虎-源码相关推荐

  1. C51蜂鸣器演奏两只老虎

    /*两只老虎**/ #include<reg52.h> sbit Buzz = P1^6; //声明绑定蜂鸣器 unsigned int code NoteFrequ[]={   523, ...

  2. 单片机补充案例--两只老虎

    将led换成喇叭,通过编程实现音乐和电子琴功能也是非常容易的,单片机两只老虎的案例网上资料很多不再列举,查找即可: 这里,给出sdcc方案下,使用喇叭发音的示例代码: /*************** ...

  3. 使用C51单片机实现《两只老虎》

    代码: #include<reg51.h> sbit sounder=P2^1; unsigned char song_tone[]={80,71,63,80,80,71,63,80,63 ...

  4. 蜂鸣器播放《两只老虎》

    文章目录 前言 一.回顾蜂鸣器 二.乐谱知识 2.1 音符音频 2.2 两只老虎乐谱 三.系统框图 四.模块调用 五.模块原理图 六.工程源码 6.1 音符选择模块代码 6.2 pwm产生模块代码 6 ...

  5. FPGA蜂鸣器实现歌曲《两只老虎》

    1.简谱中的符号含义 2.两只老虎简谱 3.音符与频率的对照表 4.首先在这里解释一个名词→音乐频率--众所周知,声音是由物体的振动产生的,本质是传播媒介的振动,另外声音有两大特性--音量和音色,我们 ...

  6. 计算机打音乐两只老虎,两只老虎(音乐、汇编程序)

    /* 程序效果:蜂鸣器发出两只老虎的音律 */ ORG 0000H AJMP START ORG 000BH AJMP TIM0 ORG 0030H START:     MOV TMOD,#01H ...

  7. 51单片机两只老虎c语言程序,51单片机两只老虎仿真加代码

    /*************************************************************************** 程序名称:program4-1.c 程序功能: ...

  8. 用鸿蒙OS在蜂鸣器上播放一曲《两只老虎》

    本文介绍如何在HiSpark Wi-Fi IoT套件上,使用Harmony OS IoT硬件子系统的PWM接口 驱动蜂鸣器 播放音乐. 用PWM输出方波的API 鸿蒙系统IoT硬件子系统提供了PWM相 ...

  9. 51单片机两只老虎 c语言,基于51单片机做音乐盒(两只老虎)

    /********************************************************************************* 项目:音频音乐盒 设计时间:201 ...

最新文章

  1. Windows 11成上班摸鱼利器,微软CEO喊话苹果:欢迎引入iMessage
  2. 急招 Golang 熟手,来做 5G 事业。
  3. 【运筹学】单纯形法总结 ( 单纯形法原理 | 单纯形法流程 | 单纯形表 | 计算检验数 | 最优解判定 | 入基变量 | 出基变量 | 方程组同解变换 ) ★★★
  4. Android联系人Contacts详解
  5. f450四轴使用技巧
  6. JavaME:Google静态地图API
  7. 前端学习(1963)vue之电商管理系统电商系统之控制级联选择框的选择范围
  8. C:\Windows\Installer越来越大?让我们一起来删除msp这个毒瘤
  9. iPhone 12主板曝光:布局更紧凑 满满苹果基因
  10. 一个转行学习前端的初学者,应该如何计划自己的学习规划?
  11. 大数据Hadoop学习记录(3)----基于JAVA语言的HDFS文件过滤与合并
  12. 用命令提示符使用MySQL
  13. 走进龙芯3A3000(一)安装Loongnix
  14. 使用FFmpeg将MP4转换为ts文件
  15. 移远M26 GSM实时获取网络时间
  16. java实现 mysql导入数据库_Java实现MySQL数据库导入
  17. MySQL的SQL基础(五)
  18. 原型设计Axure的基本使用
  19. python字符串转list(python字符串转数字)
  20. 为什么LED内不集成限流电阻呢?

热门文章

  1. 十二星座时间及其英文缩写
  2. 搭建服务器 运用阿里云DNS自己实现DDNS
  3. 参考了下中国信息通信研究院发布(已在中国通信标准化协会立项)的行标“研发运营一体化(DevOps)能力成熟度模型”中对于“持续交付”核心流程中的三级指标,做了下对比,欢迎拍砖
  4. 轻轻松松做演讲的小窍门
  5. 浅析JWT| JWT是啥子,Java构建JWT
  6. Maven打包依赖将依赖的Jar包也打进去
  7. 2021-08-15 minikube在阿里云centos系统上的安装实践
  8. 基于51单片机的便携式输液点滴控制报警器
  9. 嵌入式软件单元测试/集成测试工具-WINAMS
  10. 决策树在商业保险中的应用