高清做视频在线观看网站,gps建站教程视频,网站开发中存在的问题,网站建设维护实训总结我比较喜欢动漫歌曲#xff0c;最近用它打了《东京泰迪熊》到单片机里面#xff0c;用P0.0做蜂鸣器输出口#xff0c;挺好听的#xff0c;分享一下源代码应该没什么问题吧#xff1f;/*--------------------------------------------------------8051单片机音乐代码生成器…我比较喜欢动漫歌曲最近用它打了《东京泰迪熊》到单片机里面用P0.0做蜂鸣器输出口挺好听的分享一下源代码应该没什么问题吧/*--------------------------------------------------------8051单片机音乐代码生成器---------本软件作者CLY作者QQ:2315959474本音乐编写日期2016年4月10日 19:46曲名东京泰迪熊使用的晶振频率11.059200MHz时钟周期12个曲调G速度240感谢您对本音乐代码生成器作者的支持------------------------------------------------*/#include//包含头文件sbit fmq P0^0;//定义蜂鸣器端口static unsigned int bf;//定义全局变量播放位置变量static unsigned char jp0;//定义全局变量播放时间单位化到0.015sstatic unsigned char jp1;//定义全局变量控制播放时间即节拍unsigned char code th[] {//定时器0高八位频率设定0x93,0xF6,0xF6,0xF7,0xF7,0xF8,0xF8,0xF9,0xF9,0xF9,0xFA,0xFA,0xFA,0xFB,//低八度0,b1,1,#1,2,#2,3,4,#4,5,#5,6,#6,70xFB,0xFB,0xFB,0xFC,0xFC,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,//中音1,#1,2,#2,3,4,#4,5,#5,6,#6,70xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE//高八度1,#1,2,#2,3,4,#4,5,#5,6,#6,7,#7};unsigned char code tl[] {//定时器0低八位频率设定0xFF,0x44,0xD6,0x5D,0xD5,0x4A,0xB5,0x1D,0x85,0xDD,0x38,0x89,0xDA,0x22,//低八度0,b1,1,#1,2,#2,3,4,#4,5,#5,6,#6,70x67,0xAB,0xE8,0x23,0x59,0x8E,0xC1,0xEF,0x1C,0x44,0x6C,0x90,//中音1,#1,2,#2,3,4,#4,5,#5,6,#6,70xB4,0xD5,0xF4,0x12,0x2D,0x47,0x60,0x77,0x8D,0xA2,0xB5,0xC6,0xD8//高八度1,#1,2,#2,3,4,#4,5,#5,6,#6,7,#7};unsigned char code ysjs[] {//延时计算一个单位时间为0.015s1,7,7,8,8,8,9,9,10,11,11,12,13,13,//低八度0,b1,1,#1,2,#2,3,4,#4,5,#5,6,#6,714,15,16,17,18,19,20,21,22,24,25,27,//中音1,#1,2,#2,3,4,#4,5,#5,6,#6,728,30,32,34,36,38,40,42,45,47,50,53,56//高八度1,#1,2,#2,3,4,#4,5,#5,6,#6,7,#7};unsigned char code jpsz[] {2,4,5,7,11,13,15,24,28,32,49,66};//对应节拍数组unsigned int code yb1[][2] {//歌曲音符节拍调用数组{0,6},{18,6},{26,6},{26,3},{25,6},{23,3},{22,6},{0,6},{21,6},{23,6},{23,3},{21,6},{16,3},{19,3},{18,11},{0,6},{16,6},{19,6},{19,3},{18,6},{23,3},{23,6},{0,6},{23,6},{23,6},{23,3},{25,6},{23,3},{23,3},{22,11},{0,6},{18,6},{26,6},{26,3},{25,6},{23,3},{22,6},{0,6},{21,6},{23,6},{23,3},{21,6},{16,3},{19,3},{18,11},{0,6},{16,6},{19,6},{19,3},{18,6},{23,3},{23,6},{0,6},{23,6},{23,6},{23,3},{25,6},{23,3},{23,3},{22,11},{0,6},{18,6},{26,6},{26,3},{25,6},{23,3},{22,6},{0,6},{21,6},{23,6},{23,3},{21,6},{16,3},{19,3},{18,11},{0,6},{16,3},{16,3},{19,6},{19,3},{18,6},{23,3},{23,6},{0,6},{23,6},{23,6},{26,3},{25,6},{22,3},{22,3},{23,3},{0,3},{11,3},{11,3},{11,3},{11,3},{0,3},{0,6},{23,6},{18,6},{18,3},{23,6},{22,7},{18,6},{18,6},{22,6},{23,6},{23,6},{21,3},{19,6},{18,6},{18,3},{18,3},{18,3},{18,3},{18,3},{18,3},{18,3},{19,6},{19,6},{19,3},{18,3},{16,3},{18,10},{23,6},{26,6},{25,9},{23,7},{22,11},{0,6},{18,6},{26,6},{26,3},{25,6},{23,3},{22,6},{0,6},{21,6},{23,6},{23,3},{21,6},{16,3},{19,3},{18,11},{0,6},{16,3},{16,3},{19,6},{19,3},{18,6},{23,3},{23,6},{0,6},{23,6},{23,6},{26,3},{25,6},{22,3},{22,3},{23,10},{23,3},{30,10},{30,3},{28,7},{26,6},{25,6},{21,3},{21,10},{28,3},{28,6},{26,7},{23,6},{25,3},{26,6},{25,3},{26,9},{26,3},{28,6},{26,3},{28,9},{26,3},{28,7},{28,3},{28,3},{30,3},{26,3},{26,3},{25,3},{0,6},{21,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{28,7},{29,6},{28,3},{24,6},{21,7},{21,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{0,3},{24,9},{28,7},{29,3},{0,6},{21,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{28,7},{29,6},{28,3},{24,6},{21,3},{0,6},{21,6},{26,3},{28,3},{0,3},{29,7},{21,6},{21,3},{29,3},{0,3},{28,7},{19,6},{19,3},{28,3},{0,3},{28,6},{26,3},{26,10},{0,6},{0,6},{0,6},{0,6},{0,6},{18,6},{26,6},{26,3},{25,6},{23,3},{22,6},{0,6},{21,6},{23,6},{23,3},{21,6},{16,3},{19,3},{18,11},{0,6},{16,6},{19,6},{19,3},{18,6},{23,3},{23,6},{0,6},{23,6},{23,6},{23,3},{25,6},{23,3},{23,3},{22,10},{0,3},{18,7},{26,3},{26,3},{25,6},{23,3},{22,3},{0,3},{22,3},{20,3},{22,3},{23,6},{0,3},{18,7},{26,3},{26,3},{25,6},{23,3},{22,3},{0,3},{22,3},{20,3},{22,3},{23,6},{0,3},{18,7},{26,3},{26,3},{25,6},{23,3},{22,3},{0,3},{22,3},{20,3},{22,3},{23,6},{0,3},{18,7},{26,3},{26,3},{25,6},{23,3},{22,3},{0,3},{22,3},{20,3},{22,3},{23,6},{0,3},{28,10},{30,3},{28,7},{26,6},{25,6},{21,3},{21,10},{28,3},{28,6},{26,7},{23,6},{25,3},{26,6},{25,3},{26,9},{26,3},{28,6},{26,3},{28,9},{26,3},{28,7},{28,3},{28,3},{30,3},{26,3},{25,3},{0,6},{21,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{28,7},{29,6},{28,3},{24,6},{21,7},{21,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{26,7},{33,6},{26,3},{24,6},{0,3},{24,9},{28,7},{29,3},{0,6},{33,3},{33,3},{36,3},{36,3},{0,3},{26,7},{33,3},{33,3},{36,3},{36,3},{0,3},{26,7},{33,3},{33,3},{36,3},{36,3},{0,3},{31,7},{29,3},{29,3},{28,3},{24,3},{24,3},{26,7},{21,6},{26,3},{28,6},{29,7},{21,6},{21,3},{29,6},{28,7},{19,6},{19,3},{28,3},{0,3},{28,6},{26,11},{23,6},{18,6},{18,3},{23,6},{22,7},{18,6},{18,6},{22,6},{23,6},{23,6},{21,3},{19,6},{18,6},{23,3},{26,3},{30,3},{35,3},{30,3},{26,3},{30,2},{31,6},{31,6},{31,3},{30,3},{28,3},{30,10},{35,6},{38,6},{37,9},{35,7},{34,6},{35,3},{34,3},{30,3},{25,3},{23,3},{22,3},{18,3},{23,10},{22,3},{23,3},{25,3},{23,3},{22,3},{18,10},{23,9},{22,3},{23,6},{30,11},{31,3},{35,3},{31,3},{28,3},{23,3},{19,3},{16,3},{19,3},{23,3},{28,3},{31,3},{35,3},{30,3},{34,3},{30,3},{25,3},{22,3},{18,3},{14,3},{18,3},{22,3},{25,3},{30,3},{34,3},{38,9},{37,7},{33,11}};void ds1(){//定时器使用函数TMOD | 0x01;//打开定时器0工作模式为1TR01;//定时器0开关打开EA1;//总中断打开ET01;//定时器0中断打开}main(){//主循环bf0;//全局变量播放位置变量初始jp00;//全局变量播放时间单位化初始jp10;//全局变量控制播放时间即节拍初始ds1();//调用定时器使用函数开始播放while(1);//这里可以添加要同时执行的其他命令}void ds1_dl()interrupt 1//当定时器0溢出中断{TH0 th[yb1[bf][0]];//定时器0高8位给定时值TL0 tl[yb1[bf][0]];//定时器0低8位给定时值if (th[yb1[bf][0]] ! 0x93 tl[yb1[bf][0]] ! 0xFF jp1{//当没有播放到休止符0且没有到达停顿时间fmq ~fmq;//蜂鸣器振动发声}jp0;//计数器加一计数if (jp0 ysjs[yb1[bf][0]]){//如果当前音符播放了0.03sjp1;//节拍,播放个数加1jp0 0;//计数器归零}if (jp1 jpsz[yb1[bf][1]]){//如果当前音符播放完成一个指定的节拍bf;//播放位置跳到下一个音符节拍jp1 0;//计数器归零if(bf 511){//如果播放到最后一位即播放完成bf 0;//从头播放}}}