📄 main.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.
//======================================================================
//======================================================================
// 工程名称: ex3_LED_Key_Music
// 功能描述: 《实验仪指导书》综合实验
// 按键播放语音
// 不同的按键选择播放相对应的语句
// 涉及的库: CMacro1016.lib
// sacmv26e.lib
// 组成文件: main.c
// isr.asm/key.asm/Led.asm/hardware.asm
// hardware.h/s480.h/SPCE061A.h
// hardware.inc/s480.inc/SPCE061A.inc
// 硬件连接: 实验仪KEYPAD接口的IOA7~IOA0与COL1~COL8分别连接,IOA8与ROW连接
// IOB8~IOB15与LED_SEG接口的a~h连接
// LED_DIG接口的IOB2与DIG1连接
// 日期: 2005-10-17 v1.0(建立)
//======================================================================
//======================================================================
// 文件名称: main.c
// 功能描述: 1*8键盘控制语音播放
// 维护记录: 2005-10-17 v1.0
//======================================================================
#include "SPCE061A.h"
#include "Key.h"
#include "Dig.h"
#include "s480.h"
#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
//===============================================================================================
// 语法格式: int main(void)
// 实现功能: 主函数
// 参数: 无
// 返回值: 0
//===============================================================================================
void Initial_INT(void);
unsigned int g_Data[] = {0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x006f};
//0, 1, 2, 3, 4, 5, 6, 7, 8, 9
int main(void)
{
unsigned int Keycode;
*P_IOA_Dir |= 0x0100; // IOA8输出高电平
*P_IOA_Attrib |= 0x0100;
*P_IOA_Buffer |= 0x0100;
Key_Init();
DIG_Init();
Initial_INT();
SACM_S480_Initial(Auto); //初始化为自动方式播放
while(1)
{
*P_Watchdog_Clear = 0x0001; // 清看门狗
Keycode = Key_Get(); //扫描键盘
switch(Keycode)
{
case 0x80: // K1
SACM_S480_Play(0,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s1
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[1]); // 数码管显示按键序号
break;
case 0x40: // K2
SACM_S480_Play(1,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s2
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[2]); // 数码管显示按键序号
break;
case 0x20: // K3
SACM_S480_Play(2,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s3
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[3]); // 数码管显示按键序号
break;
case 0x10: // K4
SACM_S480_Play(3,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s4
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[4]); // 数码管显示按键序号
break;
case 0x08: // K5
SACM_S480_Play(4,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s5
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[5]); // 数码管显示按键序号
break;
case 0x04: // K6
SACM_S480_Play(5,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s6
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[6]); // 数码管显示按键序号
break;
case 0x02: // K7
SACM_S480_Play(6,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s7
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[7]); // 数码管显示按键序号
break;
case 0x01: // K8
SACM_S480_Play(7,DAC1+DAC2,Ramp_UpDn_On); // 播放语音资源s8
SACM_S480_Volume(15); // 设置播放音量
DIG_Set(1, g_Data[8]); // 数码管显示按键序号
break;
default:
break;
}
SACM_S480_ServiceLoop(); // 获取语音数据并将其填入解码队列
*P_Watchdog_Clear = 0x0001; // 清看门狗
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -