1、 单片机课程设计报告单片机课程设计报告 名 称: 院 系: 班 级: 学生姓名: 同组姓名: 日 期: - 1 - 1 1、设计方案、设计方案 设计一个基于 MCS-51 系列单片机的音乐盒,利用试验板上的开关,按开关切换演奏出 不同的乐曲。蜂鸣器发出某个音调,与之相对应的 LED 亮起。使用两个按键,一个用来切 换歌曲,另一个切换八路 LED 的变化花样。 2 2、实现功能:、实现功能: 1)电路有两种工作模式:演奏音乐模式和花样灯模式。 演奏音乐模式:演奏完整的一首的歌曲,八路 LED 随着音乐变化。 花样灯模式:八路 LED 变化出各种花样,蜂鸣器随着发出“嘀嘀”声 2)按下按键 1 进
2、入演奏音乐模式,再按切换歌曲,共两首歌曲。 3)按下按键 2 进入花样灯模式,再按切换 LED 花样,共四种花样。 此电路的程序只占用了 1K 左右,可编制更多的音乐和 LED 花样,使系统的功能更加 强大。 3 3、硬件电路设计、硬件电路设计 电路原理图 - 2 - 由于 51 单片机的电流驱动能力较弱,而蜂鸣器的工作电流为几十 MA,故驱动蜂鸣器 需用一个 pnp 三极管。单片机给 P3.0 低电平,则蜂鸣器开;给高电平则蜂鸣器关。 LED 接到单片机的 P1 口,拉低 IO 口,可使 LED 亮起。 两个按键的一端接单片机的 IO 口,另一端接地。不按下去时与按键相连的 IO 口被单 片
3、机内部上拉电阻拉高,按下则与之相连的 IO 口变成低电平,引发单片机中断。 4 4、软件设计、软件设计 程序设置了两个标志count1 和 count2, 分别初始化为 1 和 0。 按键 1 使得 count1 在 1 和 2 之间切换,按键 2 使得 count2 在 14 之间切换。程序检测 count1 的值,count1 等于 1 时播放第一首歌曲,等于 2 时播放第二首。另一方面根据 count2 的值来切换 LED 的花样。Count1 和 count2 的值是互斥的,设置 count1 等于 1、2 时,count2 同时设置为 0;设置 count2 等于 14 时,coun
4、t1 也同时设置为 0。 歌曲简谱的编码规则:歌曲简谱的编码规则: do re mi fa so la si 分别编码为 17,重音 do 编为 8,重音 re 编为 9,停顿编为 0。 播放长度以十六分音符为单位(在本程序中为 165ms) ,一拍即四分音符等于 4 个十六分音 符,编为 4,其它的播放时间以此类推。音调作为编码的高 4 位,而播放时间作为低 4 位, 如此音调和节拍就构成了一个编码。以 0xff 作为曲谱的结束标志。 举例 1:音调 do,发音长度为两拍,即二分音符,将其编码为 0x18。 举例 2:音调 re,发音长度为半拍,即八分音符,将其编码为 0x22 歌曲播放的设计。 先将歌曲的简谱进行编码, 储存在一个数据类型为 unsigned char 的 数组中。程序从数组中取出一个数,然后分离出高 4 位得到音调,接着找出相应的值赋给 定时器 0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低 4 位,得到延时 时间,接着调用软件延时。 确定定时器确定定时器 0 0 对应于音调的初值:对应于音调的初值: 假设要得到 500H