⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 电压控制程序,符合各种设备需要,核心程序,IBm专属
💻 C
字号:
//======================================================================
//	The information contained herein is the exclusive property of
//	Sunnnorth Technology Co. And shall not be distributed, reproduced,
//	or disclosed in whole in part without prior written permission.
//	(C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
//	ALL RIGHTS RESERVED
//	The entire notice above must be reproduced on all authorized copies.
//=======================================================================

//========================================================
//	工程名称:	ex7_MS01
//	功能描述:	利用SACM_MS01算法播放已经提供的4段乐曲,用键盘控制这4段乐
//				曲的播放,各个按键的功能分别如下:
//				Key1:播放
//				Key2:停止播放
//				Key3:暂停当前播放乐曲
//				Key4:恢复播放暂停的乐曲
//				Key5:音量增大
//				Key6:音量减小
//				Key7:播放下一段乐曲
//				Key8:播放前一段乐曲
//	涉及的库:	CMacro1016.lib 
//				SacmV26e.lib
//	组成文件:	main.c
//				Key.asm, ISR.asm, Hardware.asm
//				MS01.inc, Hardware.inc, Key.inc
//				MS01.h, Key.h
//	硬件连接:	KEYPAD的IOA7~0与COL1~8连接;IOA8与ROW连接
//				DAC短接,选择音频输出
//	维护记录:	2005-10-12	v1.0
//========================================================

//========================================================
//	文件名称:	main.c
//	功能描述:	利用SACM_MS01算法播放已经提供的4段乐曲,用键盘控制这4段乐
//				曲的播放
//	维护记录:	2005-09-12	v1.0
//========================================================
#include "ms01.h"
#include "Key.h"

#define		CLR_WDT()			(*(unsigned int*)0x7012=0x01)

#define 	DAC1				1
#define 	DAC2				2

#define		Ramp_Up_On			1
#define		Ramp_Dn_On			2
#define		Ramp_UpDn_On		3

#define		DAC_24K				1
#define		DAC_20K				2
#define		DAC_16K				3

#define		Manual				0
#define		Auto				1

#define MaxSongNum              4 	               		// 最大语音资料文件数
#define MaxVolume               15						// 最大音量

int main() 
{
	int Key = 0;										// 存储键值
	int SongIndex = 0;									// 曲子编号
	int VolumeIndex = 8;								// 音量
	int Status_Stop = 0;								// 当前是否处于停止播放状态

	Key_Init();
	SACM_MS01_Initial(DAC_24K, Auto);
	SACM_MS01_Play(SongIndex,DAC1+DAC2, Ramp_UpDn_On); 	// 播放音乐
	while(1)
	{
		Key = Key_Get();
		switch(Key) 
		{
			case 0x80:									// 键1,播放乐曲
				SACM_MS01_Initial(DAC_24K, Auto);
				SACM_MS01_Play(SongIndex,DAC1+DAC2, Ramp_UpDn_On);
				break;
			case 0x40:									// 键2,停止播放
				SACM_MS01_Stop();
				Status_Stop = 1;
				break;
			case 0x20:									// 键3,暂停播放
				SACM_MS01_Pause();
				break;
			case 0x10:									// 键4,恢复播放
				SACM_MS01_Resume();
				break;
			case 0x08:									// 键5,音量增大
				if(VolumeIndex < MaxVolume)
					VolumeIndex++;
				SACM_MS01_Volume(VolumeIndex);
				break;
			case 0x04:									// 键6,音量减小
				if(VolumeIndex > 0)
                    VolumeIndex--;
				SACM_MS01_Volume(VolumeIndex);
				break;
			case 0x02:									// 键7,播放下一曲
				if(SongIndex < MaxSongNum-1)
					SongIndex++;
				SACM_MS01_Initial(DAC_24K, Auto);
				SACM_MS01_Play(SongIndex, DAC1+DAC2, Ramp_UpDn_On);
				break;
			case 0x01:									// 键8,播放前一曲
				if(SongIndex > 0)
					SongIndex--;
				SACM_MS01_Initial(DAC_24K, Auto);
				SACM_MS01_Play(SongIndex, DAC1+DAC2, Ramp_UpDn_On);
				break;
			default:
				break;
		}
		if((SACM_MS01_Status()&0x01) != 0)
			SACM_MS01_ServiceLoop();          			// SACM-MS01 播放子程序
		else if(Status_Stop == 0)
		{
			if(SongIndex < MaxSongNum-1)				// 当前乐曲结束则播放下一曲
				SongIndex++;
			else
				SongIndex = 0;
			SACM_MS01_Initial(DAC_24K, Auto);
			SACM_MS01_Play(SongIndex, DAC1+DAC2, Ramp_UpDn_On);
		}
		CLR_WDT();										// 清看门狗
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -