1、 单片机课程设计报告单片机课程设计报告 课课 程程 单片机原理及接口技术单片机原理及接口技术 设计题目设计题目 蜂鸣器演奏歌曲蜂鸣器演奏歌曲 年级专业年级专业 20112011 级计算机科学与技术级计算机科学与技术 学学 号号 学生姓名学生姓名 指导教师指导教师 2014 年年 6 月月 15 日日 1 蜂鸣器演奏歌曲实验报告蜂鸣器演奏歌曲实验报告 一、要求一、要求 完成驱动蜂鸣器歌曲演奏的实验 二、目的二、目的 1、学习 KEIL 软件的使用方法; 2、掌握BST-V51单片机学习板设计蜂鸣器音乐的发生; 3、掌握设计中各模块的功能,能够填入并演奏曲子; 4、学习乐谱的基本知识,掌握其演奏的
2、原理。 三、分析三、分析 1、基本原理简述 声音是通过振动产生的。 单片机对某一引脚以一定的频率循环置 1置0,该引脚便产生一定频率的方波,方波通过放大,作用于一定的 物理实件(蜂鸣器) ,就产生了一定频率的声音。若改变输出方波的 频率,产生的声音随之改变。通过控 制 输 出 方 波 的 时 间 长 短 , 声 音 的 长 短 也 可 以 得 到 控 制 , 因 此 , 根 据 乐 谱 , 以 类 似的音及同样的节拍, 单片机就可以产生电子音乐。 音乐的播放选择可以通过按键的输入得 以实现。 为简便起见, 以一定的频率方波产生的音在其每个周期内高低幅 值得时间各占 一 半 。 因 此 , 输
3、出 引 脚 在 每 个 方 波 周 期 内 要 动 作 两 次 : 一 次 升 高 , 一 次 降 低 。 即 输出引脚的频率是原音频率的两倍。 2、单片机产生不同频率脉冲信号的原理 (1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率) ,然后 2 将此周期除以 2,即为半周期的时间,利用定时器计时这个半周期的 时间,每当计时到后就将输出脉冲的 I/O 反相,然后重复计时此半周 期的时间再对 I/O 反相,就可以在 I/O 脚上得到此频率的脉冲。 (2)利用 8051 的内部定时器使其工作在计数器模式 MODE1 下, 改 变计数值 TH0 及 TL0 以产生不同频率的方法如下: 例如,频
4、率为 523Hz,其周期天/523 S=1912uS,因此只要令计 数器计时 956uS/1us=956,在每计数 956 次时就将 I/O 反接,就可得 到中音 DO(532Hz) 。 计数脉冲值与频率的关系公式如下: N=Fi/2/Fr (N:计数值,Fi:内部计时一次为 1uS,故其频率为 1MHz,Fr:要 产生的频率 ) (3)其计数值的求法如下: T=65536-N=65536-Fi/2/Fr 计算举例: 设 K=65536,F=1000000=Fi=1MHz,求低音 DO(261Hz) 、中音 DO (523Hz) 、高音 DO(1046Hz)的计数值。 T=65536-N=65
5、536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr 低音 DO 的 T=65536-500000/262=63627 中音 DO 的 T=65536-500000/523=64580 高音 DO 的 T=65536-500000/1047=65059 (4)C 调个音符频率与计数值 T 的对照表如下表所示: 3 C 调各音符频率与计数值 T 的对照如下: 音符 频率 (Hz) 简谱码 T 值 音符 频率 (Hz) 简谱码 T 值 低 1DO 262 63628 #4FA# 740 64860 #1DO# 277 63731 中 5SO 784 6489
6、8 低 2RE 294 63835 #5SO# 831 64923 #2RE# 311 63928 中 6LA 880 64968 低 3M 330 64130 #6 932 64994 低 4FA 349 64130 中 7SI 988 65030 #4FA# 370 64260 高 1DO 1046 65058 低 5SO 392 64260 #1DO# 1109 65085 #5SO# 415 64331 高 2RE 1175 65110 低 6LA 440 64400 #2RE# 1245 65124 #6 466 64463 高 3M 1318 65157 低 7SI 494 64524 高 4FA 1397 65178 中 1DO 523 64580 #4FA# 1480 65198 每个音符使用 1 个字节,字节的高 4 位代表音符的高低, 低 4 位 代表音符的节拍,下表为