播放歌曲程序怎么写

1.c语言怎么写插入音乐的程序

/z/q799322300.htm?push=core/z/q713324922.htm 实训项目三 乐谱播放程序设计2009-03-19 21:25 一、实训目的1、用C语言开发音乐程序,写自己喜欢或创作的音乐,使在没有乐器的情况下听到自己创作的音乐。

2、巩固文件读取和数组的有关知识。3、学习使用PC机扬声器的两个控制函数。

二、功能要求 自己创作乐曲,将其转换为计算机程序能够识别的电子文本格式,利用PC机扬声器的功能播放该乐曲。三、编程参考1、发声原理 编写音乐程序时,首先需要制作被演奏音乐的乐谱文件。

制作乐谱文件可用不同的符号标记,只要所编制的程序易于识别即可。下面是编制乐谱文件的一种规则:最高音在每个音的前面加“*”:高音,在每个音的前面加“h”;中音,在每个音的前面加“m”;低音,在每个音的前面加“l”。

“*”,“h”,“m”,“l” 与其控制的音符构成音高,决定发声频率。音高的后面是音长,可用整数或小数输入,以控制延时,但中间必须用空格分开。

乐谱文件的最前端是一个整数,表示音长基数,一般为300的倍数。乐谱文件的最末端是乐谱文件结束符“##”,以表示乐谱文件结束。

每个音的音长=音长基数*节拍数,其中,音长基数是乐谱文件的第一个字符,如上面乐谱文件为3600,每个音的音频可用一模拟频率值输入。下面是中央C及其前后4个8度中各个音符的频率值 低8度 1 2 3 4 5 6 7 131 147 165 176 196 220 247 中央C 1 2 3 4 5 6 7 262 296 329.7 349.2 392 440 493.9 高8度 1 2 3 4 5 6 7 523.3 587.3 659.3 698.5 784.0 880 987.82、PC机扬声器的两个控制函数 sound() 以指定频率打开PC机的扬声器,频率以赫兹为单位。

nosound() 关闭扬声器。3、乐谱实例 巴赫的《小步舞曲》:600 h2 4 m5 1 m6 1 m7 1 h1 1 h2 4 m5 4 m5 4 h3 4 h1 1 h2 1 h3 1 h4 1 h5 4 m5 4 m5 4 h1 4 h2 1 h1 1 m7 1 m6 1 m7 4 h1 1 m7 1 m6 1 m5 1 m4 4 m5 1 m6 1 m7 1 m5 1 m6 6 l2 1 m1 1 l7 1 l6 1 h2 4 m5 1 m6 1 m7 1 h1 1 h2 4 m5 4 m5 4 h3 4 h1 1 h2 1 h3 1 h4 1 h5 4 m5 4 m5 4 h1 4 h2 1 h1 1 m7 1 m6 1 m7 4 h1 1 m7 1 m6 1 m5 1 m6 4 m7 1 m6 1 m5 1 m4 1 m5 10 ## 四、拓展训练1、制作选曲菜单,使其可以播放多首乐曲;2、修改某些参数,改变乐曲播放速度。

源程序#include#include#include void main(int argc,char *argv[]) { FILE *fp; int rate; char sound_high[3]; int sound_long; register int i=0,j; int sign=0; float str[200][2]; if(argc!=2) /*命令行参数个数不正确*/ { printf("Parameters Errors!\n"); exit(1); } if((fp=fopen(argv[1],"r"))==NULL) /*文件打开失败*/ { printf("Open file music.doc Errors!\n"); exit(1); } fscanf(fp,"%d",&rate);/*读取音长基数的值*/ while(!feof(fp)&&!sign) /*文件没有结束并且数据还是乐谱*/ { fscanf(fp,"%s%d",sound_high,&sound_long); /*得到音频,音长的数值*/ str[i][1]=rate*sound_long; /*音长=音长基数*节拍数*/ switch(sound_high[0]) { case'*': /*最高音*/ switch(sound_high[1]) /*确定发声频率*/ { case'1':str[i++][0]=1046.5; break; case'2':str[i++][0]=1174.7; break; case'3':str[i++][0]=1318.5; break; case'4':str[i++][0]=1396.9; break; case'5':str[i++][0]=1568; break; case'6':str[i++][0]=1760; break; case'7':str[i++][0]=1975.5; break; default:printf("\nErrors in music.doc\n"); exit(1); } break; case'h': /*高音*/ switch(sound_high[1]) { case'1':str[i++][0]=523.3; break; case'2':str[i++][0]=587.3; break; case'3':str[i++][0]=659.3; break; case'4':str[i++][0]=698.5; break; case'5':str[i++][0]=784.0; break; case'6':str[i++][0]=880; break; case'7':str[i++][0]=987.8; break; default:printf("\nErrors in music.doc\n"); exit(1); } break; case'm': /*中音*/ switch(sound_high[1]) { case'1':str[i++][0]=262; break; case'2':str[i++][0]=296; break; case'3':str[i++][0]=329.6; break; case'4':str[i++][0]=349.2; break; case'5':str[i++][0]=392; break; case'6':str[i++][0]=440; break; case'7':str[i++][0]=493.9; break; default:printf("\nErrors in music.doc\n"); exit(1); } break; case'l': /*低音*/ switch(sound_high[1]) { case'1':str[i++][0]=131; break; case'2':str[i++][0]=147; break; case'3':str[i++][0]=165; break; case'4':str[i++][0]=176; break; case'5':str[i++][0]=196; break; case'6':str[i++][0]=220; break; case'7':str[i++][0]=247; break; default:printf("\nErrors in music.doc\n"); exit(1); } break; case'#':if(sound_high[1]=='#')sign=1; break; default:printf("\nErrors in music.doc\n"); exit(1); } } for(j=0;j{ sound(str[j][0]); /*按频率发出歌曲的音调*/ delay(str[j][1]); } nosound(); /*关闭扬声器*/ }。

