利用单片机播放声乐课学的《梧桐树》。

效果:按下k1键播放《梧桐树》。

代码如下(代码已经通过测试,可直接复制到keil,然后下载到板子上):

#include <reg52.h>
sbit beep = P1^5;
sbit k1 = P3^1;
unsigned char timer0H, timer0L, time;
code unsigned char FREQH[] = {0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8,    0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE,           0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF};
code unsigned char FREQL[] = {0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6,    0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D,             0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16};
code unsigned int song[] = {1,2,2,  2,2,2,  3,2,2,  1,3,2,  7,2,2,  6,2,4,  3,2,2,  5,2,1,  4,2,1,  4,2,12,2,2,2,  3,2,2,  4,2,2,  7,2,2,  6,2,2,  5,2,4,  2,2,2,  4,2,1,  3,2,1,  3,2,12,1,2,2,  2,2,2,  3,2,2,  1,3,1,  1,3,1,  7,2,2,  3,3,4,  1,3,2,  7,2,1,  6,2,1,  6,2,10,  1,3,2,  7,2,1,  5,2,1,  5,2,4,  7,2,2,  6,2,1,  4,2,1,  4,2,4,  6,2,2,  5,2,2,  2,2,2,  4,2,2,  5,2,8,  2,2,1,  1,2,1,  1,2,20,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  6,2,1,  7,2,1,  1,3,2,  5,2,2,  3,2,6,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  7,2,1,  1,3,1,  3,3,1,  2,3,1,  2,3,12,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  6,2,1,  7,2,1,  1,3,2,  5,2,2,  3,2,6,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  7,2,1,  1,3,1,  3,3,1,  2,3,1,  2,3,16,1,3,2,  7,2,2,  5,2,4,  7,2,2,  6,2,2,  4,2,4,  6,2,2,  5,2,2,  2,2,1,  2,2,1,  4,2,2,  5,2,8,  3,2,1,  1,2,1,  1,2,22,1,2,2,  2,2,2,  3,2,2,  1,3,2,  7,2,2,  6,2,4,  3,2,2,  5,2,1,  4,2,1,  4,2,12,2,2,2,  3,2,2,  4,2,2,  7,2,2,  6,2,2,  5,2,4,  2,2,2,  4,2,1,  3,2,1,  3,2,12,1,2,2,  2,2,2,  3,2,2,  1,3,1,  1,3,1,  7,2,2,  3,3,4,  1,3,2,  7,2,1,  6,2,1,  6,2,10,  1,3,2,  7,2,1,  5,2,1,  5,2,4,  7,2,2,  6,2,1,  4,2,1,  4,2,4,  6,2,2,  5,2,2,  2,2,2,  4,2,2,  5,2,8,  2,2,1,  1,2,1,  1,2,20,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  6,2,1,  7,2,1,  1,3,2,  5,2,2,  3,2,6,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  7,2,1,  1,3,1,  3,3,1,  2,3,1,  2,3,12,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  6,2,1,  7,2,1,  1,3,2,  5,2,2,  3,2,6,1,3,6,  2,3,1,  3,3,1,  7,2,6,  5,2,2,  6,2,2,  6,2,1,  6,2,1,  7,2,1,  1,3,1,  3,3,1,  2,3,1,  2,3,16,1,3,2,  7,2,2,  5,2,4,  7,2,2,  6,2,2,  4,2,4,  6,2,2,  5,2,2,  2,2,1,  2,2,1,  4,2,2,  5,2,8,  3,2,1,  2,2,1,  1,2,40,
};
void IntConfiguration()
{IT0=1;EX0=1;EA=1;
}
void t0int() interrupt 1
{TR0 = 0;                     beep = !beep;          TH0 = timer0H;              TL0 = timer0L;TR0 = 1;
}
void delay(unsigned char t)
{unsigned char t1;unsigned long t2;for(t1 = 0; t1 < t; t1++)   for(t2 = 0; t2 < 4000; t2++);TR0 = 0;
}
void sing()
{TH0 = timer0H;              TL0 = timer0L;TR0 = 1;                   delay(time);
}
void main(void)
{IntConfiguration();TMOD = 1;ET0 = 1;EA = 1;while(k1==0){unsigned int k, i;while(1){i = 0;time = 1; while(time){k = song[i] + 7 * song[i + 1] - 1;timer0H = FREQH[k];     timer0L = FREQL[k];     time = song[i + 2];   i += 3;sing();                }  }  }
}

按下k1键播放《成都》。

代码如下(代码已经通过测试,可直接复制到keil,然后下载到板子上):

