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

📄 port.c

📁 智能水表程序 来着互联网
💻 C
字号:
//-----------------------------------------------------------------------------
// port.c
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <reg52.h>
#include <intrins.h>
#include "cpu/cpu.h"
#include "main/main.h"
#include "misc/general.h"
#include "config/config.h"
//-----------------------------------------------------------------------------
// Function Prototypes
//-----------------------------------------------------------------------------
void Delay            ( long t );
void Relay_On           ( void );
void Relay_Off          ( void );
void Speaker_Beep       ( void );
void Check_Sensor_Fault ( void );
bit  Check_Sensor_Level ( void );
//-----------------------------------------------------------------------------
// Delay Routine
//-----------------------------------------------------------------------------
void Delay( long t )
{
	while ( t-- )  if (( t & 0x0ff ) == 0x00 ) Clear_Dog;
}
//-----------------------------------------------------------------------------
// Relay On Routine
//-----------------------------------------------------------------------------
void Relay_On (void)
{
	Relay_CTRL = 1;
    _nop_ ();	_nop_ ();
	Relay_CLK = 1;
    _nop_ ();	_nop_ ();
	Relay_CLK = 0;
    _nop_ ();	_nop_ ();
	Relay_CLK = 1;
}
//-----------------------------------------------------------------------------
// Relay Off Routine
//-----------------------------------------------------------------------------
void Relay_Off (void)
{
	Relay_CTRL = 0;
    _nop_ ();	_nop_ ();
	Relay_CLK = 1;
    _nop_ ();	_nop_ ();
	Relay_CLK = 0;
    _nop_ ();	_nop_ ();
	Relay_CLK = 1;
}
//-----------------------------------------------------------------------------
// Speaker Shout Routine
//-----------------------------------------------------------------------------
void Speaker_Beep (void)
{
	Speaker_OUT = SHOUT;
	Delay ( BUZZER_TIME );
	Speaker_OUT = QUIET;
}
//-----------------------------------------------------------------------------
// Check Sensor Status Routine
//-----------------------------------------------------------------------------
void Check_Sensor_Fault (void)
{
	char i;
		#ifdef FEE_TIME
	#define Sensor_Fault	V380
		#endif

	if ( Sensor_Fault )
    {
		for ( i = nSENSOR_CHECK; i > 0; i-- )
  		{
        	Delay ( SENSOR_CHECK_DELAY );
			if ( !Sensor_Fault ) break;
		}
	}
	if ( Sensor_Fault )
	{
		bWire = ERROR;
		f.tFee = TFAULT_DEALY;
		Speaker_OUT = SHOUT;
			#if SENSOR_FAULT_SEQU
		Delay ( FAULT_BEEP_TIME );
		Speaker_OUT = QUIET;
			#endif
	}
	else
	{
		bWire = OK;
		Speaker_OUT = QUIET;
	}
}
//-----------------------------------------------------------------------------
// Check Sensor Level Routine
//-----------------------------------------------------------------------------
	#ifdef FEE_PULSE
bit Check_Sensor_Level (void)
{
	if ( Sensor_Level == HIGH )
	{
		Delay ( TLEVEL );
		if ( Sensor_Level == HIGH )	return HIGH;
	}
	else
	{
		Delay ( TLEVEL );
		if ( Sensor_Level == LOW  ) return LOW;
	}
}
	#endif
//-----------------------------------------------------------------------------
// Check Door Open Warning Routine
//-----------------------------------------------------------------------------
	#if DOOR_CHECK
void Check_Door ( void )
{
	if ( Door_Switch == ON )
	{
		bDoor = OPEN;
		Speaker_OUT = SHOUT;
		return;
	}
	Door_Check = ON;
	Delay( 1 );
	if ( Door_Switch == ON )
	{
		if ( bCheck == ON && ( bDoor == OPEN || ( bDoor == CLOSE && ++f.tCheck == TCHECK )))
		{
			bCheck = OFF;
			f.tCheck = CLEAR;
		}
		bDoor = CLOSE;
		Speaker_OUT = QUIET;	
	}
	else
	{
		bDoor = OPEN;
		if ( bCheck != ON ) Speaker_OUT = SHOUT;
	}
	Door_Check = OFF;
}
	#endif

⌨️ 快捷键说明

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