1、 课程设计报告书课程设计报告书 课程名称:单课程名称:单 片片 机机 课题名称:电子音乐盒课题名称:电子音乐盒 2013 年年 01 月月 01 日日 - 1 - 目目 录录 1.设计目的 错误错误!未定义书签。未定义书签。 2.设计要求和设计指标 错误错误! !未定义书签。未定义书签。 3.设计内容 错误错误! !未定义书签。未定义书签。 3.1 硬件部分 错误错误!未定义书签。未定义书签。 3.1.1 错误错误!未定义书签。未定义书签。 3.2 软件部分 错误错误!未定义书签。未定义书签。 4.本设计改进建议 错误错误! !未定义书签。未定义书签。 5.总结(感想和心得等) 错误错误! !
2、未定义书签。未定义书签。 6.主要参考文献 错误错误! !未定义书签。未定义书签。 附录 错误错误! !未定义书签。未定义书签。 单片机课程设计 1 1 1设计设计目的目的 通过学习单片机课程,对单片机的硬件设计,软件设计掌握有了不少了解,学习 了 protel 99 SE 和 keil 软件,锻炼了自己的编程能力,对单片机硬件和软件的设计都 有了进一步的认识和提高。为以后的学习也打下了很好的基础。 2 2. .设计要求和设计指标设计要求和设计指标 (1)利用 I/O 口产生一定频率的方波, 驱动蜂鸣器, 发出不同的音调, 从而演乐曲(内 存两首乐曲)。 (2) 可通过功能键选择乐曲,播放不同
3、音乐。 (3)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以 2,即为 半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相, 然后重复计时此半周期时间再对 I/O 口反相,就可在 I/O 脚上得到此频率的脉冲 (4)利用 8051 的内部定时器使其工作在计数器模式 MODE1 下,改变记数值 TH0 及 TL0 以产生不同频率的方法。 例如频率为 523HZ,其周期 T=1/523=1912 微秒,因此只要令计数 器定时 956/1=956 在每记数 9 次时将 I/O 口反相,就可得到中音 D0(523HZ)。 记数脉冲值与频率的关系公式如
4、下: N=Fi/2/Fr N:记数值 Fi:内部计时一次为 1 微秒故其频率为 1MHZ Fr;要产生的频率 (5):起记数值的求法如下: T65536N65536Fi2Fr 例如:设 K65536,F1000000Fi1MHZ,求低音 D0(523HZ) ,高音的 D0(1046HZ) 的记数值。 T65536N65536Fi2Fr6553610000002Fr65536500000Fr 低音 D0 的 T6553650000026263627 中音 D0 的 T6553650000052364580 低音 D0 的 T65536500000104765059 单片机课程设计 2 3 3.
5、.设计内容设计内容 3.1 3.1 硬件硬件部分部分 本设计中用到 89C51 单片机,蜂鸣器,独立式按键。 (硬件电路原理图如图 1 所示) 3.3.11 11 原理说明原理说明 当键盘有键按下时, 判断键值, 启动计数器 T0, 产生一定频率的脉冲, 驱动蜂鸣器, 放出乐曲。 (1) 硬件电路中用 K1, K2, K3, K4 分别接 P0.0, P0.1, P0.2, P0.3 作为对应歌曲 按键 。 (2) 用 P1.0 口接蜂鸣器。 (3) 电路为 12MHZ 晶振频率工作。 音乐盒原理图 3.2.3.2.软件软件部分部分 本程序可以实现课程设计的基本要求,并可以通过按键播放两首歌曲
6、,程序流程图 单片机课程设计 3 如下: 是否有 按键按 播 放 歌 曲 1 开始 播 放 歌 曲 3 播 放 歌 曲 2 播 放 歌 曲 4 K1键 按下 K2键 按下 K3键 按下 K4键 按下 Yes Yes Yes Yes Yes No No No No No 单片机课程设计 4 4 4本设计改进建议本设计改进建议 (1) 有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发 现是因为程序中有的指令书写得不规范导致的,例如有的 RET 返回指令一定要按正确格 式书写或在两行指令间最好不要留空行。 (2) 程序中的跳转指令的运用很重要,为保险起见,都用 LJMP,我们就遇到过跳 转指令用错程序无法正常运行的现象。当用 JNZ 指令时,跳转范围比较少,这时要用一 个标号中转。 (3) 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。 (4) 编程过程中要注意加注释或分割线,否则,在程序过长时容易变