编辑: 芳甲窍交 | 2019-07-17 |
8 bit Data Msb ?? LSB
8 bit Data Lsb ?? Sum Item+MSB+LSB=SUM ?? CR 0DH,结束码 ??? 读取数据流程图如图5 图5:软件工作流程图 软件主要程序有: (能实时播报和显示温度) 本软件系统设计简单.主要是因为凌阳的十六位单片机开发环境使用方便,并支持C语言与汇编语言的互相调用,且提供丰富的凌阳语音函数库,只要我们了解这些函数的使用方法,我们就可以很容易的实现语音的播放.本系统采用S480压缩格式,该压缩算法压缩比较大80:3, 存储容量大,音质介于A2000和S240之间,适用于语音播放.例如播放部分代码如下: ??? 其相关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 //中断服务函数 程序如下: main ( ) { / /初始化;
int i, iFlag = 0, iLastFlag = 0, iKeyture, uiSum = 0, uiFlag[
16 ] = {0};
int Item , MSB, LSB, SUM, CR, iTest[
10 ] , iDataFlag = 0, iShow[
6 ];
float temp, temp1;
F_ IOSET(中断初始化;
F_ Irq Inti IRQ初始化;
i =
3 P_ IOB_Buffer;
/ /读B口缓冲器;
i = i| 0x0100;
/ /DAC1;
3 P_ IOB_Data = i;
/ /写端口;
i =
3 P_ IOB_Buffer;
i = i| 0x0200;
/ /DAC2;
3 P_ IOB_Data = i;
/ /转换温度;
while (1) { ClearWDog;
/ /清看门狗;
if ( uiSum = = 0xaaaa) { iTest[
0 ] = uiFlag[
0 ] | uiFlag[
1 ] | uiFlag[
2 ] | uiFlag[
3 ] | uiFlag[
4 ] | uiFlag[
5 ] | uiFlag[
6 ] | uiFlag[
7 ] | uiFlag[
8 ] | uiFlag [
9 ] | uiFlag[
10 ] | uiFlag[
11 ] | uiFla g[
12 ] | uiFlag[
13 ] | uiFlag[
14 ] | uiFlag[
15 ];
} } if ( ( iTest[
0 ]&
0xff) ! = 0&
&
( iTest[
0 ]&
0xff00) ! = 0xff00) { for( i = 0;
i <
10;
i 逐次转换 { while ( uiSum! = 0xaaaa) ClearWDog;
iTest[ i ] = uiFlag[
0 ] | uiFlag[
1 ] | uiFlag[
2 ] | uiFlag[
3 ] | uiFlag[
4 ] | uiFlag[
5 ] | uiFlag[
6 ] | uiFlag[
7 ] | uiFlag 计算最终温度值;
if ( ( iTest[
0 ]&
0xf000) = = 0xf000) { iDataFlag + + ;
Item = ( iTest[
0 ]&
0xff00) >
>
8;
MSB = ( iTest[
0 ]&
0x00ff) ;
LSB = ( iTest[
1 ]&
0xff00) >
>
8;
・88・ SUM = ( iTest[
1 ]&
0x00ff) ;
CR = ( iTest[
2 ]&
0xff00) >
>
8;
asm ( int off ) ;
} if ( Item = = 0x66&
&
CR = = 0x0d) { iLastFlag = 1;
temp1 = ( (MS B <
<
8) |LSB) ;
temp1 = temp1 /16;
temp1 = temp1 - 273. 15;
asm ( int fiq, irq /n ) ;
} / /显示播报;
if ( Item = = 0x4c&
&
CR = = 0x0d) { temp = ( (MSB <
<
8) |LSB) ;
temp = temp /16;
temp = temp - 273. 15;
if ( iLastFlag = = 1) { F_PlayS480 (11) ;
F_PlayS480 (16) ;
F_Tempp lay( temp1) ;
/ /温度播报;
} F_PlayS480 (17) ;
F_Tempp lay( temp1) ;
/ /温度显示;
asm ( int fiq, irq /n ) ;
功能总结 凌阳公司的SPCE061A的结构特点及其相关的一些开发平台为我们控制和播放提供了极其方便的条件,当然SPCE061A还有很多的类似于其他方面的单片机所具有的功能,使用起来同样方便.随着市场竞争的激烈,开发者对产品开发的资金和时间的投入不断缩小,相信凌阳科技能实现开发者们的需求.本系统以凌阳16位单片机为控制核心,利用专用传感器检测技术并配合一套独特的软件算法实现了远程测温方法.系统能在三秒钟内测出保留百分位的环境温度和目标温度,并做相应的语音播报和数........