2.52单片机能播放国歌和随便一首歌的程序怎么写

我这有自己做的一个唱两只老虎的,只有音调,用的无源蜂鸣器

// 蜂鸣器唱两只老虎

#include<reg51.h>

#include<intrins.h>

sbit p=P2^3;

int t;

void js() interrupt 1

{

TH0=(65636-500)/256;

TL0=(65636-500)%256;

t++;

}

void fm(int a)

{

int c;

p=1;

c=10-a;

TMOD=1;

TH0=(65636-500)/256;

TL0=(65636-500)%256;

EA=1;

ET0=1;

TR0=1;

while(1)

{

if(t==12*50)break;

if(a==0)continue;

if(t%c==0)p=0;

if(t%c>0)p=1;

}

t=0;

}

void main()

{

int c=0,i=0,k,

code unsigned char b[]={1,2,3,1,1,2,3,1,3,4,5,0,3,4,5,0,5,6,5,4,3,3,1,1,5,6,5,4,3,1,0,3,-1,1,0,3,-1,1,0};

while(1)

{

if(c==40)c=0;

k=(c<17||c>29);

switch(k){

case(1): fm (b[c]),fm (b[c]);break;

case(0): fm (b[c]);

}

p=1;

c++;

}

}

3.关于vbs编写播放音乐的程序

set hook=createobject("wmplayer.ocx")

hook.url=".cn/shengrikuaile.wma" '改成你要播放文件的地址,本地电脑和网络的都行

hook.Controls.play

do until hook.playState=3

wscript.sleep 1000

loop

wscript.sleep hook.currentMedia.duration *1000

wscript.sleep 1000

估计要等30s,在网上下载了后才放的

4.dw如何实现单击按钮实现播放歌曲功能代码怎么写

