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

📄 systemservice.c

📁 带时钟功能温度和湿度测量的仪器
💻 C
字号:
/*
文件名:  SystemService.c
功能:    模块公共服务函数实现
单位:    浙江工商大学-信电学院
创建日期:2004-09-24
创建人:  Houseivan
修改人:  Houseivan
修改日期:2005-03-11
*/
#include "Includes.h"
/*检查是否需要提供系统服务功能*/
#if _SYS_TASK>0

/*检测是否配置了网络操作功能*/
#if _SCOM_TASK>0
	extern uchar data SlaveAddr;		//本地主机地址
	extern uchar data MasterAddr;		//远程主机地址
#endif

#if	_CLOCK_TASK>0	
//	extern uchar code InitClkBuf[];
	extern uchar data UartRecBuf[];
#endif
	extern uchar data SampleTimer;		//显示数据刷新计数器
	extern uchar data SystemState;
	extern uchar data LcmMode;						//显示模式选择
	extern bit		  WorkMode;			//根据登陆成功与否确定站点工作的模式
/*------------------------------------------------*/
/*
名称: DelayTime(Word16U N1,Word16U N2)
功能: 延时函数 
注意:
*/
void DelayTime(Word16U N1,Word16U N2)
{   while(N1--)
       while(N2--);
}

/*------------------------------------------------*/
/*
名称: CopyBuffer()
功能: 数据序列复制函数 
注意:
*/
void	CopyBuffer(uchar *from , uchar *to)
{
	uchar nCount;

	for(nCount=0;nCount<_BUF_MAX_LENG;nCount++)
		to[nCount]=from[nCount];
}
/*------------------------------------------------*/
/*
名称: SystemInit()
功能: 系统初始化
注意:  
*/
/*------------------------------------------------*/
void	SystemInit(void)
{
	TH1=_TIMER1_H;              
	TL1=_TIMER1_L;
	IE|=0x80;  								//开总中断	
	IP=0x00;								//无优先级
	TCON|=0x01;								//Ex0为边沿触发方式
	TMOD|=0x15;		    					//T0计数器T1定时器 
	ET1=1;
	ET0=0;
	ClearWatchDog();
	#if _SYS_INTERRUPT>0
		TR1=1;			   					//根据配置要求启停定时器
	#else
		TR1=0;
	#endif
	#if	_LCM_TASK>0
		LCM_Initialize();				    //初始化显示器
	#endif
	ClearWatchDog();
	//#if	_CLOCK_TASK>0	
		//ClockInitialize(InitClkBuf); 		//登陆系统校对时钟
		//ReadClock(UartRecBuf); 			//将上位机的时钟写入芯片
	//#endif
	ClearWatchDog();
	/*检测是否配置了网络操作功能*/
	#if	_SCOM_TASK>0	
		#if (_E2PROM_TASK >0)
			SlaveAddr=ReadOneChar(_LOCAL_ID);	
			MasterAddr=ReadOneChar(_REMOTE_ID);
		#else
			SlaveAddr=_DEFAULT_MCU_IP;		//本地主机地址
			MasterAddr=_DEFAULT_PC_IP;		//远程主机地址
		#endif
		Uart0Init();						//初始化串口
		ClearWatchDog();
		WorkMode=LoginMaster();
	#endif
	ClearWatchDog();
	SystemState=_CMD_NORMAL_RUN;			//开机时设定为交互空闲模式
	LcmMode=_TIME_RUN;
	SampleTimer=_SAMPLE_ALARM;
}
/*------------------------------------------------*/
/*省电模式功能开关参数  :1->选中;0->取消*/
#if	_IDLE_TASK>0
/*
名称:	SystemIdleTaskRun() 
功能:   系统进入节能省电模式
注意:    通过中断方式退出待机模式后继续执行程序
*/
	#define	SystemIdleTaskRun()	    PCON|= 0x01
/*
名称:	SystemPowerDown() 
功能:   系统进入掉电保护模式
注意:    通过硬件复位方式退出该模式,保护RAM内容其他都丢失
*/
	#define SystemPowerDown() 		PCON|=0x02

#endif		
/*------------------------------------------------*/
#endif

⌨️ 快捷键说明

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