为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 51单片机唱歌C51音乐程序[整理]

51单片机唱歌C51音乐程序[整理]

2021-08-23 1页 doc 9KB 26阅读

用户头像 个人认证

is_090281

常年从事设计、施工及相关教育工作,一线工作经验丰富。

举报
51单片机唱歌C51音乐程序[整理]51单片机唱歌C51音乐程序[整理]51单片机唱歌C51音乐程序,include,include//本例采用89C52,晶振为11.0592MHZ//关于如何编制音乐代码,其实十分简单,各位可以看以下代码.频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;所以拿出谱子,试探编吧!unsignedcharn=0;//n为节拍常数变量unsignedcharcodemusic_tab[]={0x18,0x30,0x1C,0x10,//格式为:频率常数,节拍常数,频率常数,节拍常数,0x20,0x40,...
51单片机唱歌C51音乐程序[整理]
51单片机唱歌C51音乐程序[整理]51单片机唱歌C51音乐程序,include,include//本例采用89C52,晶振为11.0592MHZ//关于如何编制音乐代码,其实十分简单,各位可以看以下代码.频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;所以拿出谱子,试探编吧!unsignedcharn=0;//n为节拍常数变量unsignedcharcodemusic_tab[]={0x18,0x30,0x1C,0x10,//格式为:频率常数,节拍常数,频率常数,节拍常数,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00};voidint0()interrupt1//采用中断0控制节拍{TH0=0xd8;TL0=0xef;n--;}voiddelay(unsignedcharm)//{unsignedi=3*m;while(--i);}控制频率延时voiddelayms(unsignedchara)//{豪秒延时子程序while(--a);//采用while(--a)不要采用while(a--);各位可编译一下看看汇编结果就知道了!}voidmain(){unsignedcharp,m;//m为频率常数变量unsignedchari=0;TMOD&=0x0f;TMOD=0x01;TH0=0xd8;TL0=0xef;IE=0x82;play:while(1){a:p=music_tab[i];if(p==0x00){i=0,delayms(1000);gotoplay;}//如果碰到结束符,延时1秒,回到开始再来一遍elseif(p==0xff){i=i+1;delayms(100),TR0=0;gotoa;}//若碰到休止符,延时100ms,继续取下一音符else{m=music_tab[i++],n=music_tab[i++];}//取频率常数和节拍常数TR0=1;//开定时器1while(n!=0)P1=~P1,delay(m);//等待节拍完成,通过P1口输出音频(可多声道哦!)TR0=0;//关定时器1}}
/
本文档为【51单片机唱歌C51音乐程序[整理]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索