DW只是定位数据的一个伪指令,本身是无法实现单击按钮播放歌曲的,只能将一些播放歌曲的相关数据比如频率、节奏、旋律等定义出来,举例如下:NUM EQU 30H UP EQU P3.6 DN EQU P3.7 ORG 0000H AJMP START ;Fosc=12MHz ORG 000BH ;T0 中断入口地址 AJMP INT_T0 ORG 001BH ;T1 中断入口地址 AJMP INT_T1 START:MOV SP, #60H MOV TMOD, #11H MOV IE, #8AH MOV IP, #08H ;T1中断优先于T0中断 MOV TH1, #3CH MOV TL1, #0BH ;以上为系统初始化,T=60ms W1: ;第一首《我和你》MOV P2, #00000110B ;显示1,00000110 MOV R5, #11111001B MOV 52H, #HIGH TABLE10 MOV 53H, #LOW TABLE10 MOV NUM,#0 music: MOV R3,#00H ;音乐解码器 NEXT20:MOV A,P3 ORL A,#0C0H MOV P3,A MOV A,P3 CPL A ANL A,#0C0H JZ NEXT21 LJMP W1 NEXT21: MOV A, R3 MOV DPH, 52H MOV DPL, 53H MOVC A, @A+DPTR MOV R2, A JZ STOP ANL A, #0FH MOV R1, A MOV A, R2 SWAP A ANL A, #0FH JNZ SING CLR TR0 JMP W11;---------------------------------------------------------- SING:DEC A MOV 22H, A RL A MOV DPTR, #TABLE00 MOVC A, @A+DPTR MOV TH0, A MOV 21H, A MOV A, 22H RL A INC A MOVC A, @A+DPTR MOV TL0, A MOV 20H, A SETB TR0 SETB TR1 W11:LCALL DELAY3 INC R3 LJMP NEXT20;----------------------------------------------------------- STOP:CLR TR0 CLR TR1 ljmp start;***************************************************;定时器0中断子程序;*************************************************** INT_T0: CLR TR0 MOV TL0, 20H MOV TH0, 21H CPL P3.0 SETB TR0 RETI;***************************************************;定时器1中断子程序;*************************************************** INT_T1: CLR TR1 CLR TR0 LCALL KEY_E MOV TH1, #3CH MOV TL1, #0BH DJNZ 60H, OUT MOV 60H, #20 OUT:SETB TR1 RETI KEY_E:JB P3.1, L2 ;中断键盘检测 LCALL DELAY2 ;消除抖动 JB P3.1, L2 ;如果是高电平就跳到L2 JNB P3.1, $ ;如果仍然是低电平就执行中断程序 MOV P2, #0111100B ;让LED显示E,01111001 L3: JB P3.1, $ ;检测低电平,直到低电平时才跳出该指令 LCALL DELAY2 JB P3.1, L3 JNB P3.1, $ ;如果再来一个高电平才跳出中断 MOV P2,R5 L2: SETB TR0 RET GETKEY: ;读A B C D键盘子程序 SA: JB P1.0, SB ;读A,是高电平表示没有按键,跳转到SB LCALL DELAY2 JB P1.0, SA JNB P1.0, $ MOV P2, #01110111B ;显示A,01110111 MOV R5, #10001000B MOV A, #0FFH MOV B, #0AH RET SB: JB P1.1, C11 ;读B,是高电平表示没有按键按下,跳转到C11 LCALL DELAY2 JB P1.1, SB JNB P1.1, $ MOV P2, #01111100B ;显示B,01111100 MOV R5, #10000011B MOV A, #0FFH MOV B, #0BH RET C11:JB P1.2, ED1 ;读C LCALL DELAY2 JB P1.2, C11 JNB P1.2, $ MOV P2, #00111001B ;显示C,00111001 MOV R5, #11000110B MOV A, #0FFH MOV B, #0CH RET ED1:JB P1.3, L0 ;读D LCALL DELAY2 JB P1.3, ED1 JNB P1.3, $ MOV P2, #01011110B ;显示D,01011110 MOV R5, #10100001B MOV A, #0FFH MOV B, #0DH L0: JB UP,L01 LCALL DELAY2 JB UP,L01 JNB UP,$ MOV A,#0FFH MOV B,#0EH RET L01:JB DN,L02 LCALL DELAY2 JB DN,L02 JNB DN,$ MOV A,#0FFH MOV B,#0FH L02:RET GETWORD: ;读音乐序号子程序 S1: JB P1.4, S2 ;读1键 LCALL DELAY2 JB P1.4, S1 JNB P1.4, $ MOV P2, #00000110B ;显示1 MOV R5, #11111001B MOV A, #0FFH MOV B, #00H RET S2: JB P1.5, S3 ;读2键 LCALL DELAY2 JB P1.5, S2 JNB P1.5, $ MOV P2, #01011011B ;显示2 MOV R5, #10100100B MOV A, #0FFH MOV B, #01H RET S3: JB P1.6,S4 ;读3键 LCALL DELAY2 JB P1.6,S3 JNB P1.6,$ MOV P2,#01001111B ;显示3 MOV R5,#10110000B MOV A,#0FFH MOV B,#02H RET S4: JB P1.7, L1 ;读4键 LCALL DELAY2 JB P1.7, S1 JNB P1.7, $ MOV P2, #01100110B ;显示4 MOV R5, #10011001B MOV A, #0FFH MOV B, #03H L1: RET DELAY: ;延时子程序 PUSH 0 ;保存现场 PUSH 1 MOV 0, #0H DELAY1: MOV 1, #0H DJNZ 1, $ DJNZ 0, DELAY1 POP 1 ;恢复现场 POP 0 RET DELAY2: MOV 41H, #100 ;延时子程序2 F1: MOV 42H, #250 DJNZ 42H, $ DJNZ 41H, F1 RET DELAY3: ;延时子程序3 MOV R7, #2 W22: MOV R4, #125 W33: MOV R0, 248 DJNZ R0, $ DJNZ R4, W33 DJNZ R7, W22 DJNZ R1, DELAY3 RET TABLE00: ;频率表 DW 64260,64400,64524,64580 ;简码值 低音5, 低音6, 低音7,1 DW 64684,64777,64820,64898 ; 简码值 2,3,4,5 DW 64968,65030,65058,65110 ; 简码值 6,7,高音1,高音 DW 65157,65178,65217 ;简码值 高音3,高音4,高音5;第一首《我和你》TABLE10: DB 64H,82H,42H,48H DB 54H,64H,18H DB 44H,54H,64H,84H DB 5CH 。

