STC8 单片机蜂鸣器播放音乐

发布时间:2026/7/11 1:54:47
STC8 单片机蜂鸣器播放音乐 # STC8单片机蜂鸣器播放《东风破》项目功能描述 ## 一、项目整体功能 本项目基于**STC8系列51单片机**利用无源蜂鸣器定时器中断产生不同频率方波实现循环播放周杰伦《东风破》简谱旋律乐曲播放完毕后停顿1秒自动重播全程通过定时器精准控制音符音高与节拍时长。 ## 二、核心硬件逻辑 1. **发声硬件**无源蜂鸣器连接单片机P1.0引脚BEEP准双向IO口输出高低电平交替方波驱动发声 2. **定时器资源**使用定时器1工作在16位定时模式配合中断翻转IO电平不同定时初值对应不同音调低音L、中音M、高音H 3. **静音处理**休止符REST时关闭定时器、拉高蜂鸣器引脚实现停顿效果。 ## 三、程序模块功能拆解 ### 1. 乐谱数据存储模块 - 二维数组 music_star 存储《东风破》完整简谱存储格式{音调定时初值, 节拍时长} - 区分低音L、中音M、高音H音符搭配4分拍、2分拍节拍BEAT常量 - 数组末尾标记 {REST,0} 作为乐曲结束识别标志。 ### 2. 基础延时模块 DelayMs 毫秒级软件延时函数用于控制每个音符持续播放时长、歌曲循环间隔。 ### 3. 定时器驱动模块 1. Timer1_Init定时器1初始化开启总中断、定时器1中断配置16位定时模式默认关闭定时器 2. Timer1_ISR定时器1中断服务函数重装音调定时初值翻转蜂鸣器引脚电平生成音频方波。 ### 4. 音符播放模块 PlayNote 单音符播放核心函数 - 传入音调与节拍参数若为休止符直接关闭定时器延时静音 - 有效音符装载对应音调定时初值启动定时器发声延时对应节拍时长后关闭定时器静音。 ### 5. 乐曲循环播放模块 PlayMusic 遍历乐谱二维数组依次读取每一组音调节拍数据循环调用单音符播放函数读到结束标记后退出播放流程。 ### 6. 主函数逻辑 1. IO初始化配置蜂鸣器引脚为准双向模式默认关闭蜂鸣器 2. 定时器初始化开启中断 3. 死循环完整播放一遍《东风破》→延时1秒间隔→重新播放实现无限循环放歌。 ## 四、项目特色与亮点 1. 音调分层支持低音、中音、高音三种音域完整还原歌曲旋律 2. 节拍可控标准化节拍常量区分长短音贴合原曲节奏 3. 中断发声分离定时器中断负责生成音频主程序延时控制节拍互不干扰 4. 乐谱易修改数组结构化存储简谱可直接替换数组内容播放其他乐曲 5. 无限循环播放歌曲结束自动延时重播无需外部按键触发。 ## 五、适用场景 STC8单片机课程实训、51单片机蜂鸣器音乐播放实验、嵌入式入门#ifndef __MUSIC_H #define __MUSIC_H sbit BEEP P3^6; // 低音 #define L1 64580 #define L2 64684 #define L3 64767 #define L4 64820 #define L5 64867 #define L6 64908 #define L7 64944 // 中音 #define M1 64968 #define M2 64994 #define M3 65015 #define M4 65030 #define M5 65043 #define M6 65055 #define M7 65065 // 高音 #define H1 65072 #define H2 65079 #define H3 65085 #define H4 65090 #define H5 65094 #define H6 65098 #define H7 65101 #define REST 0 // 休止符 // 节拍 ms #define BEAT_1 400 #define BEAT_2 200 #define BEAT_4 100 #define BEAT_8 50 #endif音频发声演示项目。主代码#include STC8.H #include music.h typedef unsigned char uchar; typedef unsigned int uint; // 东风破简谱 中音高音组合 uint code music_star[][2] { {M3,BEAT_4},{M5,BEAT_4},{M6,BEAT_2},{M6,BEAT_4},{M5,BEAT_4}, {M3,BEAT_2},{M2,BEAT_4},{M3,BEAT_4}, {M5,BEAT_2},{M3,BEAT_4},{M2,BEAT_4},{M1,BEAT_2}, {L6,BEAT_4},{M1,BEAT_4},{M2,BEAT_2}, {M3,BEAT_4},{M5,BEAT_4},{M6,BEAT_2},{M6,BEAT_4},{M5,BEAT_4}, {M3,BEAT_2},{M2,BEAT_4},{M3,BEAT_4}, {M5,BEAT_2},{M3,BEAT_4},{M2,BEAT_4},{M1,BEAT_2}, {L6,BEAT_4},{M1,BEAT_4},{M1,BEAT_2}, {M5,BEAT_4},{M6,BEAT_4},{H1,BEAT_2},{H1,BEAT_4},{M6,BEAT_4}, {M5,BEAT_2},{M3,BEAT_4},{M5,BEAT_4}, {M5,BEAT_2},{M3,BEAT_4},{M2,BEAT_4},{M1,BEAT_2}, {L6,BEAT_4},{M1,BEAT_4},{M2,BEAT_2}, {M3,BEAT_4},{M5,BEAT_4},{M6,BEAT_2},{M6,BEAT_4},{M5,BEAT_4}, {M3,BEAT_2},{M2,BEAT_4},{M3,BEAT_4}, {M5,BEAT_2},{M3,BEAT_4},{M2,BEAT_4},{M1,BEAT_2}, {L6,BEAT_4},{M1,BEAT_4},{M1,BEAT_2}, {REST,0} }; uint timer_val; // 音符定时初值 uint beat_delay; // 当前音符持续节拍 bit play_flag 0; // 发声标志 // 毫秒级延时 void DelayMs(uint ms) { uint i,j; for(ims;i0;i--) for(j1100;j0;j--); } // 定时器1初始化 16位模式产生方波 void Timer1_Init(void) { TMOD | 0x10; ET1 1; TR1 0; EA 1; } // 定时器1中断服务函数翻转蜂鸣器输出 void Timer1_ISR(void) interrupt 3 { TH1 timer_val 8; TL1 timer_val; BEEP ~BEEP; } // 播放单音符 void PlayNote(uint note, uint beat) { beat_delay beat; if(note REST) { TR1 0; BEEP 1; DelayMs(beat_delay); return; } timer_val note; TH1 timer_val 8; TL1 timer_val; TR1 1; DelayMs(beat_delay); TR1 0; BEEP 1; } // 【修复警告】去掉形参前面的code修饰符 void PlayMusic(uint music[][2]) { uchar i 0; while(music[i][0] ! REST || music[i][1] ! 0) { PlayNote(music[i][0], music[i][1]); i; } } void main(void) { P3M0 0x00; P3M1 0x00; // BEEP接P1.0配置P1口准双向 Timer1_Init(); BEEP 1; // 蜂鸣器默认关闭 while(1) { PlayMusic(music_star); DelayMs(1000); // 歌曲循环间隔1秒 } }

