📄 systemservice.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 + -