APP下载

基于MIDI音乐的单片机实验教学设计

2021-01-13王晓爽夏振华

中国教育技术装备 2021年20期
关键词:单片机实验教学

王晓爽 夏振华

摘  要 针对单片机课程教学的特点,介绍一个基于项目开发的单片机实验教学案例的设计。该案例利用单片机定时器产生不同长度和频率的方波信号来实现MIDI音乐的演奏,学生自由选取自己喜欢的乐曲,音乐播放可采用按键启动或光电检测启动,在实际教学应用中可以吸引学生研究单片机程序的兴趣,具有较强的趣味性。

关键词 单片机;MIDI音乐;实验教学

中图分类号:G642    文献标识码:B

文章编号:1671-489X(2021)20-0031-03

SCM Experiment Teaching Design based on MIDI Music//WANG

Xiaoshuang, XIA Zhenhua

Abstract In view of the characteristics of SCM course, this paper introduces the design of a SCM experiment teaching case based on project development. The case use single-chip timer to generate a different length and frequency of the square wave signal to achieve MIDI music performance, the students choose the music they like, music player can start with the button or photoelectric detection. In the practical teaching application, it can attract the students to study the enthusiasm of SCM program, and have a strong interest.

Key words SCM; MIDI music; experiment teaching

0  前言

单片机课程是一门应用性和实践性很强的课程,基于单片机的项目开发是一个很好的学习单片机课程的方法,该方法具有一定的挑战性、创造性、开拓性和趣味性[1-3]。音乐是大家都喜爱的一种艺术形式,而MIDI技术是数字音频技术在音乐制作和处理中的使用。因此,将MIDI音乐引入单片机课程的学习,可以极大地激发学生学习单片机的兴趣,培养学生的自主创新精神。

1  实验设计原理及方案

MIDI音乐是由不同频率和不同节拍长度的正弦信号(或方波信号)组成的波形序列,利用单片机的定时器产生不同长度和频率的方波信号,就可以实现MIDI音乐的演奏[4-5]。

在单片机程序的控制下,产生与MIDI音乐对应的波形序列,通过功率放大和电声转换产生声波信号,通过人们的听觉器官(耳朵)欣赏动听的音乐。该实验还利用光敏电阻检测光线强度的变化,来确认是否有人在光敏电阻周围活动,当有人在附近时会自动触发音乐程序的执行。其电路原理框图如图1所示。

1.1  乐器键盘与音符频率的关系

参考88键电子琴键盘,本设计只考虑C调从低音5到高音5,共15个音符,包括休止符需要16个状态。51单片机的定时/计数器采用加计数器方式,当定时器使用时有8位初值自动装入方式和16位程序初值重装方式。设时钟频率为12 MHz,采用8位初值自动重装方式,最低频率为1/512 μs=1 953 Hz,最高频率为1/2 μs=500 kHz,显然最低频率远不能达到音乐演奏的要求,所以采用16位程序初值重装方式[6]。根据音符频率,计算出定时器的重装值,表1中最右边一栏是定时器需要装入的初值[7]。

1.2  音乐数据表格式的定义

音乐数据由音符(输出信号频率)、节拍(长度)和力度(输出信号幅度)组成,由于单片机引脚输出只有两个逻辑状态“0”和“1”,控制输出功率比较困难,因此只考虑前两个因素。将信号简化为频率高低—音符和发声的长度—节拍两个控制参数[7]。因为包括休止符频率有16个状态,节拍不超过16个状态,所以可把每个音符的两个参数压缩在一个字节中,用高4位表示节拍,低4位表示频率,如表2所示。低4位数字与音符的关系如表3所示。

D7~D4为声音长度控制参数,数字8代表1个节拍,4=1/2拍,2=1/4拍,1=1/8拍,15为2拍。在低4位为0时,高4位的数值表示休止符的長度。因为正常演奏音符中没有00H出现,所以当遇到00H时表示音乐结束。其中每首音乐的长度由乐谱数据表的长度控制。乐谱数据表根据演奏歌曲的简谱翻译得到。

2  实验软件设计思想

2.1  音乐波形产生