相关新闻

银川网站建设多少钱?别被忽悠了,过来人掏心窝子说点大实话

银川网站建设多少钱?别被忽悠了,过来人掏心窝子说点大实话

最近好多朋友私信问我,在银川做网站到底要花多少钱?有的报价两千,有的报价两万,这中间差着十倍呢,到底谁在坑人?说实话,这行水太深了,我干了五年建站,见过太多老板因为贪便宜吃了大亏,最后网站不仅没带来客户,反而成了累赘。今天咱们不整那些虚头巴脑的专业术语,就…

发布时间:2026/7/11 1:53:26
河北网站建设与制作:别光看报价,这3个坑踩了真肉疼

河北网站建设与制作:别光看报价,这3个坑踩了真肉疼

石家庄的冬天风大,吹得人脑子清醒,但也容易让人在做决策时犯迷糊。前两天跟个做建材的老哥喝茶,他愁眉苦脸地说花了两万多做个官网,结果客户问一句“你们在河北哪”,他愣是答不上来,因为网站里连个具体的地址和联系电话都找不到,光有个“联系我们”的空白框。这事儿挺典…

发布时间:2026/7/11 1:53:20
LangChain框架深度解析:LLM时代的可编程运行时环境

LangChain框架深度解析:LLM时代的可编程运行时环境