#include <reg52.h>
sbit beep = P1^5;
sbit k1 = P3^1;
unsigned char timer0H, timer0L, time;
code unsigned char FREQH[] = {0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8,    0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE,           0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF};
code unsigned char FREQL[] = {0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6,    0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D,             0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16};
code unsigned int song[] = {5,1,2, 1,2,6, 1,2,4, 3,2,2, 5,2,2, 3,2,2, 3,2,6, 6,1,2, 1,2,6, 2,2,2, 1,2,2, 6,1,2, 5,1,8,5,1,2, 1,2,6, 1,2,4, 2,2,2, 6,2,2, 3,2,2, 5,2,4, 3,2,1, 2,2,1, 1,2,4, 1,2,2, 2,2,4, 5,2,2, 3,2,2, 2,2,8,3,2,2, 5,2,6, 5,2,2, 5,2,2, 6,2,2, 1,3,2, 6,2,4,3,2,2, 2,2,4, 1,2,2, 2,2,4, 3,2,2, 3,2,8, 3,2,2, 5,2,6, 3,2,2, 3,2,2, 2,2,2, 1,2,2, 1,2,6, 5,1,2, 2,2,4, 1,2,2, 3,2,4, 2,2,1, 1,2,1, 1,2,18,5,1,2, 1,2,6, 1,2,4, 2,2,2, 5,2,2, 3,2,2, 3,2,6,5,1,2, 1,2,4, 1,2,2, 2,2,2, 1,2,2, 6,1,2, 5,1,8,5,1,2, 1,2,6, 1,2,4, 2,2,2, 6,2,2, 3,2,2, 5,2,4, 3,2,2, 1,2,4, 1,2,2, 2,2,4, 5,2,2, 3,2,2, 2,2,8,3,2,2, 5,2,4, 5,2,2, 5,2,2, 3,2,2, 5,2,2, 6,2,4, 1,3,2, 6,2,4,3,2,2, 2,2,4, 1,2,2, 2,2,4, 5,2,2, 3,2,8,3,2,2, 5,2,6, 3,2,1, 2,2,1, 6,1,2, 1,2,4, 1,2,4, 2,2,2, 1,2,18,3,2,2, 5,2,4, 5,2,2, 5,2,2, 3,2,2, 5,2,2, 6,2,4, 6,2,2, 3,2,4, 2,2,2, 1,2,6,2,2,4, 5,2,2, 3,2,6,3,2,2, 5,2,6, 5,2,2, 3,2,2, 5,2,2, 6,2,4, 6,2,2, 3,2,4, 2,2,2, 1,2,4,1,2,2, 2,2,4, 3,2,2, 1,2,8,5,1,2, 6,1,2, 1,2,4, 1,2,2, 2,2,2, 2,2,2, 5,2,2, 3,2,10,3,2,2, 5,2,2, 6,2,4, 5,2,2, 6,2,2, 5,2,2, 2,2,2, 3,2,10,1,2,2, 2,2,2, 1,2,2, 2,2,2, 1,2,2, 6,1,2, 2,2,4, 3,2,2, 2,2,2, 2,2,4, 1,2,2, 2,2,2, 2,2,2, 2,2,2, 2,2,2, 3,2,2, 6,2,2, 5,2,16,
3,2,2, 5,2,4, 5,2,2, 5,2,2, 3,2,2, 5,2,2, 6,2,4, 6,2,2, 3,2,4, 2,2,2, 1,2,6,2,2,4, 5,2,2, 3,2,6,3,2,2, 5,2,6, 5,2,2, 3,2,2, 5,2,2, 6,2,4, 6,2,2, 3,2,4, 2,2,2, 1,2,4,1,2,2, 2,2,4, 3,2,2, 1,2,8,5,1,2, 6,1,2, 1,2,4, 1,2,2, 2,2,2, 2,2,2, 5,2,2, 3,2,10,3,2,2, 5,2,2, 6,2,4, 5,2,2, 6,2,2, 5,2,2, 2,2,2, 3,2,10,1,2,2, 2,2,2, 1,2,2, 2,2,2, 1,2,2, 6,1,2, 2,2,4, 3,2,2, 2,2,2, 2,2,4, 1,2,2, 2,2,2, 2,2,2, 2,2,2, 2,2,2, 3,2,2, 6,2,2, 5,2,16,};
void IntConfiguration()
{IT0=1;EX0=1;EA=1;
}
void t0int() interrupt 1
{TR0 = 0;                     beep = !beep;          TH0 = timer0H;              TL0 = timer0L;TR0 = 1;
}
void delay(unsigned char t)
{unsigned char t1;unsigned long t2;for(t1 = 0; t1 < t; t1++)   for(t2 = 0; t2 < 4000; t2++);TR0 = 0;
}
void sing()
{TH0 = timer0H;              TL0 = timer0L;TR0 = 1;                   delay(time);
}
void main(void)
{IntConfiguration();TMOD = 1;ET0 = 1;EA = 1;while(k1==0){unsigned int k, i;while(1){i = 0;time = 1; while(time){k = song[i] + 7 * song[i + 1] - 1;timer0H = FREQH[k];     timer0L = FREQL[k];     time = song[i + 2];   i += 3;sing();                }  }  }
}

