




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机IO口播放乐曲日期:2006-2-27来源:文君阁 作者:xuwenjun字体:大 中 小 /标题:单片机IO口播放乐曲/-/源程序大公开/(c)Copyright20012002xuwenjun/AllRightsReserved/V1.00/-/标题:单片机IO口播放乐曲/版本:V1.00/文件名:xwj_lcd16.C/创建人:徐文军E-mail:/日期:02-11-5/描述:单片机利用T1中断在IO口P1.0输出乐曲/声明:/以下代码仅免费提供给学习用途,但引用或修改后必须在文件中声明出处./如用于商业用途请与作者联系.E-mail:/有问题请欢迎与我交流!/-/修改人:徐文军E-mail:/日期:02-11-5/说明:/单片机用T1中断在IO口P1.0输出乐曲(在P1.0口与VCC间接一喇叭即可听到)/1.由于输出的是方波,比较难听:-)你也可以将波形细分用DA输出正弦波/2.由于T1频繁中断,任何其他中断发生都会是乐曲打顿,只适合试验/3.优化音符编码:一个字节中包含节拍、音符、升降调,可区分数据和命令/同时人工将音符译为机器码非常容易。(格式看下面实例)/-/#include#include#defineFREQ11059200#definefreq_chn(f)255-f/24/147/256,256-f/24/147%256/音乐_编码2-存储器定义/unsignedcharcodemusic_tab1=/音符码格式:|D7|D6D5D4|D3|D2D1D0|/梁祝|变调|节拍|升降|音符|0xcb,/示例:0xcb=11001011B,即升调,4/16拍,3Mi低音0x35,0x16,0xb9,0x12,0x96,0x99,0xa5,0xbd,0x99,0x96,0x15,0x13,0x15,0x62,0x32,0x13,0xa7,0x26,0x25,0x16,0xa9,0x22,0xa3,0xa9,0x96,0x15,0x16,0x99,0xe5,0xbb,0x15,0xa7,0xaa,0x96,0x99,0xd5,0x13,0x15,0x23,0x15,0x16,0x17,0x9a,0xd6,0x15,0x16,0xb9,0x12,0x25,0x23,0x23,0x22,0x13,0x12,0x21,0x96,0x15,0x43,0xc9,0x96,0x99,0x96,0x15,0x13,0x15,0x16,0x99,0xd5,/功能码格式:|D7D6D5D4|D3D2D1D0|/|高4位=0时是功能码|根据低4位散转|0x00,/最后字节为功能码必须=0x00退出;unsignedcharcodemusic_tab2=/康定情歌0x23,0x25,0x26,0x16,0x15,0x36,0x13,0x42,0x23,0x25,0x26,0x16,0x15,0x26,0x53,0x23,0x25,0x26,0x16,0x15,0x26,0x23,0x42,0x25,0x23,0x12,0x13,0x12,0x11,0x22,0xd6,0x26,0xda,0x25,0x53,0x12,0x11,0xd6,0xad,0x23,0x12,0x13,0x12,0x11,0x22,0xd6,0x00,;unsignedcharcodemusic_tab3=/美酒加咖啡0x55,0x23,0x25,0x26,0xa9,0x22,0x73,0x45,0x25,0x26,0x23,0x22,0x21,0x23,0x72,0x52,0x23,0x45,0x43,0x22,0x21,0xa6,0x25,0x66,0xc9,0xa6,0x25,0x23,0x25,0x26,0xa9,0xf5,0x45,0x23,0x25,0x46,0xc9,0x22,0x13,0x12,0x21,0x22,0x63,0x22,0x23,0x25,0x26,0x25,0x23,0x22,0x21,0x72,0x52,0x23,0x45,0x43,0x22,0x21,0xa6,0x25,0x66,0xb9,0x12,0x23,0x25,0x22,0xa5,0xab,0x22,0x71,0x00,;unsignedcharcodemusic_tab4=/北国之春0x15,0x16,0x75,0x15,0x16,0x55,0x13,0x15,0x16,0x15,0x16,0x99,0x12,0x13,0x65,0x45,0x13,0x12,0x11,0x12,0x73,0x62,0x42,0x12,0x11,0x96,0x15,0x76,0x55,0x23,0x45,0xa9,0x22,0x53,0x12,0x13,0x65,0x52,0x22,0x42,0x21,0xa6,0xe9,0x91,0x12,0x13,0x12,0x13,0x15,0x99,0x12,/以上为过门0x20,0x23,0x23,0x23,0x63,0x22,0x23,0x23,0x22,0x41,0xa6,0x25,0x53,0x22,0x21,0xa9,0x21,0xa6,0x75,0x26,0xa9,0x21,0xa6,0xc9,0x12,0x11,0x96,0x15,0x23,0x25,0x25,0x26,0x45,0x21,0x22,0x13,0x35,0x25,0xa9,0xa6,0x25,0x23,0x22,0x71,0x52,0x25,0x45,0x13,0x15,0x13,0x12,0x21,0x41,0x22,0x43,0x45,0x23,0x25,0x26,0xa9,0x42,0x12,0x33,0x72,0x51,0x22,0x43,0x22,0x21,0xc6,0xc9,0x29,0xc6,0x45,0x23,0x23,0x53,0x25,0x26,0x25,0x13,0x12,0x21,0x62,0x42,0x23,0x25,0x55,0x26,0x25,0x23,0x45,0x26,0xa9,0x21,0x22,0x63,0x52,0x22,0x22,0x13,0x12,0x21,0xa6,0xf9,0x00,;unsignedcharcodemusic_l_tab8=0,1,2,3,4,6,8,16;/节拍延时单位unsignedcharcodemusic_freq_tab64=/音符定时器值表0xff,0xea,/0休止符freq_chn(131),/freq_chn(x/256/1do高字节/freq_chn(x%256/1do低字节freq_chn(147),/2refreq_chn(165),/3mifreq_chn(175),/4fafreq_chn(196),/5suofreq_chn(221),/6lafreq_chn(248),/7xi0xff,0xea,/0休止符freq_chn(262),/1dofreq_chn(294),/2refreq_chn(330),/3mifreq_chn(350),/4fafreq_chn(393),/5suofreq_chn(441),/6lafreq_chn(495),/7xi0xff,0xea,/0休止符freq_chn(525),/1dofreq_chn(589),/2refreq_chn(661),/3mifreq_chn(700),/4fafreq_chn(786),/5suofreq_chn(882),/6lafreq_chn(990),/7xi0xff,0xea,/0休止符freq_chn(1049),/1dofreq_chn(1178),/2refreq_chn(1322),/3mifreq_chn(1400),/4fafreq_chn(1572),/5suofreq_chn(1665),/6lafreq_chn(1869),/7xi;unsignedcharcodemusic_frequp_tab64=/升半音0xff,0xea,/0休止符freq_chn(139),/1do高字节freq_chn(156),/2refreq_chn(175),/3mifreq_chn(185),/4fafreq_chn(208),/5suofreq_chn(234),/6lafreq_chn(262),/7xi0xff,0xea,/0休止符freq_chn(278),/1dofreq_chn(312),/2refreq_chn(350),/3mifreq_chn(371),/4fafreq_chn(416),/5suofreq_chn(467),/6lafreq_chn(525),/7xi0xff,0xea,/0休止符freq_chn(556),/1dofreq_chn(624),/2refreq_chn(700),/3mifreq_chn(742),/4fafreq_chn(833),/5suofreq_chn(935),/6lafreq_chn(1049),/7xi0xff,0xea,/0休止符freq_chn(1112),/1dofreq_chn(1248),/2refreq_chn(1400),/3mifreq_chn(1484),/4fafreq_chn(1618),/5suofreq_chn(1764),/6lafreq_chn(1968),/7xi;unsignedchartemp_TH1;unsignedchartemp_TL1;/音乐_编码2-IO定义/sbitPIN_MSC=P10;/音乐输出端口/音乐_编码2-函数原型/voidmusic_delay(unsignedcharx);/音乐节拍延时voidmusic_play(unsignedchar*msc);/播放音乐子程序/音乐_编码2-函数/-/voidmusic_int_t1(void)interrupt3using1/定时中断1/PIN_MSC=PIN_MSC;TH1=temp_TH1;TL1=temp_TL1;/-/voidmusic_delay(unsignedcharn)/延时125*n毫秒unsignedchari=125,j;dodofor(j=0;j4;/-if(music_long!=0)/是音符if(*msc=128)/需升降调if(*msc)&0x08)=0)if(music_freq=16)music_freq-=16;/音高下降elseif(music_freq48)music_freq+=16;/音高上升/-if(music_up=1)/升半音temp_TH1=music_frequp_tab(music_freq+(music_data1);temp_TL1=music_frequp_tab(music_freq+(music_data1)+1);else/不升半音temp_TH1=music_freq_tab(music_freq+(music_data1);temp_TL1=music_freq_tab(music_freq+(music_data1)+1);/-if(music_break)/断奏music_delay(music_l_tabmusic_long&0x07-1);temp_TH1=0xff;temp_TL1=0xea;music_delay(1);else/连奏music_delay(music_l_tabmusic_long&0x07);/-else/是功能码switch(music_data)case0x04:music_up=0;/不升半音break;case0x05:music_up=1;/升半音break;case0x06:music_break=0;/断奏break;case0x07:music_break=1;/连奏break;default:break;/-msc+;ET1=0;/播放结束,关T1中断PIN_MSC=1;/关输出/temp_TH1=0xff;/temp_TL1=0xea;/关输出(输出超声波)/ET0=1;/开T0定时器中断/TMOD=0x51;/T0:16位定时器、T1:16位计数器/-/voidmain(void)/示例/设置定时器-TMOD=0x11;/TMOD:定时器1:模式1:16
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- N-TETAMINE-pSar45-Folate-生命科学试剂-MCE
- 有关电商调研试题及答案
- 2025年客服管理考试试题及答案
- 湖北2025自考学前教育原理案例题专练
- 2025年曲靖教育考试试题及答案
- 云南2025自考英语现代语言学模拟题及答案
- 浙江2025自考时空信息工程数字孪生技术案例题专练
- 广西2025自考智能视听工程视听系统工程主观题专练
- 内蒙古2025自考市场营销国际市场营销学主观题专练
- 浙江2025自考智能分子工程纳米科学与技术选择题专练
- 2025-2030中国农机金融租赁业务模式创新与风险定价策略报告
- 医院感染的爆发及处理
- 脊神经支配图谱-洞察及研究
- 2025年初级消防员理论考试题库附答案
- 仓管员补贴管理办法
- DB11-T 751-2025 住宅物业服务标准
- 个税扣除培训
- 与保密有关培训课件
- 粮食机收减损培训课件
- 农行考试试题及答案
- 2025-2030年中国抽油机行业市场现状供需分析及投资评估规划分析研究报告
评论
0/150
提交评论