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

📄 main.c

📁 本文介绍了利用两套SPCE061A精简开发板(简称61板)和两套传感器模组设计的遥控环境测量系统方案:其中利用一套61板作为主控制器
💻 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.
//======================================================================
//====================================================================================
//工 程 名:  RNTL_Measure.spj
//功能描述:  和SensorsMd_IRTDemo配合使用,SensorsMd_IRTDemo作为遥控器发射脉冲,RNTL_Measure接收并控制测量温度和光线
//包含文件:  main.c\Decode.c\Tem_Meature.c\Lig_Measure.c
//           hardware.asm\AD.asm\isr.asm
//           SPCE061A.h\s480.h
//           SPCE061A.inc\s480.inc
//硬件连接:  IOA0接TO,IOA1接LO,IOA7接传感器模组的RS,"+"接"+","-"接"-"(或者用一个10pin排线连接61板的J8与传感器模组的J2)
//           
//维护记录:  2006年8月7     v1.0    by hongyan.Feng
//====================================================================================

//====================================================================================
//文件名:main.c
//功能描述:红外遥控环境测试系统
//维护记录:2006年6月16         by hongyan.Feng
//====================================================================================
#include "SPCE061A.h"
extern unsigned int Decode(void);
extern void RN_Initial(void);

extern unsigned int Temp_Measure(void);		//温度测量函数,在Tem_Meature.c中定义
extern void PlaySnd(unsigned int SndIndex);	//申明语音播放指定段语音的函数
extern void PlayData(unsigned int iData);	//申明语音播放某一个3位数字的函数 

extern unsigned int Light_Measure(void);	//温度测量函数,在Tem_Meature.c中定义

unsigned int SFlag=0;
//====================================================================================
//语法格式:int main(void)
//功能描述:红外接收头的遥控器译码主函数
//入口参数:无
//出口参数:无
//维护记录:2006年8月7         by hongyan.Feng
//====================================================================================
int main(void)
{
	unsigned int iECode,Temp,Result;
	
	iECode = 0;
	Temp = 0;
	Result = 0;

	RN_Initial();

	while(1)                              
	{
		iECode = Decode();					//调用译码函数得到译码数据,在Encode.c文件中定义
		switch(iECode)
		{
			case 0x0080:
				iECode = 0;
				SFlag = 0x0001;
				Temp = Temp_Measure();		//测量并播放温度
				if((Temp>=0)||(Temp<=125))	//在测量范围内
				{
					PlaySnd(13);			//播放"温度"	
					PlayData(Temp);			//播放温度值,PlayData()函数在PlayVoice.c文件中定义
					PlaySnd(12);			//播放"摄氏度"
					if(Temp>32)
					{
						PlaySnd(13);		//播放"温度"
						PlaySnd(14);		//播放"太高"
						PlaySnd(16);		//播放"请"
						PlaySnd(17);		//播放"调大"
						PlaySnd(19);		//播放"空调"
					}
					if(Temp<15)
					{
						PlaySnd(13);		//播放"温度"
						PlaySnd(15);		//播放"太低"
						PlaySnd(16);		//播放"请"
						PlaySnd(18);		//播放"调小"
						PlaySnd(19);		//播放"空调"
					}
				}
				*P_Watchdog_Clear = 0x0001;	//清看门狗
				break;
			case 0x0081:
				iECode = 0;
				SFlag = 0x0002;
				Result = Light_Measure();	//测量并播放光线状况,这个函数在Lig_Measure.c文件中定义
				if(Result == 1)				//光敏电阻为>15K,太暗
				{
					PlaySnd(20);			//播放"光线"
					PlaySnd(23);			//播放"太弱"
					PlaySnd(24);			//播放"请"
					PlaySnd(25);			//播放"注意保护眼睛"
				}
				if(Result == 2)				//光敏电阻为<2K,光线太刺眼
				{
					PlaySnd(20);			//播放"光线"
					PlaySnd(22);			//播放"太强"
					PlaySnd(24);			//播放"请"
					PlaySnd(25);			//播放"注意保护眼睛"	
				}
				if(Result == 0)
				{ 
											//光敏电阻为6.8K<R<15K,光线柔和
					PlaySnd(20);			//播放"光线"
					PlaySnd(21);			//播放"柔和"
				}
				*P_Watchdog_Clear = 0x0001;	//清看门狗
				break;
			case 0x0082:
				*P_Watchdog_Clear = 0x0001;	//清看门狗
				break;
			default:
				break;
		}
		*P_Watchdog_Clear = 0x0001;
	}
}

//=====================================================================================================
//end
//=====================================================================================================

⌨️ 快捷键说明

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