1. LangChain 框架:不是“又一个Python库”,而是LLM时代的操作系统内核我第一次在2023年6月把LangChain跑通时,心里想的不是“哦,又一个调大模型的工具”,而是“这玩意儿,像极了当年刚接触Linux内核模块时的…

发布时间:2026/7/11 1:53:55
别瞎找了,山东省建设招标信息网站这才是真金白银的源头

别瞎找了,山东省建设招标信息网站这才是真金白银的源头

说句掏心窝子的话,干工程这行,最怕啥?怕没活干,更怕找到的全是“假活”。前阵子有个兄弟,听信中介忽悠,花大价钱买了个什么内部渠道。结果呢?全是些过期的、甚至根本不存在的项目。气得他差点把手机摔了,问我咋办。我直接给他甩了一个链接,让他自己去搜。你猜怎么着?…

发布时间:2026/7/11 2:51:16
窗帘网站建设策划书:别整虚的,这套方案才救命

窗帘网站建设策划书:别整虚的,这套方案才救命

内容:做窗帘生意的老板们,听我一句劝。别再去搞那些花里胡哨的官网了。真的,没人看。你花几万块请人做的“大气磅礴”首页,客户打开超过三秒就关掉。为啥?因为太装。客户只想看布料质感,想看遮光度,想看你家安装师傅靠不靠谱。你给他整一堆企业愿景、企业文化,那是给投资…

发布时间:2026/7/11 2:49:58
城阳区城市规划建设局网站:2024年最新政策解读与便民办事指南

城阳区城市规划建设局网站:2024年最新政策解读与便民办事指南

城阳区城市规划建设局网站最近好多朋友问我,想在城阳买房或者搞点小装修,到底该去哪查官方信息。别再去那些乱七八糟的论坛猜了,直接去城阳区城市规划建设局网站看最靠谱。这地方虽然看着严肃,但里面藏着不少对咱们老百姓有用的干货。很多人觉得政府网站就是用来挂文件的,…

发布时间:2026/7/11 2:49:20
别被忽悠了!高校档案室网站建设那些坑,过来人含泪总结

别被忽悠了!高校档案室网站建设那些坑,过来人含泪总结

很多高校后勤或者档案处的领导,一听到要建网站,第一反应就是找外包公司报价。结果呢?报价从几万到几十万不等,最后交出来的东西要么丑得没法看,要么功能全都不对路。今天我不讲那些虚头巴脑的理论,就聊聊我在这一行摸爬滚打这些年,看到的真实案例和那些让人头秃的坑。先…

发布时间:2026/7/11 2:48:49
个人相册网站建设报告:别被模板骗了,自己搭才真香

个人相册网站建设报告:别被模板骗了,自己搭才真香

说实话,一开始我想着随便找个现成的云服务,传上传下图多省事。结果呢?上传一张高清原图,加载半天,缩略图还糊得像马赛克,看得我血压直飙。那一刻我彻底清醒了:这种把照片当数据存的地方,根本没法承载记忆的重量。于是,我决定自己动手,搞一个完全属于自己的个人相册网…

发布时间:2026/7/11 2:48:26
搞懂这些网站建设专属名词,别再被忽悠交智商税了

搞懂这些网站建设专属名词,别再被忽悠交智商税了

本文关键词:网站建设专属名词很多人一听到做网站,脑子里全是代码和服务器,觉得高深莫测。其实,只要搞懂这几个核心概念,你也能成为半个专家。这篇内容就是为了解决你在沟通时听不懂术语、被服务商随意报价的痛点。咱们先说最基础的“域名”。这就像你在互联网上的门牌号。…

发布时间:2026/7/11 2:47:32
别瞎找了!稼禾建设集团网站到底长啥样?扒开内幕看真相

别瞎找了!稼禾建设集团网站到底长啥样?扒开内幕看真相

你是不是也在找那个传说中的稼禾建设集团网站?我也找过。真的,那种感觉太难受了。就像你在深夜饿得前胸贴后背,打开冰箱却发现里面空空如也。你想知道他们家到底接没接过什么大项目,想知道他们的资质有多硬,想看看那些高楼大厦背后有没有他们的名字。结果呢?搜出来的全是…

发布时间:2026/7/11 0:00:38
温江区建设局网站怎么查进度?新手避坑指南与真实操作细节

