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

📄 playdata.c

📁 详细的红外测温模块的电路原理图
💻 C
字号:
//==============================================================================
//文件名称:PlayData.c
//功能描述:播放温度值
//维护记录:2006.4.20 by hongyan.Feng
//==============================================================================
#include "s480.h"

#define P_Watchdog_Clear (volatile unsigned int *)0x7012

//===============================================================================
//语法格式:void PlaySnd_Auto(unsigned int uiSndIndex)
//实现功能:自动播放语音函数
//参    数:uiSndIndex,播放索引号
//返 回 值:无
//日    期:2005.11.30
//==============================================================================
void PlaySnd_Auto(unsigned int uiSndIndex)
{
	SACM_S480_Initial(1);						//初始化为自动播放方式
	SACM_S480_Play(uiSndIndex,3,3);	            //播放
	while((SACM_S480_Status() & 0x0001) != 0)
	{											//判断播放状态,如还在播放则继续循环
		SACM_S480_ServiceLoop();				//播放系统服务程序
		*P_Watchdog_Clear = 0x0001;			
	}	
	SACM_S480_Stop();							//停止播放
}
//===============================================================================
//语法格式:void F_TempplayAndShow(float temp)
//实现功能:温度播放函数
//参    数:temp,温度值
//返 回 值:无
//日    期:2006.4.20
//==============================================================================
void F_TempplayAndShow(float temp)
{
	int iShow[6];								 //播报数存储数组
	temp=temp*100;                               //温度值乘100,以方便计算小数点后两位
	iShow[5]=temp/10000;                         //计算温度值的百位数
	iShow[4]=(temp/1000);                        //计算温度值的十位数
	iShow[4]=iShow[4]%10;                        
	iShow[3]=(temp/100);                         //计算温度值的个位数
    iShow[3]=iShow[3]%10;
	iShow[2]=(temp/10);                          //计算温度值的小数点后第一位数
	iShow[2]=iShow[2]%10;
	iShow[1]=(temp);                             //计算温度值的小数点后第二位数                         
	iShow[1]=iShow[1]%10;
	if(iShow[5]!=0)                                              //如果百位数字不为0
	{                          
		PlaySnd_Auto(iShow[5]);                                  //播放百位数字
		PlaySnd_Auto(10);                                        //播放"百"
	}
	if((iShow[5]!=0)&&(iShow[4]==0)&&(iShow[3]!=0))              //如果百位数字不为0且十位为0,但是个位不为0
	{
		PlaySnd_Auto(iShow[4]);                                  //播放十位数字 	
	}
	if(iShow[4]!=0)                                              //如果十位不为0
	{
		PlaySnd_Auto(iShow[4]);                                  //播放十位数字
		PlaySnd_Auto(11);                                        //播放"十"
	}
	if((iShow[4] == 0)&&(iShow[5]==0)&&(iShow[3]==0))            //如果百位,十位,个位都为0
	{
		PlaySnd_Auto(iShow[3]);                                  //播放个位数字
	}
	if(iShow[3]!=0)                                              //如果个位为不为0
	{
		PlaySnd_Auto(iShow[3]);                                  //播放个位数字
	}
	PlaySnd_Auto(12);                                            //播放"点"
	PlaySnd_Auto(iShow[2]);                                      //播放小数点后第一位数字
	PlaySnd_Auto(iShow[1]);                                      //播放小数点后第二位数字
	PlaySnd_Auto(13);                                            //播放"摄氏度"
	*P_Watchdog_Clear = 0x0001;
}

⌨️ 快捷键说明

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