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

📄 init.c

📁 采用普通单片机控制的电桥测试仪
💻 C
字号:
/*
*********************************************************************************************************
*										File Name:	Init.c
*
*								Last Modified Data: 2006-08-10
*
*										Last Version:V1.0
*
*								Description:完成系统资源初始化
*
*********************************************************************************************************
*/

#define _INIT_
#include "..\Inc\Include.h"

/*
********************************************************************************************************
* Function:InitSys
*
* Descriptions:对系统资源、变量进行初始化
*
* Input:无
* 
* OutPut:无
*******************************************************************************************************
*/

void InitSys(void)
{
	uint i;
	for (i=0; i<5000; i++)	;
	Beep(100);
	InitVariable();
	InitLcd();
	InitPCF8583();
	InitPower();        //对电源进行初始化
	LoadMenus(); 		// 将显示界面写入液晶显示的内存
	InitJDQ();		    // 初始化继电器 
	InitTimer();	    // 初始化定时器
	AutoCloseTime = TimeNow[4];
}

/*
********************************************************************************************************
* Function:InitPower
*
* Descriptions:对电源进行初始化 若LcdLedFlag=0x44 则对DQ9继电器以及电源进行初始化
*
* Input:无
* 
* OutPut:无
*******************************************************************************************************
*/
void InitPower(void)
{
	POWER_ON_OFF = ON;//POWER_ON_OFF = P3^3;
	if(DataSet[LCDBGD]!=0)//DataSet[1]
	{	
		LcdLedFlag =LCD_LED;//LCD_LED=0x04 
	}
	else
	{
		LcdLedFlag = 0;
	}
	P0 = LcdLedFlag;
	PLUS1;
   
}
/*
********************************************************************************************************
* Function:InitTimer
*
* Descriptions:对定时器初始化
*
* Input:无
* 
* OutPut:无
*******************************************************************************************************
*/
void InitTimer(void)
{

	TMOD=0x21;//设置T1为计数方式。T0为定时方式
	EA=1;
	ET0=1;
	TH0=TPH0;
	TL0=TPL0;
	TR0 = 1;
	TR1 = 0;
	TR2 = 0;
}
/*
********************************************************************************************************
* Function:InitJDQ
*
* Descriptions:初始化继电器,DQ1:向上,DQ2:向下,DQ3:向下,DQ4:向上,DQ5:向上,DQ6:向下,DQ7:向下,DQ8向上:*
* Input:无
* 
* OutPut:无
*******************************************************************************************************
*/
void InitJDQ(void)
{
	P0=0x69;
	PLUS2;
	PLUS3;
    P0=0X44;
    PLUS1;
	P0=0;  // 继电器去电,省电
	PLUS2;
	PLUS3;
    P0=0X04;
    PLUS1;
  //  P0 = 0xA6;  PLUS3;
}
/*
********************************************************************************************************
* Function:InitVariable
*
* Descriptions:变量初始化
*
* Input:无
* 
* OutPut:无
*******************************************************************************************************
*/
void InitVariable(void)
{
	uchar i;
	uint  tmp;
	CanClose=0;
	USE_ON_CHIP_XRAM;	
	KeyTime = 0;
	HaveKeyDown = 0;
	KeyState = 0;
	MenuID = 0;
	MenuIndex = 0;
	XiuGai = 0;
	fb = 0;
	Test = 0;
	LcdLedFlag=0;
	LcdLedTime=0;
	AutoCloseTime=0;

	i = II3RD(AT24C256,I2C_YEAR);
	if(i>99)	i = 6;
	TimeNow[0] = i;
	TimeNow[1] = 8;
	TimeNow[2] = 1;
	TimeNow[3] = 12;
	TimeNow[4] = 0;

	for(i=0;i<3;i++)
	{
		DataSet[i] = II3RD(AT24C256,I2C_ANJIANYIN+i);//I2C_ANJIANYIN=0x0001
		if(i==0)
		{
			if(DataSet[0]>1)	DataSet[0] = 0;
		}
		else if(i==1)
		{
			if(DataSet[i]>3)	DataSet[i] = 0;
		}
		else
		{
			if(DataSet[i]>3)	DataSet[i] = 1;
		}
	}
	QuanChang = 0;
	for(i=0; i<3; i++)
	{
		tmp = II3RD(AT24C256,I2C_FenDuan+i);
		if (tmp>=5)		tmp = 0;	
		FenDuanSize[i] = tmp;
	}
	for(i=0; i<3; i++)
	{
		tmp = II3RD(AT24C256,I2C_FenDuan+3+i*2)*256;	
		tmp+= II3RD(AT24C256,I2C_FenDuan+4+i*2);
		if(tmp>9999)	tmp = 0;
		FenDuanLong[i] = tmp;
		QuanChang += tmp;
	}
	if(QuanChang>(3*9999))	QuanChang = 3*9999;

	OldDataSum = II3RD(AT24C256,I2C_OLDDATA);	// 历史数据的总条数
	if(OldDataSum>MAX_OLDDATA_SUN)	
		OldDataSum = 0;
	OldDataIndex = 0;
}
/*---------------------------------End-----------------------------------*/

⌨️ 快捷键说明

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