温江区建设局网站怎么查进度?新手避坑指南与真实操作细节

最近好多朋友私信我, 问温江区那边搞装修或者买房, 到底怎么查审批进度。 很多人第一反应就是去现场排队, 其实现在都数字化了, 大部分业务都能在温江区建设局网站搞定。 但这里头水挺深, 稍微不注意就容易踩坑。 今天我就结合这几年在温江跑工地的经验, 给大家捋一捋, …

发布时间:2026/7/11 0:00:41
上海最好网站建设公司怎么选?老站长掏心窝子的避坑指南

上海最好网站建设公司怎么选?老站长掏心窝子的避坑指南

本文关键词:上海最好网站建设公司说实话,在这个行当摸爬滚打这么多年,见过太多老板被坑得底裤都不剩。昨天有个做建材的朋友找我喝茶,一脸愁容。他说之前找了一家所谓的“高端”团队,花了八万块,结果做出来的网站跟十年前的模板似的,连个手机适配都搞不定。他问我,到底…

发布时间:2026/7/11 0:01:45
做个人信息管理网站建设,这3个坑我踩了七年,你千万别再跳

做个人信息管理网站建设,这3个坑我踩了七年,你千万别再跳

做了七年建站,见过太多老板花大钱买模板,最后发现根本没法用。特别是现在大家都讲究数据隐私,想搞个个人信息管理网站建设,结果越搞越乱。这篇文不整虚的,直接说怎么把这套系统落地,让你自己的数据真正听话。先说个真事儿。去年有个做自由职业的朋友找我,他说想建个网站…

发布时间:2026/7/10 15:55:18
杨凌规划建设局网站怎么查最新规划?老杨说点大实话

杨凌规划建设局网站怎么查最新规划?老杨说点大实话

杨凌规划建设局网站你是不是也遇到过这种情况?想看看自家旁边要修路,还是建公园。翻遍了手机,搜出来的全是几年前的旧闻。或者好不容易找到个入口,页面加载慢得像蜗牛。心里那个急啊,真的,懂的人都懂。我是老杨,在杨凌混了十几年,跟这行打交道不少。今天不跟你扯那些虚…

发布时间:2026/7/9 15:43:42
杭州网站建设 seo 避坑指南:别被那些只会套模板的忽悠了

杭州网站建设 seo 避坑指南:别被那些只会套模板的忽悠了

昨天半夜两点,我还在改一个客户的后台,咖啡都凉透了。这哥们儿是做机械配件的,在余杭那边,找的前一家公司花了八千块做了个站,结果上线一个月,百度连个影子都没有。他急得给我打电话,说是不是被黑了。我让他把链接发过来,打开一看,好家伙,那代码乱得跟刚被猫抓过的毛…

发布时间:2026/7/9 16:54:10
建站7年才悟出的网站建设思路,别再花冤枉钱了

建站7年才悟出的网站建设思路,别再花冤枉钱了

做建站这行整整7年了。 见过太多老板花几万块, 最后做出来的网站像个垃圾场。 今天不整那些虚头巴脑的术语。 就聊聊我踩过的坑, 和真正能落地的网站建设思路。很多老板一上来就问: “多少钱能做个高大上的?” 我通常直接劝退。 因为方向错了, 你给再多钱也是打水漂。 真正…

发布时间:2026/7/9 15:45:02
合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

做企业官网最怕什么?不是技术难,是交钱后没人管,或者上线一个月连个访客都没有。这篇东西不扯虚的,直接告诉你怎么在合肥找个靠谱的团队,或者自己怎么避坑。先说个大实话,我在合肥混这行五年多,见过太多老板因为贪便宜吃大亏。你去百度搜“合肥的网站建设”,出来一堆报…

发布时间:2026/7/10 18:05:06
别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

做这行久了,心里就憋着一股火。每次看到客户拿着网上抄来的模板,问我能不能做成“苹果官网”那种效果。我就想笑。真的,太想笑了。今天咱不整那些虚头巴脑的专业术语。就聊聊德州网站建设里,那些让人头秃的真实事儿。我有个客户,老张。他是做德州本地建材的,实在人。当初…

发布时间:2026/7/10 16:48:50