这个程序着实花费了我好长的时间,我本身对音乐一窍不通,先是跟着girl friend学习了简谱,根据c调44拍的《千本樱》写下了下面的程序。

 #include<stdio.h>
#include<dos.h>
void mysound(unsigned int freq,int times)
{
int i;
union
{
int divisor;
char c[];
} count;
char bits;
count.divisor=/freq;
outportb(0x43,0xb6);
outportb(0x42,count.c[]);
outportb(0x42,count.c[]);
bits=inportb(0x61);
outportb(0x61,bits|);
for(i=; i<times; i++)
delay();
outport(0x61,bits&0xfc);
outportb(0x61,bits);
}
int main()
{
int freq[]= {,,,,,,,};
int song[]= {,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,, ,,,,,,,,
,,,,,,-,,
,,,,,,,,
,,,,,, ,,,,,,,,
,,,,,,-,,
,,,,,,,,
,,,,,, ,,,,
,,,-,-,-,-,
-,,-,,,
,,,,,, ,,,,
,,,-,-,-,-,,
,,,,,
,,,,, ,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,, ,,,,,,,
,,,,,,,
,,,,
,,,,,,, ,,,,,,
,,,,
,,,, };
float div[]= {,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,, ,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,, ,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,, ,,,,
,,,,,,,
,,,,,
,,,,,, ,,,,
,,,,,,,,
,,,,,
,,,,, ,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,, ,,,,,,,
,,,,,,,
,,,,
,,,,,,, ,,,,,,
,,,,
,,,, };
unsigned int f;
int times,i;
for(i=; song[]; i++)
{
if(song[i]<)
f=freq[-song[i]]/;
else if(song[i]>)
f=freq[song[i]%]*;
else if(song[i]==)
f=;
else
f=freq[song[i]];
times=/div[i];
mysound(f,times);
}
return ;
}

再附上两首简单音乐的代码:

   int song[]={   ,,,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,
,,,,, };
float div[]={ ,,,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,
,,,,, };
  int song[]= {
,,,,,,,
,,,,,
,,,,,,,
,,,,, ,,,,,
,,,,,
,,,,,,
,,,,,
,,,,,, ,,,,,
,,,,,,-,
,,-,,
,,,,,,
,,,,
,,, };
float div[]= {
,,,,,,,
,,,,,
,,,,,,,
,,,,, ,,,,,
,,,,,
,,,,,,
,,,,,
,,,,,, ,,,,,
,,,,,,,
,,,,
,,,,,,
,,,,
,,,
};

c语言乐曲演奏——《千本樱》的更多相关文章

  1. VHDL 乐曲演奏电路设计

    前言 无源蜂鸣器在直流信号下不会响,需要方波驱动.输入不同频率的方波会发出不同音调的声音,方波的幅值决定了声音的响度. 目标 乐曲发生电路在节拍(4Hz)的控制下根据乐谱产生合适的分频系数.分频器根据 ...

  2. LeCun自曝使用C语言23年之久,2年前才上手Python,还曾短暂尝试Lua!

    程序员圈子的流行风潮,过几年就怀旧风走一波. 这不,最近Twitter上刮起了一阵编程语言使用历史的风潮. 连图灵奖得主.CNN之父-- Yann LeCun 也参与进来了. 他自曝使用C语言时间最长 ...

  3. [转]MIDI常识20条

    原文链接:http://www.midifan.com/modulearticle-detailview-488.htm Keyboard杂志老资格编辑Jim Aikin在纪念MIDI诞生20的时候发 ...

  4. [日常]蒟蒻的高一生活 Week 1~3

    博主在三周前成功晋级为高中生OwO终于不再是假的HZOIer感受一波HZ的真正生活...(然而实际上级部不少监督一直没启动23333) (然而三周过去好多事情都忘了QAQ瞎写好了(逃)) Week 1 ...

  5. P2614 计算器弹琴

    题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参看洛谷P2549) 小A发现了一个计算器的另一个隐藏功能——弹琴. http://www.bilibili.com/vide ...

  6. 洛谷 P2614 计算器弹琴

    P2614 计算器弹琴 题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参看洛谷P2549) 小A发现了一个计算器的另一个隐藏功能——弹琴. http://www.bilib ...

  7. Javascript规范

    本文地址: http://www.hicss.net/evolve-your-javascript-code/ 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语 ...

  8. 引爆你的Javascript代码进化

    转自:http://www.hicss.net/evolve-your-javascript-code/ 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语言的理 ...

  9. 选择Asp for javascript,非.net。

    写Web类型的程序我使用过的服务器端语言有C#和Python.PHP稍Copy过几段代码,Asp很早听说过.C#我主要用来写Web服务比较多,C#这种强类型语言写Web不太爽,特别构造复杂的JSON数 ...

随机推荐

  1. shell定时统计Nginx下access.log的PV并发送给API保存到数据库

    1,统计PV和IP 统计当天的PV(Page View) cat access.log | sed -n /`date "+%d\/%b\/%Y"`/p |wc -l 统计某一天的 ...

  2. Elasticsearch 映射操作

    一.创建 语法: PUT /索引库名称/_mapping/类型名称 { "properties": { "字段名": { "type": 类 ...

  3. linux操作之ntsysv

    命令nysysv , 提示Command nod found  先在命令行输入 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:    ...

  4. 网站漏洞检测之WordPress 5.0.0 系统修复方案

    2019年正月刚开始,WordPress最新版本存在远程代码注入获取SHELL漏洞,该网站漏洞影响的版本是wordpress5.0.0,漏洞的产生是因为image模块导致的,因为代码里可以进行获取目录 ...

  5. Python 爬虫 (三)

    #对第一章的百度翻译封装的函数进行更新 1 from urllib import request, parse from urllib.error import HTTPError, URLError ...

  6. Educational Codeforces Round 46 (Rated for Div. 2) D. Yet Another Problem On a Subsequence

    这个题是dp, dp[i]代表以i开始的符合要求的字符串数 j是我们列举出的i之后一个字符串的开始地址,这里的C是组合数 dp[i] += C(j - i - 1, A[i]] )* dp[j]; # ...

  7. 为什么我要放弃javaScript数据结构与算法(第八章)—— 树

    之前介绍了一些顺序数据结构,介绍的第一个非顺序数据结构是散列表.本章才会学习另一种非顺序数据结构--树,它对于存储需要快速寻找的数据非常有用. 本章内容 树的相关术语 创建树数据结构 树的遍历 添加和 ...

  8. Caliburn.Micro 项目文档(翻译):Screens, Conductors and Composition

    原文地址(项目说明文档):[Documentation  Screens, Conductors and Composition]http://caliburnmicro.codeplex.com/w ...

  9. 【LG1975】[国家集训队]排队

    [LG1975][国家集训队]排队 题面 洛谷 题解 又是一个偏序问题 显然\(CDQ\) 交换操作不好弄怎么办? 可以看成两次删除两次插入 排序问题要注意一下 代码 #include <ios ...

  10. 调用bash的时候出现curl command not found

    调用bash的时候出现curl command not found 解决办法: apt-get install curl