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

📄 main.c

📁 该程序完成了c8051外围电路的驱动和串口协议的编写。希望能给大家学习51单片机带来帮助
💻 C
字号:
//*******************************************************************************
//Copyright (c) 2007,派利斯电子(北京)有限公司 硬件部
//文件名称: Main.c
//摘    要: 本文件主要包含PT2060-20程序中的主程序运行
//当前版本: D-1 
//作    者:  佟文杰
//完成日期: 4/13/2007
//修 改 人:
//修改原因:
//修改日期:
//*******************************************************************************
#include "hardware.h"
#include "currentmodule.h"
#include "channelstatus.h"
#include "Framemodule.h"
#include "adsample.h"
#include "alarm.h"
#include "can.h"
#include "comm.h"
#include "flashmodule.h"
#include "C8051F020.H"			//主函数的头文件调用最后全归结到调用framemodule.h文件


void HaveHOTResetProcess(void);
void NotHaveHOTResetProcess(void);
unsigned int idata  uchRstType _at_ 0xaf;

void main(void)
{	
	EA=0;
	DisableDog();
	EnableDog();
	InitHardWareModule();


	if (uchRstType != 0xa55a)
	{
		uchRstType = 0xa55a;	
		NotHaveHOTResetProcess();		
	}
	else if (uchRstType == 0xa55a)
	{
		HaveHOTResetProcess();
		InitHotResetFramPara();
		SetHotResetFlag(1);
	}
	else
	{
		HaveHOTResetProcess();
	}

	while(1)
	{			
		MainSignalProcess();
		CanMessageProcess();		
	}
}

//--------------------------------------------------------------------------
//函数名称:void NotHaveHOTResetProcess(void)
//功    能:没有热复位只是上电复位的执行程序     
//输入参数:无
//返    回:无
//完成日期:4/12/2007
//--------------------------------------------------------------------------
void NotHaveHOTResetProcess(void)
{	
	InitRuningLEDControl();		 //   加灯闪烁控制
	InitHardWareParaVariable();
	InitAlarmModuleSoftPara();
	InitChannelModulePara();
	SetHeartInterval(10);
	StartHeartBeat();
	InitAlarmModuleHeartBeatPara();
	InitFramemoduleParameters();	 //AD模块初始化应该放在参数初始化滞后
	EIP2 = EIP2 | 0x02; 	  //采样优先级最高
	StartHeartBeat();
 	EA = 1;   	
	InitFramemoduleVariable();
	CANModuleParaInit();		
	JudgeCPUSituationFlag();	
	DelayTimeReportModuleType();
	InitCOMMModulePara();
	CheckSystemRAMInvalidation();
	CheckSystemFLASHInvalidation();	
}

//--------------------------------------------------------------------------
//函数名称:void HaveHOTResetProcess(void)
//功    能:有热复位时执行的程序    
//输入参数:无
//返    回:无
//完成日期:4/12/2007
//--------------------------------------------------------------------------
void HaveHOTResetProcess(void)
{
	unsigned char xdata uchCPUAddress;

	InitRuningLEDControl();	
	HaveHotResetAlarmProcess(1);		   
	HaveHotResetAlarmProcess(2);		   
	InitHardWareParaVariable();

//----------------------------------------
//-------------------------------------------------

	SetHeartInterval(10);
	StartHeartBeat();
	InitAlarmModuleHeartBeatPara();
	InitFramemoduleParameters();	 //AD模块初始化应该放在参数初始化滞后
	uchCPUAddress = ReadCANAddress();
	CAN_Init(uchCPUAddress,1);	
	StopCan();				
	ClearAllMessage();		
	StartCan();				
	IE |= 0x04;	    //开中断1中断
	IT1 = 0;	      //电平触发
	EIP2 = EIP2 | 0x02; 	  //采样优先级最高
	StartHeartBeat();
 	EA = 1;		
	InitFramemoduleVariable();
	CANModuleParaInit();	
	JudgeCPUSituationFlag();
	InitCOMMModulePara();
	CheckSystemRAMInvalidation();
	CheckSystemFLASHInvalidation();	
}
















⌨️ 快捷键说明

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