音乐信号的频率由定时器0控制,用一个16位的变量保存当前需要输出频率的半周期值,当定时器溢出时产生中断,将初值重新装入定时器,同时输出信号的引脚取反。当定时器启动后就会不停地输出波形,如果要停止波形的产生,用关闭定时器来实现。

2.2  节拍控制

音乐信号的节拍长度用定时器1控制,设每秒演奏2个节拍,每拍8个基本单元,每秒需要16个单元。定时器1的定时时间为一个基本单元(即62.5 mS),通过一个标志位来告诉主程序基本节拍时间到。初值为音符的基本节拍数,用一个软件计数器对基本节拍标志进行计数,采用减计数的方法,当减到“0”时表示该音符结束,达到控制音符长度的目的。

2.3  音乐演奏

实验设计了通过按键启动和通过光线变化自动启动两种方式开启音乐演奏。通过设置一个表示演奏和停止演奏的标志位(逻辑变量)来实现,当按键按下时演奏标志置“1”,当演奏结束(演奏数据表的值=00H)将演奏标志置“0”。音乐演奏过程由演奏数据表来指挥,起始时演奏指针为“0”,当读取一个音符后,指针加1指向下一个音符的位置。其中使用1字节指针最大长度为256,即一首歌最长255个音符,用数据00H表示演奏结束。

2.4  程序流程图

主程序流程如图2所示,演奏子程序流程如图3所示。

3  实验过程实现

首先要求学生课前根据MIDI音乐的数据构成和歌曲简谱,利用表2和表3把自己喜欢的歌曲简谱翻译成数据表备用;再综合所学的单片机原理知识,如定时器、中断、I/O口数据输入输出和查表等,一步一步地实现整个项目。

1)波形输出:设置定时器0,从单片机的I/O引脚输出方波信号。

2)输出有节拍信号:设置定时器1,将方波信号调制成间歇信号,每秒两次,信号长度约95%。

3)多频率输出:编写频率数据表,利用查表技术实现从1(dao)到7(xi)的等长度演奏。

4)简单音乐信号输出:编写音乐数据表,修改演奏程

序,完成等长度音乐音符的演奏;

5)音乐信号输出:编写节拍控制表,修改演奏程序,完成歌曲的演奏;

6)按键启动:当有键按下启动演奏,一首音乐完成停止。

7)光感应启动:用光敏电阻设计光检测电路,实现光强变化对音乐的启动。

4  结论

该实验充分利用了单片机的定时器资源、中断资源、比较器资源,用引脚的逻辑操作输出方波信号完成MIDI音乐演奏,具有较强的趣味性。不仅可以引起学生研究编写单片机程序的兴趣,而且利用光的检测和使用揭开了自动控制的神秘面纱,为后续学习传感器检测课程打下良好基础。该实验还可以进一步扩展,如引入键盘设计制作成简易电子琴,让学生对电子产品的形成有一个直观的认识。■

参考文献

[1]曹建树,代峰燕,俞建荣,等.应用型工科院校单片机课程教学改革与实践[J].实验室研究与探索,2012,31(3):129-132.

[2]彭远芳,陆勤,胡宁,等.基于“项目驱动法”的单片机课程一体化教学的探索与实践[J].计算机教育,2010(6):78-82.

[3]任肖丽,王骥.基于单片机课程的实验教学思考[J].中国電力教育,2012(16):127-128.

[4]张建荣.MIDI技术在新媒体内容制作实验教学中的应用[J].实验室研究与探索,2014,33(4):264-266,280.

[5]潘晓利,陈学煌,刘永志.基于MIDI模块的音乐发生器设计[J].电子测量技术,2007(2):108-110.

[6]柴泉,李月寒.基于51单片机的音乐发生器的设计[J].安徽科技学院学报,2014,28(4):38-41.

[7]杨军.MIDI消息和标准MIDI文件格式剖析及应用[J].中南民族大学学报(自然科学版),2003,22(S1):21-64.

猜你喜欢

单片机实验教学
关于基础教育阶段实验教学的几点看法
小议初中化学演示实验教学
电容器的实验教学
对初中化学实验教学的认识和体会
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
基于单片机的平衡控制系统设计
基于云计算的计算机实验教学探讨