播放歌曲程序怎么写

转载请注明出处育才学习网 » 播放歌曲程序怎么写

知识

二兄弟分家书怎么写

阅读(235)

本文主要为您介绍二兄弟分家书怎么写,内容包括2兄弟分家协议怎么写,分家书该怎么写,怎样写分家书。分家协议书 xxx、xxx弟兄二人均已经成年,准备分家另过独立生活,现村里给新批房基地x间和老宅北屋正房x间的财产分配,为划清产权,避免

知识

结婚过礼礼书怎么写

阅读(266)

本文主要为您介绍结婚过礼礼书怎么写,内容包括结婚,男女双方礼仪书写礼书,启书,名书,厨书的书写格式,结婚礼金本怎么写,结婚过礼红包如何写。请期 请期为婚姻六礼之一,俗称“送日头”或称“提日”。即由男家择定结婚佳期,用红笺书写男女生庚,

知识

天文学宇宙读后感怎么写

阅读(248)

本文主要为您介绍天文学宇宙读后感怎么写,内容包括天文小百科读后感怎么写,星系天文学读后感,科学探索者读后感天文学怎么写。读了《宇宙知识小百科》这本书,我深受启发。这本书讲了日新月异的科技,趣味无穷的体育,奇妙的植物世界,形形色色的昆

知识

选题依据和意义怎么写

阅读(207)

本文主要为您介绍选题依据和意义怎么写,内容包括毕业论文选题依据要怎么写选题依据是什么,毕业论文的选题依据怎么写,毕业论文的选题依据理由及意义怎么写。资料是构成论文写作的基础。在确定选题、进行设计以及必要的观察与实验之后,做好资

知识

玉米脱粒机对联怎么写

阅读(219)

本文主要为您介绍玉米脱粒机对联怎么写,内容包括给玉米脱粒机起个好听的名字,写玉米诗词歌赋与对联,玉米脱粒机电机怎么接。将玉米进行三次脱粒对湿玉米异形玉米具有较好的脱粒效果。 工作时,启动电机带动脱粒辊筒,风机转动将玉米投入进料斗,

知识

早会迟到检讨书怎么写

阅读(298)

本文主要为您介绍早会迟到检讨书怎么写,内容包括上班开早会迟到了怎么写检讨书,求写一篇关于早会迟到的检讨书,上班开早会迟到了怎么写检讨书。检讨书尊敬的XXX我已经深深的认识到了我的错误. 我的错误,来源于思想觉悟不够高.时间观念也比较

知识

格林童话的笔记四篇怎么写

阅读(235)

本文主要为您介绍格林童话的笔记四篇怎么写,内容包括格林童话的读书笔记怎么写,格林童话的读书笔记怎么写200字,读书心得写20篇写格林童话怎么写。《灰姑娘》读后感 格林的童话《灰姑娘》,被改编成电影,被改编成戏剧,以多种艺术形式继续感动着

知识

夏天的雷雨总节怎么写

阅读(218)

本文主要为您介绍夏天的雷雨总节怎么写,内容包括描写夏天的雷雨,有关夏天的古诗(描写雷雨后的),描写夏天的雷阵雨的话。“夏天来了,夏天来了!”风哥哥提着他的小花篮送来了这句话。太阳妹妹在天空中用用她那猛烈的光炙烤着大地。空气很闷热,没有

知识

公司企业主要经营思想怎么写

阅读(312)

本文主要为您介绍公司企业主要经营思想怎么写,内容包括企业经营理念怎么写,公司经营理念怎么写,公司的经营理念是什么。原发布者:向Lemon致敬公司经营理念核心价值观与企业使命企业核心价值观:本着“以人为本,共求发展”的经营理念,“服务顾客

知识

采购助理自我评价怎么写

阅读(216)

本文主要为您介绍采购助理自我评价怎么写,内容包括采购自我评价怎么写,采购文员的自我评价怎么写,采购员如何写自我评价。写简历的这一部分的时候很多求职者感到很为难,把自己拨高了,有自夸之嫌,谦虚的写,又没有特点心有不甘。就千里马个人简历

