单片机智能遥控器系统设计 第10页
.DW offset __RES_7_48K_ea,seg __RES_7_48K_ea;
_RES_8_48K_SA:
.DW offset __RES_8_48K_sa,seg __RES_8_48K_sa;
_RES_8_48K_EA:
.DW offset __RES_8_48K_ea,seg __RES_8_48K_ea;
// End Table
.PUBLIC T_SACM_S480_SpeechTable;
T_SACM_S480_SpeechTable:
.DW _RES_1_48K_SA//1 1
.DW _RES_2_48K_SA//2 2
.DW _RES_3_48K_SA//3 3
.DW _RES_4_48K_SA//4 4
.DW _RES_5_48K_SA//5 5
.DW _RES_6_48K_SA//6 6
.DW _RES_7_48K_SA//7 7
.DW _RES_8_48K_SA//8 8
3.7语音处理程序设计
相关API函数如下所示:
int SACM_S480_Initial(int Init_Index) //初始化
void SACM_ S480_ServiceLoop(void) //获取语音资料,填入译码队列
void SACM_ S480_Play(int Speech_Index, int Channel, int Ramp_Set)
//播放
void SACM_ S480_Stop(void) //停止播放
void SACM_S480_Pause (void) //暂停播放
void SACM_S480_Resume(void) //暂停后恢复
void SACM_S480_Volume(Volume_Index) //音量的控制
unsigned int SACM_S480_Status(void) //获取模块的状态
Call F_FIQ_Service_ SACM_S480 //中断服务函数
各函数具体内容如下:
1)【API格式】C:void SACM_S480_Initial(int Init_Index)
ASM:R1=[ Init_Index]
Call F_ SACM_ S480_Initial
【功能说明】SACM_S480语音播放之前的初始化。
【参数】Init_Index=0 表示手动方式;Init_Index=1 则表示自动方式。
【返回值】0:代表语音模块初始化失败
1:代表初始化成功。
【备注】该函数用于对定时器、中断和DAC等的初始化。
2) 【API格式】C:void SACM_S480_ServiceLoop(void)
ASM:Call F_ SACM_S480_ServiceLoop
【功能说明】从资源中获取SACM_S480语音资料,并将其填入解码队列中。
【参数】无。
【返回值】无。
【备注】播放语音文件中数据,当出现FF FF FFH数据时便停止播放。
3) 【API格式】
C:int SACM_S480_Play(int Speech_Index, int Channel, int Ramp_Set);
ASM:R1=[ Speech _Index]
R2=[ Channel]
R3=[ Ramp_Set]
Call SACM_S480_Play
【功能说明】播放资源中SACM_S480语音或乐曲。
【参数】Speech _Index 表示语音索引号。
Channel: 1.通过DAC1通道播放;
2.通过DAC2通道播放;
3.通过DAC1和DAC2双通道播放。
Ramp_Set:0.禁止音量增/减调节;
1.仅允许音量增调节;
2.仅允许音量减调节;
3.允许音量增/减调节。
【返回值】无。
【备注】
① SACM_S480的数据率有4.8Kbps\7.2Kbps三种,可在同一模块的几种算法中自动选择一种。
②Speech_Index是定义在resource.inc文件中资源表(T_SACM_S480_SpeechTable)的偏移地址。
③ 中断服务子程序中F_FIQ_Service_ SACM_S480必须放在TMA_FIQ中断向量上(参见SPCE的中断系统)。
④函数允许TimerA以所选的的数据采样率(计数溢出)中断。
发音自函数程序如下:
void PlayRespond(int Result)
{
SACM_S480_Play(Result, 3, 3);
while((SACM_S480_Status()&0x0001) != 0)
{
SACM_S480_ServiceLoop();
ClearWatchDog();
}
SACM_S480_Stop();
}
3.8 具体步骤
1)新建项目, 项目名称mySheJi。
(2)该项目下新建汇编文件, 文件名称FIQ..ASM。
(3)在汇编文件中键入范例汇编源代码(如图6.64)。
(4)该项目下新建C 文件, 文件名称main.c。
(5)在C 文件中键入范例C 源代码(如图6.65)。
(6)在源文件组中添加HARDWARE.ASM 文件
(7)在头文件组中添加s480.INC、HARDWARE.INC 和RESOURCE.INC 头文件
(8)在资源文件视窗中,添加资源文件
(9)保存项目。
(10)编译调试该程序。
(11)下载到仿真板中
这时在系统自动生成的Resource.asm 文件中添加如下内容即可:
.PUBLIC T_SACM_S480_SpeechTable;
T_SACM_S480_SpeechTable:
.DW _RES_1_48K_SA//1 1
.DW _RES_2_48K_SA//2 2
.DW _RES_3_48K_SA//3 3
.DW _RES_4_48K_SA//4 4
.DW _RES_5_48K_SA//5 5
.DW _RES_6_48K_SA//6 6
.DW _RES_7_48K_SA//7 7
.DW _RES_8_48K_SA//8 8
3.9项目实现过程
新建项目的方法步骤:
1. 用鼠标左键单击File 下拉菜单New 弹出New 对话框,如图6.32所示。
2. 在该窗口中选中Project 标签并在File 的文本框中键入项目的名称。在Location 下的文本框中输入项目的存取路径或利用该文本框右端的浏览按钮制定项目的存储位置。
3. 用鼠标左键单击New 对话框里的OK 按钮,则项目建立完成。
新建项目的需求:
在做一个应用程序前,首先要建项目。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
单片机智能遥控器系统设计 第10页下载如图片无法显示或论文不完整,请联系qq752018766