安徽工程科技学院机电学院
图3-15 音频功率放大器[18]
- 21 -
颜静:基于单片机的音乐播放器的设计
第4章 软件部分的设计
软件部分的设计包括主程序模块设计、显示程序模块设计、T1中断模块设计和INT0中断模块设计。
4.1 主程序模块设
主程序中所要安排的任务较多。首先,系统中外扩的各器件的初始化工作均在主程序中完成。其次,要设计如何调用显示子程序以及乐曲播放程序。[19]计算出C调各音符频率与计数值T的对应值,利用8051CPU的P3.3脚接收到的信号,判断是否有键按下。若有,通过查表将歌曲首址放入内存缓冲区,然后再判断查表所取到的定时值是否为零以确定是否播放乐曲;若键未释放,则等待。图如4-1所示。
- 22 -
安徽工程科技学院机电学院
图4-1 主程序流程图[20]
- 23 -
颜静:基于单片机的音乐播放器的设计
4.2 显示程序模块设计
如图4-2所示为显示子程序的流程图:
图4-2 显示子程序的流程图[21]
- 24 -
安徽工程科技学院机电学院
4.3 INT0中断模块设计
中断服务程序由于按键为机械开关结构,机械触点的弹性及电压突跳等原因,往往在触点闭合或断开的瞬间会出现电压抖动。[22]为保证键识别的准确,在电压信号抖动的情况下不能进行状态的输入,为此需要进行去抖动处理。[23]去抖动有硬件和软件两种方法。硬件方法就是加去抖动电路,从根本上避免抖动的产生。软件方法则采用时间延迟以避开抖动,待信号稳定之后,再进行键扫描。在本设计中,为简单起见,采用的是软件延迟去抖动的方法。这一方法体现在INT0中断服务程序中。该部分还要利用中断完成播放曲目的选曲工作。INT0中断服务程序流程图如图4-3所示。
图4-3 INT0中断模块流程 [24]
- 25 -