main.c

来自「试验仪自检程序」· C语言 代码 · 共 102 行

C
102
字号
//======================================================
//  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.
//========================================================

//============================================================
//  工程名称: LED_Dots_Key_Music.spj
//  功能描述:  通过1*8按键扫描,不同的按键完成不同的语音播放控制。
//  文件来源:《实验仪实验指导书》"实验三十五  1*8键盘播放语音"  第125页
//  IDE环境:   SUNPLUS u'nSPTM  IDE 1.8.4
//
//  涉及的库:
//  组成文件:
//    	main.c/hardware.asm/isr.asm/key.asm/led.asm
//============================================================
//============================================================
// 文件名称:main.c 
// 实现功能: 通过1*8按键扫描,不同的按键完成不同的语音播放控制
//============================================================

#include "hardware.h"
#include	"s480.h"    
#define GREEN  0x00ff
#define RED    0xff00
#define HaveKey  1
#define NoKey    0


#define		SPEECH_1	    0
#define		DAC1			1
#define		DAC2			2
#define		Ramp_UpDn_Off	0
#define		Ramp_Up_On		1
#define		Ramp_Dn_On		2
#define		Ramp_UpDn_On	3
#define		Auto			1
#define		Full			1
#define		Empty			2

unsigned char Keycode; 
unsigned char KeyFlag;        //按键标识  
     
//============================================================= 
// 函数名称:    int main()   
// 功能描述:    通过1*8按键扫描,不同的按键完成不同的语音播放控制
// 语法格式:    int main() 
//入口参数:     无
// 出口参数:    无
// 注意事项:    仅为用户模型
//=============================================================

int  main(void)
{
    KeyFlag = 0;
	Keycode = 12;
	SP_Init_B();
	SP_Init_A();
	SP_Init_DisplayBuff();
	show();
	SACM_S480_Initial(Auto);   //自动方式播放初始化
 	while(1)
	{
	    F_ClearWatchdog();                                      // 清看门狗
	    Keycode = F_Key_Scan();//扫描键盘
		while(KeyFlag == HaveKey)
		{
			KeyFlag = NoKey;
			if(Keycode == 10) Keycode = 0;
    		show();	    	  	    	
	    	switch(Keycode)
		    {		
		       case 1:	SACM_S480_Play(0,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       case 2: 	SACM_S480_Play(1,DAC1+DAC2,Ramp_UpDn_On);break;
		       case 3: 	SACM_S480_Play(2,DAC1+DAC2,Ramp_UpDn_On); break;
		       case 4:  SACM_S480_Play(3,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       case 5:  SACM_S480_Play(4,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       case 6: SACM_S480_Play(5,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       case 7:SACM_S480_Play(6,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       case 8:SACM_S480_Play(7,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       case 9:SACM_S480_Play(8,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       case 0:SACM_S480_Play(9,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号、播放通,允许音量增/减调节
		                break;
		       default: break;		   	
        	}
		     
        }
	    SACM_S480_ServiceLoop();                                // 获取语音数据并将其填入解码队列      
	    F_ClearWatchdog();                                      // 清看门狗
    }
	return 0;
}

⌨️ 快捷键说明

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