·上一文章:基于MSP430与ATT7022B的四遥测量模块
·下一文章:基于单片机的微波功率控制器
通过Time0的溢出中断实现单频产生。Time0的溢出中断发生后输出引脚的电压反向,然后定时器重新装入初值。所以编程时要确定Time0的工作模式和计数初值。这里采用工作模式1,定时器的初值设定通过软件重复实现。而且定时器的初值则依据各音频频率设置。例如:中音Do音频是523Hz,其周期T=l/523=1 912μs,其半周期为1912/2=956μs。本设计的计时时钟周期是lμs,因此设置TimeO的计数器每计956次则中断一次,从而实现Do的音频,然后通过中断触发实现引脚电压的循环取反得到相应音频输出。图4为液晶显示的编程流程框图。
自编音乐和自动播放2个模式转换的程序设计,代码如下:
4 仿真与结果
采用绘制电路图软件PROTEUS和用于编写程序的KeilCμVision2实现系统设计的仿真。图5为PROTEUS仿真环境下的硬件电路图。在KeilC μVision2中创建一个新项目,然后在PROTEUS中为该项目加入Keil C源程序。调试后,结果和设计目标完全吻合。上电后液晶显示器显示“Wel-come!”,接着显示第一首歌曲名字,连续播放直到手动选择。同时4盏彩灯随着音乐节奏闪动。按下模式转换按钮,可以弹奏用户喜欢的音符和乐曲。
5 结语
该设计实现了多功能音乐播放器预期的基本功能和指标。采用单片机最小系统和汇编语言,扩展一般音乐播放器的功能,实现了自弹自唱和自动播放两种模式的转换,并且能显示音乐的节拍跳动和歌曲英文名字。