版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1:让蜂鸣器播放3s,再停止3s,无限循环(单片机):#include<reg52.h> //头文件#defineucharunsignedchar //宏定义#defineuintunsignedintvoiddelayms(uintxms); //函数声明sbitbuzzer=P0^0;ucharnum,i=0;voidT0_time()interrupt1 //定时器{TH0=(65535-50000)/256;//定时器装初值TL0=(65535-50000)%256;num++;}voidmain() //主函数{TMOD=0x01;//设置定时器0工作模式为1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1; //开总中断ET0=1;TR0=1; //定时器0开启buzzer=0; //端口置0,蜂鸣器播放while(1){if(num==60) //延时3s{ buzzer=~buzzer; //串口翻转 num=0;}}}voiddelayms(uintxms) //延时函数{uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}2:《生日快乐歌》演奏(单片机):#include<reg51.h> //头文件#defineucharunsignedchar //宏定义#defineuintunsignedintvoiddelay(uintxms); //延时函数voidmatrixkeyscan(); //矩阵键盘voidzanting(); //暂停函数voidmain();sbitBEEP=P3^7; //定义I/O口uintp=0;voidMusic(ucharnumber);voiddelay10us(uchartime);voiddelay50us(uchartime);ucharcodeSOUNDLONG[]= //控制节拍{18,6,24,24,24,48,18,6,24,24,24,48,18,6,24,24,24,24,24,18,6,24,24,24,48,0};ucharcodeSOUNDTONE[]= //控制音调{212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0};voidPlay_Music() //播放函数{uintk,n; //定义变量uintSoundLong,SoundTone;uinti,m;do{if(i>=25){i=0; //该音乐有25个音调 SoundLong=SOUNDLONG[i]; SoundTone=SOUNDTONE[i]; i++; for(n=0;n<SoundLong;n++) //控制单个音调的节拍 { matrixkeyscan(); //矩阵键盘函数 if(p==2) //若暂停键按下 zanting(); for(k=0;k<12;k++) //产生该音调的频率 { BEEP=0; for(m=0;m<SoundTone;m++); BEEP=1; //I/O口翻转 for(m=0;m<SoundTone;m++); }} delay50us(6);}}while((SOUNDLONG[i]!=0)||(SOUNDTONE[i]!=0));voiddelay10us(uchartime) //time*10微妙的延时{ uchara,b,c; for(a=0;a<time;a++) for(b=0;b<10;b++) for(c=0;c<120;c++);}voiddelay50us(uchartime) //tiam*50微妙的延时{ uchara,b; for(a=0;a<time;a++) for(b=0;b<6;b++);}voidmain(){BEEP=0; while(1) { matrixkeyscan();if(p==1) //若播放键按下 { Play_Music(); //播放音乐 delay10us(250); //一首歌播放完后延时 }}}voidmatrixkeyscan() //矩阵键盘函数编写{uchartemp,key;P2=0xfe;temp=P2;temp=temp&0xf0;if(temp!=0xf0){delay(25);temp=P2;switch(temp){case0xee:p=1;break;case0xde:break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}P2=0xfd;temp=P2;temp=temp&0xf0;if(temp!=0xf0){delay(25);temp=P2;temp=temp&0xf0;if(temp!=0xf0){temp=P2;switch(temp){case0xed:p=2;break;case0xdd:break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;} }}}voiddelay(uintxms) //毫秒级延时函数{uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}voidzanting() //暂停函数编写{while(1){BEEP=0;matrixkeyscan();if(p==1) //若播放键按下Play_Music();}}3:《两只蝴蝶》演奏(单片机):#include<reg51.h> //头文件#defineucharunsignedcharsbitbeepIO=P1^5; //输出口为P1.5ucharm,n;ucharcodeT[49][2]={{0,0},{0xF8,0x8B}, //控制音调{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},{0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},{0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},{0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}};ucharcodemusic[][2]={{0,4},{23,4}, //音谱的音调和节拍{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,24},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{21,24},{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},{23,4},{26,4},{26,16},{26,4},{28,4},{26,4},{23,24},{21,4},{23,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{16,2},{19,2},{19,24},{0,20},{26,4},{26,4},{28,4},{31,4},{30,4},{30,4},{28,4},{23,4},{21,4},{21,4},{23,16},{0,4},{23,4},{23,4},{26,4},{28,8},{28,12},{16,4},{23,4},{21,4},{21,24},{23,4},{26,4},{26,4},{23,4},{26,8},{0,4},{31,8},{30,4},{28,4},{30,4},{23,8},{0,4},{28,4},{28,4},{30,4},{28,4},{26,4},{23,4},{21,8},{23,4},{21,4},{23,4},{26,16},{0xFF,0xFF}};voiddelay(ucharp) //延时函数{uchari,j;for(;p>0;p--)for(i=181;i>0;i--)for(j=181;j>0;j--);}voidpause(){uchari,j;for(i=150;i>0;i--)for(j=150;j>0;j--);}voidT0_int()interrupt1 //定时器{ beepIO=!beepIO;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《中药学(第2版)》课件24- 补阴药 补血药
- 安全施工协议书15篇
- 2026年上海市杨浦区八年级语文下学期期中考试试卷及答案
- 钢结构伸缩缝处理施工工艺流程
- 2026年校园食品安全管理制度及规范
- 接待资料收集管理规定
- 生产现场叉车等搬运设备安全操作自查报告
- 患者气管插管意外滑脱应急演练脚本流程及总结
- 水利工程安全管理制度
- 南京市辅警招聘笔试题及答案
- 国家基本药物合理使用培训课件
- T-GEIA 11-2021 配用电系统节电装置节电量测量和验证技术导则
- 五年级下册道德与法治课件第三单元《百年追梦复兴中华》单元梳理部编版
- JG293-2010 压铸铝合金散热器
- 2023年资产负债表模板
- 国开计算机组网技术实训1:组建小型局域网
- TCHSA 010-2023 恒牙拔牙术临床操作规范
- 2019人教版新教材高中化学选择性必修三全册重点知识点归纳总结(复习必背)
- dd5e人物卡可填充格式角色卡夜版
- 宝鸡某烟厂联合厂房施工组织设计
- 布袋除尘器安装使用说明书
评论
0/150
提交评论