《单片机实验:音乐改编》由会员分享,可在线阅读,更多相关《单片机实验:音乐改编(7页珍藏版)》请在人人文库网上搜索。

1、实验1将歌曲播放程序两只老虎改变为另一首歌曲(如Happy new year to yoi)、编程指导:产生任意音频f/*文网络及个人整理,勿用作商业用途音频播放:单片机用一根10 口线,向喇叭送出各种音符的频率-交替变化 的高、低电平,即可让喇叭获得音频方波-播放音乐。欲产生某音符的频率f,只需在f的半周期C对I0 口线取反一次即可!如,喇叭接在I/O 口线P3.7 上:sbit sound=P3八7;/位定义:将 sound为 P3.7sound=!sound; /将P3.7引脚输出电平取反,形成方波一个“沿”【定时常数C】即定时器的“纯”定时时间=计数次数*机器周期【12*( 1/CLK。

2、 )】 定时常数C计算:【定时常数C=音符频率f的半周期C=(1/2f)s=(1000000/2f)us】 以定时/计数器的输入脉冲(机器周期)为单位时:【C=(1000000/2f)us/机器周期 us】【机器周期=12个主频时钟周期】单片机晶振主频时钟常为11.0592MHZ【机器周期=12*( 1/11.0592)us=1.085us以机器周期为单位的定时常数 C=(1000000/2f)us/1.085us=460830/f 即:产生任意频率定时常数C计算公式:【定时常数C=460830/f】f为某音符频率【定时初值N计算】定时初值写入定时计数器,即会产生期望的定时常数C,即定时宽度或。

3、输出频率f。【定时初值”=模M -定时常数C】模M=最大计数值=2A位数,即2的二进 制位数次方例:【若T0为工作方式0,13位计数,其模=最大计数值=2八13=8佃2】【方式0,13位计数 定时初值计算式】【N=8192-C】【定时初值N设置编程】TL0=(8192-C)%32;/TL0 每计数32次向TH0进位1次【13位计数器的低 5位=TL0的低5位,TL0高3位未用】 文档来源网络及个人整理,勿用作商业用途TH0=(8192-C)/32;/TH0 右移5位(2八5=32)【13位计数器的高8位】*/文档来源网络及个人整理,勿用作商业用途二、如下为歌曲两只老虎的不完整C语言程序,请补充。

4、完整。/1、将头文件改为reg51.h #include / 包含头文件:【文件包含】51单片机寄存器定义/2、将驱动喇叭的I/O 口改为P1.0【数据定义】sbit sound=P3A7;位定义:将sound定义为P3.7【驱动喇叭】unsigned int C;/ 变量定义:储存定时器的定时常数3、C调的简谱-频率表:【低音L,中音Z,高音H】 /简谱 频率 说明#define L1 262/ L仁低音1=262Hz【周期=1/262=3826us取半周期】 文档来源网络及个人整理 ,勿用作商业用途L2286/ L2-低音2=286HzL3311/ L3-低音3=311HzL4349/ L。

5、4=低音4=349HzL5392/ L5=低音5=392HzL6440/ L6-低音6=440HzL7494/ L7-低音7=494HzZ1523/ Z1=中音1=523Hz/CZ2587/ Z2=中音2=587HzZ3659/ Z3=中音3=659HzZ4698/ Z4=中音4=698HzZ5784/ Z5=中音5=784HzZ6880/ Z6=中音6=880HzZ7987/ Z7=中音7=523HH11046/ H仁高音1=1046HzH21174/ H2=高音2=1174HzH31318/ H3=高音3=1318HzH41396/ H4=高音4=1396HzH51567/ H5=高音5=。

6、1567HzH61760/ H6=高音6=仃60HzH71975/ H7=高音7=佃75Hz/用宏替换,将各频率替换为音符名称,如:#define L1262/ L1 =低音1=262H文档来源网络及个人整理 ,勿用作商业用途调中音宏定义调高音宏定义【周期=1/262=3826us取半周期】/4、改错 【子函数】 /* 延时函数:延时 200ms【 1/4 拍时间】 */ void delay()unsigned char m,n; for(i=0;i100;i+)/ms级延时,2 重循环for(j=0;j250;j+);/*函数功能:主函数*/void main(void)【主函数】unsi。

7、gned char i,j;5改编程序,播放另一首歌曲【暂不做,下题再做(四、)】。/两只老虎频率【frequency】/ unsigned int code f=Z1,Z2,Z3,Z1,Z1,Z2,Z3,Z1,文档来源网络及个人整理,勿用作商 业用途unsigned int code f=L5,L5,L6,L5,Z1,L7,此句已改为祝你生日快乐文档来源网络及个人整理,勿用作商业用途Z3,Z4,Z5,Z3,Z4,Z5, Z5,Z6,Z5,Z4,Z3,Z1,Z5,Z6,Z5,Z4,Z3,Z1, Z2,L5,Z1,Z2,L5,Z1,0xff;/0xff为结束标志/两只老虎节拍【4=1拍,2=1/。

