网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 电子专业 -> 基于单片机的自动音乐播放器的设计(三)
自动化论文范文| 电子机电论文| 测控技术论文| 通信专业论文| 电气工程论文| 通信工程论文| 电子信息工程论文| 免费自动化论文| 免费电子论文| 免费电气论文| 免费通信论文

基于单片机的自动音乐播放器的设计(三)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
基于单片机的自动音乐播放器的设计(三) -1)
 式3-2-1中,N是计数值;F1是机器频率(晶体振荡器为12MHZ时,其频率为1MHZ);F2为想要产生的声音频率。
 其计数初值T的求法如下:
 T = 65536 –N = 65536 - F1/2/F2   (式3-2-2)
 本次设计采用16位定时方式,晶体振荡器频率为6MHZ,根据式3-2-1和式3-2-2可以计算出各音乐频率的计数器初值,再将十进制的计数器初值转换为四位16进制,将其制表写入程序中,通过查表装入要求的初值即可。音阶与频率的对应关系如表3-1所示。
表2-1
音符 DO RE ME FA SO LA SI 
低音简谱码 1 2 3 4 5 6 7 
频率/Hz 523 587 659 698 784 880 987 
高音简谱码 1 2 3 4 5 6 7 
频率/Hz 1046 1174 1318 1396 1567 1760 1975 
 2.1.3 节拍的产生
 音阶的频率是固定的,而节拍有快有慢,拍子越短节奏越快,拍子越长节奏越慢。控制发音的时间有两种方法:调用延时子程序或采用定时器中断。本次设计采用的是定时器终端方式。
 首先在整首乐曲中找出最短的拍子,一般为1/4拍,拍子的时间约为0.125s。然后以1/4拍为基准,然后设定每0.125s产生一次中断,其定时器值为125000,定时常数为08F3H。若采用模式2,定时器值太小,不是很好用。所以采用模式1,将定时器值设为62500,即0CDCH,则只需要执行2次定时器中断就可以产生1/4拍的时间长度。同样,若要产生其它的拍子(如1/2拍,3/4拍……),只需要定时器中断N次,产生N*0.125s定时,使其满足各个节拍的时间长度即可。
 设计的程序按如下方法编写:
 (1)将音符代码装入8位字节高4位,节拍代码装入低4位,组成一个字节,以此类推。将整段乐曲转换成一定长度的编码表。具体编程方法如下:
 1.首先,定义toneh[]和tonel[]两个数组,将各个音乐频率的定时器初值的16进制数的高8位装入toneh[],低8位装入tonel[]。
 2.利用单片机的定时器中断,将toneh[]和tonel[]的数据分别装入TH0和TL0,并且,收到信号P1.0就反相。
 void timer0(void)   interrupt 1 using 1
  {
  P1_0=!P1_0;
  TH0=toneh[rti];
  TL0=tonel[rti];
  }
 3.利用定时器1控制音乐节拍的时间长度,将上文所述的定时器初值装入定时器1。
 void timer1(void)   interrupt 3 using 2
  {
  TH1=0x0c;
  TL1=0xdc;
  m++;
  }
 (2)在程序执行时顺序查此表,取出音符代码,查频率表,置入T/C口,取出节拍代码,供定时器使用,启动后即可发出声音。
 2.1.4 音频转换流程图
 设计的软件流程如图2-2所示。程序开始运行时先对单片机进行初始化,其中包括定时器及其工作方式的选择、外部中断设定、定时器初值的设定。利用单片机,通过软件的方式产生所需要的音乐频率,并将收到的信号与音频编码表进行对比。若信号在编码表中,则将该频率的定时器初值写入定时器中,并读取频率的音阶,再从单片机的P1.0口输出,经过音频放大器驱动喇叭发出声音,利用驱动喇叭演示程序即可控制音乐的节拍。若信号不在编码表中,则返到初始化。
 
 2.2 时间显示程序设计
 2.2.1设计思路
 对于时间程序的设计,主要依靠单片机内部定时器的计数功能实现。时钟由秒针、分针和时针组成,在程序中分别由sdata,mdata,hdata表示各单位的数据。首先对sdata,mdata,hdata分别设定一个初值,其中sdata设为0,表示秒针初始为0。然后利用定时器对秒针计数,当计数值达到1秒的时间后产生定时器中断,sdata的数据就加1。由于本次设计采用的晶振频率为6MHz,所以定时器取值为2500。将hdata的数据装入第一和第二个数码管,将mdata的数据装入第三和第四个数码管。当sdata的数据为59时,若此时再来一个定时器中断,则秒针重新归零,而分针就加1。同样,分针和时针的进位也是同一道理。
 当设定的闹钟时间一到,程序即转入音频程序,驱动喇叭放出音乐。
 2.2.2 时钟程序流程图
 时钟程序流程图如图2-3所示。(应有简单的文字叙述或解释)
3 硬件电路的设计
 3.1硬件流程模块
 设计的硬件流程模块如图3-1所示。首先,PC机通过串口及MAX232芯片将程序下载到单片机中,其中包括把一个个的单音写入单片机的ROM存储器中,程序运行时再将音乐数据按顺序读出,利用单片机的定时器中断控制音乐节拍的长度,这样就能形成一段乐曲。在单片机P1.0口接入音频放大电路,将单片机输出的信号放大,再通过喇叭播放音乐。单片机P2口接4位共阴LED数码管,并外接1K欧的排阻,利用单片机内部的定时器中断控制时间程序,然后在数码管上显示出时间。
3.2 模块电路的设计
 3.2.1 89C58RD+型单片机介绍
 89C58RD+是一种带32KB闪烁可编程/可擦除制度存储器(EPEROM-Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS的8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51的指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,因而ATMEL的89C58RD+是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。并且,比起跟它同种类型的89C51,它具有更大的Flash存储器,可下载很大容量的程序代码,因此功能更加强大,应用范围更广泛。
 89C58RD+有40个引脚,32个外部双向输入/输出(I/O)端口,9个中断源,内含2个外中断口,3个16位可编程定时计数器,可编程UART串行通信口,SPI串行口,89C

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6

基于单片机的自动音乐播放器的设计(三)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:基于单片机技术的波形发生器采用.. 下一篇:温湿度测量
推荐论文 本专业最新论文
Tags:基于 单片机 自动 音乐 播放器 设计 2010-03-29 22:04:20【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有