1、 单片机课程设计单片机课程设计 课题:带数码管显示的跑马灯音乐播放器带数码管显示的跑马灯音乐播放器 2 目录目录 1.课程设计的任务功能及其要 2.硬件系统概述 3.软件系统概述 4.安装调试说明 5.总结与体会 6.附录 3 一设计任务功能及其要求 1.1 任务 设计一个具有特定功能的音乐播放器。 该音乐播放器上电或按键 复位后能自动显示系统提示符“P.”,进入准备工作状态。该音乐播 放器可以播放多首音乐,曲目选择可以由键盘控制,曲目名称可以显 示在显示器上。 1.2 功能要求说明 设有四个按键,其中两个能实现多首音乐的选择,另一个能实现 开始功能和单曲重播的功能,最后一个能实现复位和关闭歌
2、曲的功 能。设有一位数码管,每选择一首曲子能在数码管上显示当前的曲目 (只是数字) 。设有八位二极管,能随歌曲频率闪烁。 1.3 总体方案介绍及工作原理说明 1.3.1 总体方案介绍 作为单片机的重要硬件资源之一, 利用定时器可以产生各种固定 频率的方波信号,也可以产生包括“Do“、“Re“、“Me“-等音阶在内的 各种频率声音。 在此设计中我们采用12MHz的晶振, 产生的频率信号 即音乐信号由P37口输出,信号经过放大后由喇叭发出声音。 乐曲中,每一音符对应着确定的频率,我们可以参照给出的各 音符频率及其相应的时间常数来编写程序,根据表中所提供的常数, 将其16进制代码送入芯片里, 可以奏
3、出音符。音符的节拍我们可以用 定时器T0来控制, 送入不同的初值,就可以产生不同的定时时间。便 如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间的 对应关系也可以从两者关系表中得到。 定时器 T0 工作在定时方式 1,改变 TH0 及 TL0,产生不同的 音频频率。 要编写的乐谱按要求以音符字节数据表的形式存放在程序 中,改变乐曲就是通过改变该数据表的内容来实现的。主程序的任务 是按顺序读取数据表中的字节, 根据情况调用音级子程序和音长子程 序,启动定时器 T0 进行工作。 1.3.2 工作原理说明 4 (1) 要生产音频脉冲,只要算出某一音频的周期(1/频率),然后 将此周期
4、除以2,即为半周期的时间.利用定时器计时这个半周期时间, 每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间 再对I/O反相,就可在I/O脚上得到此频率的脉冲. (2) 利用8051的内部定时器使用其工作在计数器模式MODE1 下,改变计数值THO及TLO以产生不同频率的方法. (3) 例如频率为523Hz,其周期T1/5231912us,因此只要令 计数器计时956us/1us956,在每次计数956次时将I/O反相,就可得 到中音DO (523Hz). 计数脉冲值与频率的关系公式如下: NFi2Fr1.1 N: 计算值; Fi: 内部计时一次为1us, 故其频率为1MHz; (
5、4) 其计数值的求法如下: T65536-N65536-Fi2 Fr 1.2 例如: 设K65536, F1000000Fi1MHz, 求低音DO(261Hz). 中音DO (523Hz). 高音的DO (1046Hz)的计算值. T65536-N 65536-Fi2Fr65536-10000002Fr65536-500000/Fr。 低音 DO的 T65536-500000/26263627, 中音DO的T65536-500000/523 64580,高音DO的 T65536-500000/104765059 (5) C 调各音符频率与计数值 T 的对照表如表 1 所示. 表 1.1 C 调
6、各音符频率与计数值 T 的对照表 音符 频率 (HZ) 简谱码(T 值) 音符 频率 (HZ) 简谱码(T 值) 低 1 DO 262 63628 # 4 FA# 740 64860 #1 DO# 277 63731 中 5 SO 784 64898 低 2 RE 294 63835 # 5 SO# 831 64934 5 #2 RE# 311 63928 中 6 LA 880 64968 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157