




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机设计项目报告书单片机设计项目报告书设计项目题目:单片机奏乐项目概述:利用51单片机内部T0的溢出中断编程方法,编制一首乐曲,并播放。设计思路:1.工作原理 通过控制单片机定时器的定时时间产生不同频率的音频脉冲,经放大后驱动蜂鸣器发出不同音节的声音。用软件延时来控制发音时间的长短,控制节拍。把乐谱中的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器当中,由程序得到定时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出该音脉冲的持续时间。乐曲中的音符,频率及定时常数之间对应关系可制成表格,如表1-1所列。 2. 音调和节拍的确定方法 一般说来,单片机演奏音乐基本都是单音
2、频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个 概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。在音乐中所谓“音调”,其实就是我们常说的 “音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一 个倍频程, 在音乐中1(do)与 i 正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1i八音区为例,12个半音是:11、12、2 2、23、34、44,45、5一5、56
3、、66、67、7i。这12个音阶的分度基本上是以对数关系来划分的。如果我 们知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实 现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例:A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =22
4、72st = T/2 = 2272/2 = 1136s这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联, 、 就 是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如:其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音 符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音
5、符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音 符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400500ms。我们以一拍的时长为400ms为 例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分 音符的时长就为200ms,十六分音符的时长就为100ms。可见,在单片机上控制一个音符唱多长可采用循环延时的方法 来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时 程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延
6、时程序,依次类推。通过上面关于一个音符音调和节拍的确定方法,我们就可以在 单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放 整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。表1-1 音符,频率及定时常数对应关系C调音符低1低2低3低4低5低6低7频率262294
7、330349392440494定时值F894HF95CHFA1AHFA6AHFB00HFB8CHFC0EHC调音符1234567频率523587659698784880988定时值FC4AHFCAEHFD08HFD30HFD80HFDC6HFD02HC调音符高1高2高3高4高5高6高7频率1046117513181397156817601967定时值FE2AHFE5CHFE84HFE98HFEC0HFEE8HFF06H实验器件: 1)PC机,WAVE6000仿真软件 2)单片机应用与仿真开发实验台 3)蜂鸣器 放大器软件设计:本程序实现播放三首歌曲,并设有暂停键和复位键和选曲键。spk bit
8、 P2.5 ;定义蜂鸣器编号;*org 0000hsjmp startorg 0003hsjmp int0org 000bhsjmp timeorg 0030hstart:mov sp,#60hmov tmod,#01h ;设定时器方式1clr it0 ;外部中断电平触发setb et0 ;开启T0计数器setb ex0 ;开外部中断setb ea ;开总中断mov a,#0ffhmov p2,al1:mov a,p2cjne a,#0ffh,l2sjmp l1l2: jnb p2.0,l3 ;按下p2.0播放 Happy Birthdayjnb p2.1,l4 ;按下p2.1播放 Eyes
9、on mejnb p2.2,l5 ;按下p2.2播放 北京欢迎你sjmp startl4:mov dptr,#datsjmp loopl5:mov dptr,#ttsjmp loopl3:mov dptr,#table ;存表首地址loop: clr a ;清零movc a,a+dptr ;查表mov r1,a ;定时器高8位存R1inc dptr ;指针加一clr a ;清零movc a,a+dptr ;查表mov r0,a ;定时器低8位存r0orl a,r1 ;进行或运算jz next1 ;如果为零则为休止符mov a,r0anl a,r1 ;进行与运算cjne a,#0ffh,next
10、 ;如果为FFH则乐曲结束sjmp start ;从头开始循环演奏next: mov th0,r1 ;装入高8位定时值mov tl0,r0 ;装入低8位定时值setb tr0 ;启动定时器0sjmp next2 ;转移至next2处next1:clr tr0 ;关闭定时器停止发声next2:clr a ;清零inc dptr;指针加一movc a,a+dptr;查表(延时常数)mov r2,a;延时常数存R2loop1:acall delay ;调用延时子程序djnz r2,loop1 ;循环次数inc dptr ;指针加一jmp loop;转移至loop处time: mov th0,r1;重
11、装定时值mov tl0,r0 cpl spk ;反相输出mov a,p1cpl amov p1,areti ;中断返回delay:mov r7,#02 ;延时187msd2:mov r6,#187d3:mov r5,#248djnz r5,$djnz r6,d3djnz r7,d2ret;*;外部中断程序,实现暂停功能;*int0: clr tr0 reti;*;生日快乐;*table:db 0fdh,80h,03h,0fdh,80h,01h db 0fdh,0c6h,04h,0fdh,80h,04h db 0feh,2ah,04h,0fdh,02h,04h db 00h,00h,04h db
12、 0fdh,80h,03h,0fdh,80h,01h db 0fdh,0c6h,04h,0fdh,80h,04h db 0feh,5ch,04h,0feh,2ah,04h db 00h,00h,04h db 0fdh 80h,03h,0fdh,80h,01h db 0feh,0c0h,04h,0feh,84h,04h db 0feh,2ah,04h,0feh,02h,04h db 0fdh,0c6h,04h db 0feh,98h,03h,0feh,98h,01h db 0feh,84h,04h,0feh,2ah,04h db 0feh,5ch,04h,0feh,2ah,04h db 00h,
13、00h,04h db 0ffh,0ffh;*;Eyes on me;* dat:db 00h,00h,01h,0fbh,00h,04h db 0fch,4ah,04h,0fch,0aeh,04h db 0fdh,08h,04h,0fdh,80h,02h db 0fdh,08h,02h,0fdh,08h,04h, db 00h,00h,02h,00h,00h,02h db 00h,00h,02h,0fch,0aeh,02h db 0fdh,08h,02h,0fch,4ah,04h db 00h,00h,02h,0fbh,8ch,02h db 0fch,4ah,02h,0fch,4ah,02h d
14、b 0fch,0aeh,02h,0fch,0aeh,02h db 00h,00h,02h,0fbh,00h,02h db 0fch,4ah,04h,0fch,0aeh,04h db 0fdh,08h,04h,0fdh,80h,02h db 0feh,02h,02h,0feh,02h,03h db 00h,00h,03h,00h,00h,03h db 00h,00h,03h,0feh,02h,02h db 0feh,2ah,02h,0fdh,0c6h,03h db 0fdh,80h,02h,0fdh,0c6h,02h db 0fdh,80h,02h,00h,00h,03h db 00h,00h,
15、03h,00h,00h,02h db 0fdh,80h,02h,0feh,2ah,04h db 0feh,2ah,04h,0feh,2ah,04h db 0feh,02h,03h,0fdh,0c6h,02h db 0fdh,0c6h,02h,0fdh,0c6h,02h db 0fdh,80h,02h,0fdh,80h,04h db 00h,00h,03h,0fdh,08h,03h db 0fdh,80h,03h,0fdh,0c6h,04h db 0fdh,0c6h,02h,0fdh,80h,04h db 0fdh,30h,04h,0fdh,30h,02h db 0fch,0aeh,02h,0f
16、dh,08h,04h db 00h,00h,04h,00h,00h,02h db 0fdh,08h,02h,0fdh,08h,04h db 0fch,0aeh,02h,0fdh,08h,02h db 0fdh,30h,04h,0fdh,08h,02h db 0fch,0aeh,02h,0fch,0aeh,02h db 0fch,4ah,02h,0fch,4ah,04h db 00h,00h,04h,0fbh,8ch,02h db 0fch,4ah,02h,0fch,4ah,04h db 00h,00h,04h,0fch,4ah,02h db 0fch,0aeh,02h,0fdh,08h,02h
17、 db 0fdh,80h,03h,0fch,0aeh,04h db 00h,00h,04h,00h,00h,04h db 00h,00h,02h,0fdh,80h,02h db 0fdh,0c6h,04h,0fdh,0c6h,02h db 0fdh,80h,02h,0fdh,30h,02h db 0fch,4ah,02h,0fdh,08h,02h db 0fdh,08h,02h,0fch,0aeh,02h db 0fch,0aeh,04h,00h,00h,04h db 00h,00h,02h,0fbh,00h,02h db 0fch,4ah,04h,0fch,0aeh,04h db 0fdh,
18、08h,02h,0fdh,30h,02h db 0fdh,80h,02h,0fdh,80h,04h db 00h,00h,04h,00h,00h,02h db 0fdh,80h,02h,0fdh,30h,02h db 0fch,4ah,02h,0fdh,80h,04h db 00h,00h,04h,00h,00h,04h db 0fch,0aeh,02h,0fch,4ah,02h db 0fch,4ah,04h,00h,00h,04h db 00h,00h,04h,00h,00h,04h db 00h,00h,04h,00h,00h,04h db 0fch,4ah,02h,0fdh,08h,0
19、2h db 0fdh,08h,02h,0fdh,80h,02h db 0feh,02h,04h,0fdh,0c6h,02h db 0fdh,0c6h,04h,00h,00h,04h db 0fdh,0c6h,04h,00h,00h,04h db 0fdh,0c6h,02h,0feh,02h,02h db 0feh,02h,02h,0feh,2ah,02h db 0fdh,0c6h,04h,0fdh,80h,01h db 0fdh,80h,04h,00h,00h,04h db 0fdh,0c6h,04h,00h,00h,04h db 00h,00h,02h,0fdh,08h,02h db 0fd
20、h,08h,02h,0fdh,30h,02h db 0fdh,80h,04h,0fdh,30h,02h db 0fdh,30h,04h,00h,00h,04h db 0fdh,30h,04h,00h,00h,04h db 0fdh,30h,02h,0fdh,80h,02h db 0fdh,80h,02h,0fdh,0c6h,02h db 0fdh,0c6h,04h,0fdh,80h,02hdb 0fdh,80h,04h,00h,00h,04hdb 0ffh,0ffh;*;北京欢迎你;*tt: db 0fdh,08h,02h,0fdh,80h,02h db 0fdh,08h,02h,0fch,0
21、aeh,02h db 0fdh,08h,02h,0fch,0aeh,02h db 0fdh,08h,04h db 0fdh,08h,02h,0fch,0aeh,02h db 0fbh,08ch,02h,0fch,04ah,02h db 0fdh,08h,02h,0fch,0aeh,04h db 00h,00h,01h db 0fch,0aeh,02h,0fch,4ah,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fch,0aeh,02h,0fdh,08h,02h db 0fdh,80h,02h,0fch,0aeh,02h db 0fdh,08h,02h,0fdh
22、,0c6h,02h db 0fdh,80h,02h,0fbh,00h,02h db 0fch,0aeh,02h,0fch,4ah,02h db 00h,00h,03h db 0fch,0aeh,02h,0fch,4ah,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fch,0aeh,02h,0fdh,08h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,80h,02h,0fch,0aeh,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02h,0fdh,0c6h,02h db 0fb
23、h,08ch,02h,0fch,4ah,02h db 0fdh,80h,02h,0fdh,80h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02h,00h,00h,03h db 0fbh,08ch,02h,0fch,4ah,02h db 0fch,0aeh,02h,0fdh,08h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fch,0aeh,02h,0fch,4ah,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,80h,02h,0fdh,0c6h,02h db 0fbh,0
24、8ch,02h,0fch,4ah,02h db 0fdh,08h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fbh,8ch,02h,0fdh,08h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02h,0fch,0aeh,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02h 00h,00h,01h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,08h,02h,0fdh,80h,02h db 0fbh,08ch,02h,0fch,4ah,0
25、2h db 0feh 2ah,02h,0fdh,80h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,0c6h,02h,00h,00h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,0c6h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 0fdh,80h,02h,0fdh,08h,02h db 0fbh,08ch,02h,0fch,4ah,02h db 00h,00h,03h db 0fdh,08h,02h,0fdh,80h,02h db 0fdh,80h,02h,0fdh,08h,02h db 0fdh,80h,02h,0fdh,0c6h,02h db 0feh 2ah,02h,0feh,5ch,02h db 0fdh,80h,02h,0fdh,08h,02h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖州职业技术学院单招职业适应性测试题库必考题
- roi推广合同范本
- 急危重症护理学知到智慧树章节测试课后答案2024年秋杭州医学院
- 2025年广西农业职业技术大学单招职业适应性测试题库参考答案
- 养殖招工合同范本
- 商务展览合同范本
- 2025年鹤壁能源化工职业学院单招职业适应性测试题库及参考答案
- 2025年湖北轻工职业技术学院单招职业倾向性测试题库一套
- 2025年湖南劳动人事职业学院单招职业技能测试题库附答案
- 员工参股合同范本
- 2025年亿达商学院成立仪式及论坛经验总结(三篇)
- (2025)驾照C1证考试科目一必考题库及参考答案(包过版)
- 2025年湖南理工职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 罕见病诊治与病例管理制度
- 课题申报书:“四新”建设与创新创业人才培养基本范式研究
- 妇科常见急危重症护理
- 春季高考高职单招数学模拟试题七套含答案
- 2024-2025学年陕西省宝鸡市高三上学期高考模拟检测(一)英语试题(含解析)
- 2025年企业的演讲稿例文(2篇)
- 电瓶三轮车安全培训
- 人教版三年级下册数学第一单元 位置与方向(一)(单元练习)
评论
0/150
提交评论