知识

学校传染病防控督导怎么写

阅读(260)

本文主要为您介绍学校传染病防控督导怎么写,内容包括医院对学校传染病管理怎么督导,医院对学校传染病管理怎么督导,疾控中心对学校传染病的指导和督导记录,应该由学校出还是疾控中心。医院对学校传染病管理督导可以从以下几个方面入手:学校

知识

家长给老师的新年语怎么写

阅读(207)

本文主要为您介绍家长给老师的新年语怎么写,内容包括家长给老师的新年祝福语,家长给老师的新年祝福语,家长怎样写给老师的元旦贺词。一曲赞歌唱不尽您的华丽的篇章,一支粉笔却写就了您的人生轨迹;三万桃李报答不了您的如山恩情,三千青丝染霜却

知识

购车贷款单位证明怎么写

阅读(212)

本文主要为您介绍购车贷款单位证明怎么写,内容包括买车贷款工作证明怎么写,买车贷款工作证明怎么写,车贷收入证明怎么写。原发布者:在线问题咨询收入证明,是我国公民在日常生产生活经营活动中,所需要的对经济收入的一种证明。提供了个人收入证

知识

毕业生意见反馈怎么写

阅读(222)

本文主要为您介绍毕业生意见反馈怎么写,内容包括大学生家长反馈意见怎么写,毕业生意见怎么写,毕业生意见怎么写。学生家长意见反馈表“尊敬的老师,您好,我对我的孩子能在贵校学习感到十分荣幸!孩子在贵校学习半年后回家,各方面都有所进步,作为家

知识

linux下怎么写go程序

阅读(202)

本文主要为您介绍linux下怎么写go程序,内容包括如何验证linux下的go语言,如何编译armlinux的go,go语言能不能编写linux程序。Go的三种安装方式Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式:Go源码安装:这是一种

知识

msp430怎么烧写程序

阅读(189)

本文主要为您介绍msp430怎么烧写程序,内容包括MSP430怎么烧写程序,MSP430可通过哪些接口进行烧写程序,如何向MSP430芯片内烧程序。仿真口JTAG,有6线接法和2线接法,再加上vcc和gnd,就是8线和4线还可以通过串口烧程序,不过第一次烧要先下载支持OA

知识

c测试程序怎么写

阅读(194)

本文主要为您介绍c测试程序怎么写,内容包括我编写了个c程序,如何编写测试程序,测试程序具体的要求吗,求教:C语言自动测试软件怎么写,编写好一个c程序如何测试呀。你好!测试程序负责给编写好的程序提供样本数据,自动收集运行结果,并根据结果作出

知识

怎么写安卓系统的程序

阅读(222)

本文主要为您介绍怎么写安卓系统的程序,内容包括android系统是用什么程序写的,安卓软件怎么写,怎样编写安卓程序。所说的Eclipse + Android SDK+ADT 集成环境是Android软件的开发环境Eclipse为开发工具,也就是开发软件

知识

把控品质程序怎么写

阅读(244)

本文主要为您介绍把控品质程序怎么写,内容包括品质管控怎么写啊,品质管控流程应该如何编写才比较直观,产品质量怎么把控。用流程图+表单的形式 5.1工作流程及内容 流 程 工作说明 责任部门 使用表单 5.1.1外购外协产品进厂后,由库管员对外购

知识

改装车外挂电脑怎么写程序

阅读(219)

本文主要为您介绍改装车外挂电脑怎么写程序,内容包括汽车的外挂电脑是什么就是换行车电脑的意思吗,怎么用电脑改装赛车,外挂电脑ECU改装和直接刷ECU那个好有什么区别求大神帮助。但最简单的办法莫过从说话的封包入手,只要把老版本的地址位置

知识

1到1000的程序怎么写

阅读(247)

本文主要为您介绍1到1000的程序怎么写,内容包括1*10*100*1000..的c语言程序怎么写,编写一个程序列出1到1000以内的数、编写一个程序,列出1到10爱问,写一个程序关于求1到1000各位数字之和为15的数。#include <stdio.h>//1*10*100*1000*10000

知识

程序怎么写不会查重

阅读(233)

本文主要为您介绍程序怎么写不会查重,内容包括论文怎么降低查重率,不看又不会写,看了又会按资料写,怎么办,论文查重程序代码也会被查我是自己写的但是有些关键字是一样的,论文怎么写才不会重复。第一步:初稿一般重复率会比较高(除非你是自己

[/e:loop]