📄 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.
//======================================================================
//====================================================================================
//工 程 名: 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 + -