6=440Hz,#6=440*1.059463=466.2Hz,7=440*1.059463*1.059463=493.9Hz
#5=440÷1.059463=415.3Hz
5=440÷1.059463÷1.059463=392Hz
相邻半音阶的关系为1.059463倍,只要知道"A"=440Hz,即可算出其余半音阶的频率,比A高的用"*",比A低的用"÷"
1.059463=12√2(即2开12次根)
440Hz为钢琴中央C组的A(即"6"音)
ok
这是本人一个产品中的音乐单元,很完整,供爱好者参考.
ORG 0000H
AJMP CSH 主程序进入点
ORG 000BH
LJMP TIM0 定时中断T0入口
;
;**********
;* 初始化 *
;**********
;
ORG 0020H
CSH: MOV R0,#7FH 内部RAM(00H~7FH)清零
CSH1: MOV @R0,#00H
DJNZ R0,CSH1
MOV SP,#60H 堆栈60H~7FH,【使用89C51】
MOV TMOD,#01H TMOD=11H,T0作16位计数器(4M晶振)
CLR TCON.4 T0禁止动作
SETB IE.1 T0允许中断
SETB PT0 T0中断优先
SETB IE.7 系统允许中断
;
;**********
;* 主程序 *
;**********
;
MAIN: MOV 5CH,#00 取简码谱指针
LCALL MUSIC
MOV 5CH,#49 取简码谱指针
LCALL MUSIC
MOV 5CH,#66 取简码谱指针
LCALL MUSIC
MOV 5CH,#100 取简码谱指针
LCALL MUSIC
MOV 5CH,#108 取简码谱指针
LCALL MUSIC
MOV 5CH,#136 取简码谱指针
LCALL MUSIC
MOV 5CH,#174 取简码谱指针
LCALL MUSIC
AJMP MAIN
;
;*************************
;* 音乐子程序 MUSIC *
;* 入口: 5CH←简码谱指针 *
;*************************
;
MUSIC: MOV A,5CH 简码谱指针装入A
MOV DPTR,#TABLE 至TABLE取简码
MOVC A,@A+DPTR
MOV R2,A 取到的简码暂存于R2
JZ END1 是否取到00(结束码)?
ANL A,#0FH 不是,则取低四位(节拍码)
MOV R6,A 将节拍码存入R6
MOV A,R2 将取到的简码再装入R2
SWAP A 高低四位交换
ANL A,#0FH 取低四位(音符码)
JNZ SING 取到的音符码是否为0?
CLR TR0 是,则不发音
AJMP D1 跳到D1
;
SING: DEC A 取到的音符码减1
MOV 4BH,A 存入(4BH)
RL A 乘2
MOV DPTR,#TABLE1 至TABLE1取相对的高字节计数值
MOVC A,@A+DPTR
MOV TH0,A 取到的高字节存入TH0
MOV 4AH,A 取到的高字节存入(4AH)
MOV A,4BH 再装入取到的音符码
RL A 乘2
INC A 加1
MOVC A,@A+DPTR 至TABLE1取相对的低位
MOV TL0,A 取到的低字节存入TL0
MOV 49H,A 取到的低字节存入(49H)
SETB TR0 启动TIMER0
D1: CALL DELAY 基本单位时间1/4拍187毫秒
INC 5CH 取简码谱指针加1
AJMP MUSIC 取下一个码
DD1: RET
;
STOP: NOP
; JB P3.7,STOP1 在软件延时中掺插做其他动作
; SETB P2.7 P2.7←"1"
NOP
NOP
STOP0: NOP
RET
STOP1: NOP
; JB P3.6,STOP0 在软件延时中掺插做其他动作
; SETB P2.6 P2.6←"1"
RET
;
END1: CLR TR0 停止TIMER0
RET
;
TIM0: PUSH A 将A的值暂存于堆栈区
PUSH PSW 将PSW的值暂存于堆栈区
MOV TL0,49H 重设计数值
MOV TH0,4AH
CPL P1.7 将输出端P1.1取反(P1.7接至无源蜂鸣器)
POP PSW 至堆栈区取回PSW的值
POP A 至堆栈区取回A的值
RETI 返回主程序
;
DELAY: MOV R7,#02 187毫秒
D2: MOV R4,#24
D3: MOV R3,#48
DJNZ R3,$
ACALL STOP 在软件延时中掺插做其他动作
DJNZ R4,D3
DJNZ R7,D2
DJNZ R6,DELAY 决定节拍
RET
; .5 .6 .7 1
TABLE1: DW 65111,65150,65199,65217 4M晶振时的定时中断时间常数
; 2 3 4 5 若采用其它频率,则要根据乐音的
DW 65252,65283,65297,65323 频率计算,例中央C的A音为440Hz,
; 6 7 1` 2` 440Hz=2.273ms,把T0设置为2.273ms
DW 65347,65367,65377,65394 中断即可发出A音.
; 3` 4` #6
DW 65410,65417,65357
;
;***************************************************************
;* 音符代码 1 2 3 4 5 6 7 8 9 A B C D E F 0 *
;* 音高 .5 .6 .7 1 2 3 4 5 6 7 1` 2` 3` 4` 5` 休止 *
;*-------------------------------------------------------------*
;* 节拍代码 1 2 3 4 5 6 8 A C F *
;* 节拍 1/4 2/4 3/4 1 1(1/4) 1(1/2) 2 2(1/2) 3 3(3/4) *
;*-------------------------------------------------------------*
;* 结束代码 00H *
;*-------------------------------------------------------------*
;* 乐谱格式 每字节的高字节为音符代码,低字节为节拍代码 *
;*-------------------------------------------------------------*
;* 例子: ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ *
;* DB A4H,02H,84H,02H,A4H,02H,84H,02H,D8H,04H,00H *
;* ⑴ A→唱"7" , 4→ 1 拍 *
;* ⑵ 0→休止 , 2→2/4拍 *
;* ⑶ 8→唱"5" , 4→ 1 拍 *
;* ⑷ 0→休止 , 2→2/4拍 *
;* ⑸ A→唱"7" , 4→ 1 拍 *
;* ⑹ 0→休止 , 2→2/4拍 *
;* ⑺ 8→唱"5" , 4→ 1 拍 *
;* ⑻ 0→休止 , 2→2/4拍 *
;* ⑼ D→唱"3`", 8→ 2 拍 *
;* ⑽ 0→休止 , 4→ 1 拍 *
;* ⑾ 00H→乐曲结束 *
;***************************************************************
;
TABLE:
;【00】
DB 98H,02H,B4H,01H,94H,01H,68H,02H,94H,01H
DB 64H,01H,48H,02H,64H,01H,44H,01H,28H,02H
DB 64H,01H,94H,01H,B4H,01H,94H,01H,B4H,01H
DB 94H,01H,B4H,01H,D4H,01H,94H,01H,64H,01H
DB 44H,01H,64H,01H,98H,02H,01H,01H,00H
;【49】
DB A4H,02H,84H,02H,A4H,02H,84H,02H,D8H,04H
DB C8H,01H,01H,01H,01H,01H,00H
;【66】
DB 42H,52H,62H,72H,82H,92H,A2H,B2H,42H,52H
DB 62H,72H,82H,92H,A2H,B2H,00H
;【100】
DB 61H,81H,B1H,D1H,B1H,81H,61H,00H
;【108】
DB 11H,41H,61H,81H,61H,41H,11H,00H
;【136】
DB 24H,04H,34H,04H,44H,04H,54H,04H,64H,04H,44H,04H,64H,04H,94H,04H
DB 83H,01H,93H,01H,83H,01H,63H,01H,46H,02H,66H,02H
DB 91H,21H,91H,21H,91H,21H,91H,21H,94H,00H
;【174】
DB 94H,04H,A4H,04H,B4H,04H,C4H,04H,D4H,04H
DB B4H,04H,D8H,08H,C4H,04H,F4H,04H,CCH,00H
;
END
单片机编音乐程序
- 单片机(614606)
- 音乐程序(10708)
相关推荐
单片机怎么写入程序并烧录程序?快收藏
单片机是一个微型的控制中心,相当于我们的电脑主机,而没有烧录的单片机是没有任何功能的,那么如何把程序写进深圳单片机。下次跟安玛科技小编一起来看看。 首先你需要写一个好的程序。不同的单片机使用不
2023-05-24 18:03:062274
基于51单片机的播放音乐实验设计资料源程序文件
基于51单片机的播放音乐实验设计资料源程序文件
经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这
样。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴
2023-04-27 15:06:250
基于51单片机的单片机播放音乐实验设计资料源程序
经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这
样。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴
趣而又不知其解的朋友能有所启迪。
一般说来
2023-04-26 15:38:170
单片机里的程序是如何运行?
我们想要理解单片机是如何运行程序的,我们首先需要了解单片机的组成,我们这里以80C51单片机为例来理解程序在单片机中是如何运行的。
2023-02-17 10:47:571944
关于单片机程序的执行过程
我们想要理解单片机是如何运行程序的,我们首先需要了解单片机的组成,我们这里以80C51单片机为例来理解程序在单片机中是如何运行的。
2022-10-12 15:02:103180
单片机音乐程序设计(含源程序代码)
单片机音乐程序设计(含源程序代码)利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。 单片机的基本发音
2009-05-15 23:27:00
单片机中级项目12丨蜂鸣器音乐之八月桂花
] C51音乐程序(八月桂花) [功能] 通过单片机演奏音乐 /********************************************************...
2021-11-22 09:36:099
单片机音乐演奏(STC89C51)
/************************************************************************ [文件名] C51音乐程序(八月桂花) [功能] 通过单片机演奏音乐 接线说明:参考蜂鸣器实验接线 /*************************************
2021-11-21 21:06:059
基于51单片机的音乐播放器
基于51单片机的音乐播放器音乐播放器摘要1、引言2、总体设计方案2.1、设计思路2.2、方案确立2.3、设计原理分析2.4、音乐播放器控制电路设计三、程序代码摘要本次设计的题目是基于STC89C52
2021-11-21 11:21:03101
单片机应用系统设计技术——播放音乐
程序驱动单片机工作。二、实验内容一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器
2021-11-16 16:36:020
单片机开发小程序
如何使用单片机开发小程序单片机一般都是通过烧写hex或是bin文件来进行程序升级,这个方法是在8、16、32位单片机上常用的更新程序的方法。这里实现单片机小程序的方法是通过在单片机上移植脚本来实现
2021-11-13 12:36:0210
基于51单片机的音乐盒设计
一.硬件方案本设计以51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制
2021-11-13 09:51:0620
基于单片机的音乐播放器的设计
设计简介:本设计是基于单片机的音乐播放器,主要实现以下功能:可实现LCD12864显示歌曲的名字和时间以及歌曲序号; 可实现通过语音模块控制歌曲的播放以及声音的大小; 可实现通过按键控制音乐的播放
2021-11-12 16:51:0028
单片机按键使用程序 (51单片机)
单片机独立按键使用程序 (51单片机)独立按键是单片机中很重要的一个器件,在这篇文章里,通过这个用独立按键控制LED灯的小程序来介绍独立按键开关的使用。...
2021-11-11 18:36:0291
基于51单片机的音乐播放器音乐盒仿真原理图方案设计
硬件电路设计(下方附文件)设计框图:原理图:仿真图软件程序设计单片机发声概述一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐振频率。单片机演奏的音乐基本都是单音
2021-11-04 17:21:013
单片机音乐程序的设计原理解析资料下载
电子发烧友网为你提供单片机音乐程序的设计原理解析资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
2021-04-10 08:55:519
使用51单片机实现音乐播放的程序资料概述
利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。下面提供2个列子,大家根据 需要自行选择
2020-06-21 11:04:508150
使用51单片机实现音乐盒的设计论文
本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成
2020-06-16 17:40:4799
使用单片机实现按键控制定时器选播多段音乐的程序和仿真资料免费下载
本文档的主要内容详细介绍的是使用单片机实现按键控制定时器选播多段音乐的程序和仿真资料免费下载。
2020-06-11 17:30:3115
使用单片机实现音乐程序设计的详细资料说明
利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。
2020-04-06 12:37:002230
使用单片机设计音乐程序的资料说明
利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。
2019-10-21 08:00:000
51单片机汇编语言教程之音乐程序设计的详细资料说明
利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。单片机的基本发音实验
2019-06-05 16:49:454
单片机音乐程序的设计原理解析
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。
2019-05-20 16:08:483236
使用单片机进行音乐盒的设计资料合集免费下载
音乐编码----生日快乐歌,基于c51单片机编写简单蜂鸣器音乐程序的方法,乐普编辑应用程序,谱曲软件,音乐乐谱提取软件,制作51单片机音乐盒的程序资料合集免费下载。
2019-05-05 08:00:0049
51单片机的五个汇编音乐程序资料免费下载
本文档的主要内容详细介绍的是51单片机的五个汇编音乐程序资料免费下载。包括了:1.两只老虎,2.祝你平安,3.生日歌 ,4.八月桂花香,5.兰花草
2019-03-06 11:41:2820
使用C51单片机进行演奏生日快乐音乐程序的详细资料免费下载
本文档的主要内容详细介绍的是如何使用C51单片机进行演奏生日快乐音乐程序的详细资料免费下载,利用中级定时器以及蜂鸣器设计。
2018-12-17 08:00:0020
基于Proteus单片机的音乐演奏实现系统
本文提出的一种基于 Proteus 的单片机演奏音乐的方法,非常简单实用,且该方法基于软件来实现的,所以成本非常低,调试方便,效果也很不错,适合于爱好音乐的单片机学习者。 单片机系统的设计分两大部分:硬件设计部分和软件设计部分。
2018-04-08 09:27:004676
如何使用Keil3开发51单片机程序
51单片机是比较简单也是使用比较广泛的一种,初学单片机的朋友51单片机是必学的一门课程。可能很多朋友刚开始不知道怎么创建一个工程,然后写程序,最后再将写好的程序烧写到51单片机开发板上,下面小编将带领大家一步步开启Keil3开发51单片机程序之旅吧!
2017-11-26 08:38:026521
基于单片机的音乐盒设计
本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。
2016-01-13 15:38:2242
单片机学习知识点全攻略(完结篇)
导语:本期是本次单片机学习知识点的最终回,我们会列出前三回一起方便读者回顾学习。本次主要知识点为单片机串口通信、接口和实际案例实践——单片机音乐程序设计的学习。单
2012-06-21 16:19:3628590
单片机的音乐盒设计制作(C程序)
本内容提供了单片机的 音乐盒 设计制作(C程序)的详细制作过程,当您对单片机知识有一定的基础,看了这篇文章以后,也可以通过一片单片机外加几个常用的电子元件,制作一个属于自己
2011-08-17 11:28:111082
用PIC单片机实现音乐播放的实例程序
PIC单片机实现音乐播放的实例程序********************************* PIC单片机实现音乐播放 *********************************
2009-01-16 11:33:112116
评论
查看更多