单片机课程设计--电子音调发生器讲解.doc

单片机课程设计--电子音调发生器讲解.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计--电子音调发生器讲解

单片机课程设计报告 电子音调发生器 学院 电子信息工程学院 题目 电子音调发生器 设计的任务及要求 利用JD51开发板上的按键S1~S4和蜂鸣器设计电子音调发生器,要求: (1)利用JD51开发板上的按键S1~S4进行音调选择,即按下不同的开关产生不同的音调,依次按动S1~S4 及组合按键,蜂鸣器发出1234567i八个音调;并在数码管上显示。 (2)编写2支歌曲,并可进行选择播放。 三、工作原理及设计思路 工作原理: 音节由不同频率的方波产生,音节与频率的关系通过查表可得。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。 利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。 在JD51单片机上,产生方波的I/O脚选用P2.4,通过跳线相连 (1/2)*(1/f)=(12/fosc)*(256-x) 即 x=256-(fosc/24f) 其中f:音调频率,当晶振fosc=11.0592MHz时,音节“1”相应的定时器初值为x,则可得x=63777D=F921H 其它的可同样求得。 表1 音调 频率(Hz) 1 262 F921 2 294 F9E1 3 330 FA8C 4 349 FAD8 5 392 FB68 6 440 FBE9 7 494 FC5B i 523 FC8F 设计思路 1.总体框图 硬件图 2.蜂鸣电路 模块由蜂鸣器驱动电路和89C51组成。 选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100MA驱动电流。当89C51输出为低电平时蜂鸣器产生蜂鸣音,89C51 输出为高电平时,蜂鸣器不发声。 四、软件设计流程及描述 根据要实现的功能,流程图如下: 熟悉定时器和键盘扫描电路的工作原理及编程方法。 1.程序设计描述 电子音调主要的工作是将按键的信息读取,然后根据按键的数字,用定时器输出相对应的频率,实现音调的发生。 程序主要为5部分,按键扫描、中断计时、数码显示、音乐播放、主程序,他们分别执行不同的功能。 2.各部分功能介绍 (1)按键读取程序 键盘键值读取程序包括键盘扫描、消除抖动、键译码等内容。按键的识别主要有两种方法:行反转法和行扫描法。因为键盘为机械开关,容易引入抖动。为了消除抖动干扰,在程序中要加入消除抖动的部分。 (2)中断计时 中断部分,中断定时器1主要负责输出不同频率的方波,产生声音,中断定时器1主要是计时按键时间及按键间隔时间的功能,在播放音乐的时候,还担任着播放音乐的节拍的任务。 (3)音乐播放 音乐播放部分主要是播放音乐,实现按键重播和播放程序里面的音乐的功能。 (4)主程序 主程序主要是随时发出按键的声音功能,并且通过不同P口的扫描,判断是否是播放按键声音还是播放音乐,还是继续发出按键声音。 五、proteus仿真设计及描述 按键S1:数码管显示1,同时能听到蜂鸣器响音调1 按键S2:数码管显示2,同时能听到蜂鸣器响音调2 按键S3:数码管显示3,同时能听到蜂鸣器响音调3 按键S4:数码管显示4,同时能听到蜂鸣器响音调4 因为音调5,6,7,i以及音乐都是由两个按键控制的,所以在仿真时不能实现。 实际效果图 音调1: 音调2 音调5 音调6 六、汇编源程序代码 /*SB1 1音 SB2 2音 SB3 3音 SB4 4音 SB1SB2 5音 SB2SB3 6音 SB3SB4 7音 SB1SB4 i音 SB1SB3 第一首歌 SB2SB4 第二首歌 */ ORG 0000H LJMP KEYP0 ;跳至KEYP0程序 KEYP0: MOV R0,#00H ;数据首地址 CLR TR0 ;TR0置零,定时未开始 SETB P2.4 ;关蜂鸣器 SETB P2.3 ;关数码管 W: MOV R0,P3 ;扫描按键输入 CJNE R0,#0FFH,KEYPO1 ;有输入时跳转(R0≠0FFH时跳至KEYP01程序) JMP W

文档评论(0)

2299972 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档