8、2拍,8=2拍】歌曲时间节拍【time/ unsigned char code JP =4,4,4,4,4,4,4,4, unsigned char code JP =2,2,4,4,4,4,4,/此句已改为祝你生日快乐文档来源网络及个人整理,勿用作商业用途4,4,8,4,4,8,2,2,2,2,4,4,2,2,2,2,4,4,4,4,8,4,4,8 ;6、填空改错=1;开总中断【5个中断】=1;定时器T0开中断(允许)=0x00;方式字:高 4 位 T1 : GATE C/-TM1M0=0000= /软启 定时 方式0(13位计数=8位TH1+低5位TH0)/ 【低4位T0 (同)】whil。

9、e(1)无限循环(唱不停:加电即工作)i=0;/从第1个音符f0开始播放while(fi!=.)若未读到结束标志,则继续 /定时常数C公式:晶振主频时钟常为11.0592MHZ=460830/fi;/【定时常数C=46083/f f为某音符频率/首次装入初值:=(8佃2-C)%32; /整除32取余:TL0每计数32次向TH0进位1次 /【TL0=13位计数器的低5位=TL0的低5位,TL0高3位未用】II【TL0高3位未用】【2八5=整除32,每计数32次向TH0进位1次】文档来源网络及个人整理,勿用作商业用途=(8192-C)/32; IITH0右移5位:2八5=32【TH0=13位计数器。

10、的高 8 位】=1;II启动定时器T0【到定时常数C时,溢出中断发生】for(j=0;jv;j+)II控制节拍数【循环延时i次:节拍】delay(); 延时函数【1I4拍时间】=0;II关闭定时器T0【不响了】;播放下一个音符sound=0;可略I*文档来源网络及个人整理,勿用作商业用途函数功能:定时器T0的中断服务子程序,使P3.7引脚输出音频的方波*I文档来源网络及个人整理,勿用作商业用途*中断服务函数编程指导*中断服务函数格式:程序名()interrupt x using y interrupt x中断号 using y所用工作寄存器组 0外部中断01定时器02外部中断13定时器14串行。

11、中断c在编译时把函数入口地址放到对应中断的跳转地址。using y中断函数使用4个寄存器组的哪一个*/void TimeO(void) interrupt using 1【中断 1=T0,工作寄存器 1 组】 文档来源网络及个人整理,勿用作商业用途sound=; II【响了!】将P3.7引脚输出电平取反,形成方波一个“沿”II再次装入初值:【首次之后】TH0=(8佃2-C); II TH0右移5位:2八5=32【13位计数器的高8位】TL0=(8192-C); II整除32取余:TL0每计数32次向TH0进位1次、设计播放该歌曲的硬件电路图,并仿真运行,调试成功四、改编程序,播放另一首歌曲。五。

12、、将delay()函数的外循环的循环变量终值 100改为250,仿真运行,体验播 放速度有何变化?附:几个歌谱a:歌谱祝你生日快乐7 / 6祝你生日快乐HAPPY birthday TO YOU(圾乐谱网站制谓)ity to生 日 快 岛祝怵 生 日 快55651-55H&p -V1birthsdtyto艸1恤V祝你生Bft祝你b:歌谱三个和尚陈小奇词曲甘苹唱X 嘿嘿嘿 X嘿嚥嘿 53-喝多多5水6-挑越ft5么5呀來得5一挑越挑1 - C一 个呀和 为 什么和 大和尚说挑15* 找1尚尚水的 尚尚来5 5 5 6 5 3 5 X X |5556535 -355635LL一 4一 I T -V r = I 1 卅 L,挑呀么挑 水喝,柬咦 挑吋么桃水喝. 二 个呀和 越来越 多,咦咦越来越为什么那和挑得最 多,咦咦戢 多,二和尚说新么 呀来该 抬越应SK-嘤嘿MrUT EK関妙 喝惰活 水懒干 抬越多 么呀来该 抬越应拾 水喝魂昭 抬呀么抬 水喝” 越懒tii咦咦越来越懒惰. 多干活咦咦应该多干活*6 1 235535 63 3 5 3 2 1 2 1 6a S 个和尚没水 为 什么那长 小和尚说年一呀来体 没不身 -呀也P喝老幼没水喝说一说太单薄呀“呀.3呀来体没不身生没说太呀来体没不身瞩说薄 水一单 k投说太 5 =e-呀呀呀。