51单片机控制蜂鸣器播放《梧桐树》相关推荐

  1. 蜂鸣器播放爱你歌曲c语言程序设计,51单片机控制蜂鸣器播放5首歌曲汇编程序...

    欢乐颂 DB 32,32,32,32,32,32,32,32,32,32,32,32,48,16,64 DB 32,32,32,32,32,16,16,32,32,32,16,16,32,32,32, ...

  2. 51单片机控制蜂鸣器发SOS国际求救信号声音实验

    说明:本文是51单片机控制蜂鸣器发声实验的高级版,和上个实验差不多,上个实验是控制蜂鸣器发声,本实验可以理解为控制蜂鸣器间断发出不同长度的声音,本文同样重在夯实基础,如果是大神,请自觉飘过. 好了我们 ...

  3. (十)51单片机——利用蜂鸣器播放《孤勇者》(附成果展示)

    目录 硬件部分 蜂鸣器介绍 驱动电路 ULN2003 乐理部分 音符 音符与频率对照 代码部分 运行结果 随着最近孤勇者成为小朋友们的接头暗号之后,于是产生了利用单片机去播放孤勇者的想法,接下来我们来 ...

  4. 51单片机_11-2 蜂鸣器播放音乐

    文章目录 要求 资源 main函数 要求 控制蜂鸣器播放音乐 资源 工程文件压缩包 链接:https://pan.baidu.com/s/1hA-aa0JRP33IlOYFNzKf7A 提取码:0id ...

  5. 51单片机控制lcd12864播放bad apple!

    源码网盘链接:https://pan.baidu.com/s/1APv5yVAqrYj4KkkIafegrQ 提取码:b628 B站:https://www.bilibili.com/video/BV ...

  6. 51单片机实现蜂鸣器播放小星星

    在中断的时候降了一个调,一开始没发现后面也懒得改了. unsigned int code FreqTable[]={63628,63731,63835,63928,64021,64103,64185, ...

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

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

  8. 单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程(附仿真文件+源代码)

    功能:按一下开关后,单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程 单片机控制蜂鸣器唱生日快乐歌曲 程序源代码如下: /* 生日歌 */ #include <reg51.h&g ...

  9. 51单片机蜂鸣器演奏《小苹果》C语言程序,单片机控制蜂鸣器演奏音阶实例

    单片机可以控制蜂鸣器发声音 蜂鸣器是非常常见的发音元器,音乐卡.报警装置.电子琴.各种小家电等都会用到.单片机的PWM功能可以设置输出不同频率的信号,所以我们可以利用单片机的PWM控制三极管的通断来推 ...

  10. 【网络收录】基于51单片机开发音乐播放器

    [网络收录]基于51单片机开发音乐播放器 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Thu, 22 May 2014 18:14:00 +0800 特别声明:本资料来源 ...

最新文章

  1. CSS 样式书写规范
  2. 66319d电源使用说明书_刚买就报修?新到手的冷柜使用时该注意什么?
  3. 深度学习参数怎么调优,这12个trick告诉你
  4. 李丽娟c语言第四版教师书_来,把自学C语言经历的那些苦,都踩在脚下
  5. 缓冲区溢出基本C程序的控制台和Win32版本
  6. BugKuCTF WEB 输入密码查看flag
  7. 【Hadoop】MapReduce笔记(二):MapReduce容错,任务失败处理
  8. java 队列_百战程序员:Java并发阻塞队列
  9. 常见的软件测试缺陷分类:遇到测试缺陷怎么处理?
  10. K-th Number
  11. Pandas如何检测None和Nan
  12. dijit.layout.ContentPane--dojo学习
  13. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,
  14. gis连接表格到数据库失败_ArcGIS添加Excel数据的新老问题(连接数据库失败)
  15. 用python计算数据的方差_用python求数据表中数据的均值与方差
  16. 网页加载速度优化分析
  17. 淘特(淘宝特价版)关键词搜索
  18. 数字0是奇数还是偶数_C程序检查数字是偶数还是奇数
  19. Pycharm中光标变粗 光标进入改写状态
  20. 自动化学科国家自然基金委十二五规划 2009年12月

热门文章

  1. Redis:哈希表HSET、HSETNX、HGET、HEXISTS、HMSET、HMGET、HKEYS、HVALS、HGETALL、HDEL命令介绍
  2. 网易云音乐(纯CSS实战)
  3. 诛仙3饮马江南服务器信息,12月29日全服停机更新维护公告
  4. Axure RP 介绍
  5. 小米 OJ 编程比赛 02 月常规赛 (Carryon 数数字)
  6. 编写php代码输出学号姓名,2、 编写一个简单的C++程序:通过键盘输入你的基本信息,如姓名、学号、班级,然后在屏幕上输出...
  7. 罗盘时钟python代码_HTML 罗盘式时钟
  8. Java证件照剪切_GitHub - cacacai/idPicCut: 对原始证件照进行压缩,剪裁,换背景,(美颜)...
  9. win7显示u盘efi分区_Win7下查看U盘中的EFI盘方法
  10. 修改html倒计时,利用自定义HTML小工具实现倒计时