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

📄 main.c

📁 智能水表程序 来着互联网
💻 C
字号:
//-----------------------------------------------------------------------------
// Water.c
//-----------------------------------------------------------------------------
// Copyright 2007 - Tech, Inc.
//
// AUTH: ZhuXiaoGang
// DATE: 11 APR 07
//
// Target: C51 mcu
//
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <reg52.h>
#include <string.h>
#include "cpu/cpu.h"
#include "main/main.h"
#include "ext/bc7281.h"
#include "rfid/card.h"
#include "card/block.h"
#include "comm/gsm.h"
#include "misc/misc.h"
#include "misc/general.h"
#include "config/config.h"
//-----------------------------------------------------------------------------
// Global Variables
//-----------------------------------------------------------------------------
char code  City_Well[6] = { 0x20, 0x00, 0x00, 0x00, 0x06, 0x00 };
char idata Comm_Buf[29];

STRemain idata r;
STFlow   idata f;

char idata rtn = 0;

char bdata bFlag  = 0;
	 sbit bRst    = bFlag ^ 7;
	 sbit bDue    = bFlag ^ 6;
	 sbit bFlow   = bFlag ^ 5;
	 sbit bRecord = bFlag ^ 4;
	 sbit bFill   = bFlag ^ 3;
	 sbit bComm   = bFlag ^ 2;
	 sbit bSensor = bFlag ^ 1;
	 sbit bWire   = bFlag ^ 0;

char bdata bFlagB = 0;
	 sbit bMem    = bFlagB ^ 7;
	 sbit bRtc    = bFlagB ^ 6; 
	 sbit bModule = bFlagB ^ 5;
	 sbit bDisp   = bFlagB ^ 4;
	 sbit bRCtrl  = bFlagB ^ 3;
	 sbit bDoor   = bFlagB ^ 2;
	 sbit bPump   = bFlagB ^ 1;
	 sbit bCheck  = bFlagB ^ 0;

char bdata bTask  = 0;
	 sbit Task0   = bTask ^ 0;
	 sbit Task1   = bTask ^ 1;
	 sbit Task2   = bTask ^ 2;
	 sbit Task3   = bTask ^ 3;
	 sbit Task4   = bTask ^ 4;
	 sbit Task5   = bTask ^ 5;
	 sbit Task6   = bTask ^ 6;
	 sbit Task7   = bTask ^ 7;
//-----------------------------------------------------------------------------
// Main Routine
//-----------------------------------------------------------------------------
void main (void)
{
	cpu_Initial ();
    Initial ();
	memset ( Comm_Buf, 0, sizeof( Comm_Buf ));
		#ifdef FEE_PULSE
	bSensor = Check_Sensor_Level ();
		#endif

    while ( TRUE )
    {  
		if ( Task0 )
		{	
			Task0 = 0;
			Clear_Dog;
			Check_Sensor_Fault ();
			Set_Relay_Led ();
		}
		if ( Task1 )
		{	
			Task1 = 0;
			Clear_Dog;
			if ( f.tFee ) f.tFee--;
				#ifdef FEE_PULSE
			if ( f.tFee == ( TFAULT_DEALY / 2 ) && bWire == OK ) bSensor = Check_Sensor_Level ();
				#endif
				#ifdef FEE_TIME
		    if ( f.tFee == ZERO && Fee_Account () == UPDATE ) Mem_Fee_Update ();
				#endif
			Run_after_Year ( RUN_YEAR );
			bc7281_Set ();
			if ( f.tDisp ) f.tDisp--;
			else Main_Display_Item ();

			Record_Auto_Store ();
			if ( bComm == NEW_DATA )
			{
				bComm = Check_Comm_Response ( Comm_Buf );
				memset ( Comm_Buf, 0, sizeof( STMsg ));
				IE1 = 0;	EX1 = 1;
			}
				#if DOOR_CHECK
			Check_Door ();
				#endif
		}
		if ( Task2 )
		{
			Task2 = 0;
			Clear_Dog;
		    if (( rtn = Set_Card_Module ()) == TRUE )
				bModule = ICCMODULE_OK;
			else
			{
				bModule = CLEAR;
				bc7281_Display_Dig ( Code3, DISP_DELAY1 );
				#if icc_Warn
					bc7281_Display_Dig ( CodeK | ( 0x0f & rtn ), DISP_DELAY1 );
				#endif
			}
			if ( bModule == ICCMODULE_OK ) rtn = Check_Card_Type ();
				#if icc_Warn
					if ( rtn != TRUE )	bc7281_Display_Dig ( CodeL | ( 0x0f & rtn ), DISP_DELAY0 );  tDisp = 5;
				#endif
		}
		if ( Task3 )
		{	
			Task3 = 0;
			Clear_Dog;
				#ifdef FEE_PULSE
		    if ( f.tFee == ZERO && Fee_Account () == UPDATE ) Mem_Fee_Update ();
				#endif
		}
        if ( Task4 )
		{
			Task4 = 0;
			Clear_Dog;
			f.Flow = ((int) r.Total - f.Flow1 ) * FLOW_FACTOR;
			f.Flow1 = (int) r.Total;
		}
		cpu_Power_Idle;
    }
}

⌨️ 快捷键说明

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