单片机音频驱动实验C语言,单片机实验:音乐改编相关推荐

  1. 定时器计数器实验C语言程序,实验二 单片机定时器和计数器编程

    仲恺农业工程学院实验报告纸 信息学院 (院.系)专业班组单片机原理及接口技术课实验二单片机定时器/计数器编程 一.实验目的 1.掌握单片机定时器/计数器的工作方式: 2.掌握单片机定时器/计数器的编程 ...

  2. 山东大学单片机原理与应用实验 C语言程序实验

    一.实验题目 C语言程序实验 二.试验要求 片内RAM30H开始的32个单元中分布着随机的有符号8位二进制数,按从小到大的顺序进行排序,排序后的数据仍然保存到30H开始的32个单元中(低地址存放小数据 ...

  3. pc机串口通讯实验c语言,单片机实验六 单片机与PC机串口通讯

    实验报告六 实验名称:单片机与PC机串口通讯 实验目的 : 1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制. 2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议. 3.了解PC机通讯 ...

  4. p1口输入 输出实验C语言,单片机P1口输入输出实验单片机P1口输入输出实验.ppt

    单片机P1口输入输出实验单片机P1口输入输出实验 单片机I/O口输入输出实验 (或单片机数字量输入输出实验);单片机P1口输入输出实验 ;2.实验要求(1).2)为必做,3)为选做) 3) P1口作输 ...

  5. 汇编语言电子琴实验c语言,电子琴实验及报告.docx

    电子琴实验及报告 电子琴实验报告 一,实验目的 1.学习使用AT89S52单片机的功能,进行单片机编程,实现键盘演奏音乐的功能,进一步加深对于单片机功能实现过程的理解,强化单片机编程的能力. 2.设计 ...

  6. 单片机实现水位控制C语言,单片机课程设计 水位自动控制.doc

    单片机课程设计 水位自动控制 河南机电高等专科学校电气工程系 电子课程设计报告 设计题目:水位自动控制 专业: 电机与电器 班级: 101 班 学号: 姓名: 指导教师: 设计时间: 2012-6-2 ...

  7. dsp 实验c语言,dsp实验报告 实验1 ccs入门实验2(c语言的使用)

    1. 1 DSP 实验报告实验报告 院 ( 系 ) 名 称 自 动 化 科 学 与 电 气 工 程 学 院 学 生 姓 名 学 号 任 课 老 师 吴 冠 2014 年 6 月 DSP 实验报告 1 ...

  8. 单片机 多机通讯c语言,单片机多机串口通信.doc

    单片机多机串口通信 摘要 本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理.实现方法和相应的通信硬件.软件设计.该设计是由单片机与单片机组成的主从控制系统,其中单片 关键词: 单 ...

  9. 单片机tcp ip协议c语言,单片机TCP IP协议栈实现的原理

    对已TCP IP协议栈,我们已经说了很多关于它的原理相关的知识了.但是只有原理是不够的,在这方面我们将要举出一个实际操作实例为大家讲解,那么首先我们来看一下有关于单片机TCP/IP就是在单片机上运行的 ...

最新文章

  1. Educational Codeforces Round 87 (Rated for Div. 2)C2. Not So Simple Polygon Embedding【几何题】
  2. 来电通java版_终于有人把Java程序员必学知识点整理出来了,令人有如醍醐灌顶...
  3. win10操作系统vscode如何配置c++开发环境
  4. 利用python画混淆矩阵
  5. 【caffe-Windows】关于LSTM的使用-coco数据集
  6. 阿里云移动研发平台EMAS,是如何连续5年安全护航双11的?
  7. mapreduce复制连接的代码_我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?...
  8. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(2) - SSE程序设计环境概述
  9. asp.net 读写 XML 小结
  10. [转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言
  11. [POJ2796]Feel Good
  12. 测试低频噪音软件,设计制作并验证0.1Hz~10Hz超低频微弱噪音检测放大器STEP BY STEP...
  13. [原创]:善用佳软(一)
  14. fastadmin项目实战踩坑
  15. Confluence 摘要(Excerpt)宏
  16. 泰坦尼克号python数据分析统计服_数据分析可视化——泰坦尼克号幸存者分析(上)...
  17. Android学习资料整理收集--路漫漫其修远兮
  18. IJCAI 2022 | 鲁棒的Node-Node Level自对齐图对比学习
  19. 上海居住证满3年或积分满120分房产税退税流程2014年
  20. 浅析MySQL死锁检测

热门文章

  1. 常用JAVA面试题库
  2. Android扮猪吃虎
  3. nfcwriter下载 ios_龙族幻想全球iOS收入第8,闪耀暖暖跻身国内收入Top 10丨App Annie 8月指数...
  4. 计算机报名照片怎么在线修图
  5. 湖北助理工程师职称评审基本问题解答(人力资源和社会保障局)
  6. 计算机网络vtp,计算机软考网络工程:配置交换机VTP协议
  7. Java基础高频面试题
  8. arm 访问内存异常
  9. 计算机运筹学pdf,运筹学上机报告最短路问题的计算机求解.pdf
  10. 商务风团队建设与入职培训PPT模板