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

📄 disp.c

📁 智能水表程序 来着互联网
💻 C
字号:
//-----------------------------------------------------------------------------
// disp.c
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <reg52.h>
#include "cpu/cpu.h"
#include "main/main.h"
#include "ext/bc7281.h"
#include "misc/misc.h"
#include "misc/general.h"
#include "config/config.h"
//-----------------------------------------------------------------------------
// Main Loop Display Shift Counter Constants
//-----------------------------------------------------------------------------
#define DISP_nSHIFT1		10
#define DISP_nSHIFT2		20
#define DISP_nSHIFT3		30
//-----------------------------------------------------------------------------
// Function Prototype
//-----------------------------------------------------------------------------
void Main_Display_Item   ( void );
void Set_Display_Counter ( void );
void User_Display_Item   ( void );
void Check_Display_Item  ( void );
//-----------------------------------------------------------------------------
// Set Display Counter on Formal Routine
//-----------------------------------------------------------------------------
void Set_Display_Counter ( void )
{
	if ( f.Run == RUN && ( Relay_CTRL == HIGH || Run_LED == ON ))	
		f.Disp_nShift ++;
	else if ( f.Run != RUN || ( Relay_CTRL == LOW && Run_LED == OFF ))
		f.Disp_nShift = CLEAR;
}
//-----------------------------------------------------------------------------
// Led Display Item Routine
//-----------------------------------------------------------------------------
void Main_Display_Item ( void )
{
	Set_Display_Counter ();
	if ( f.Run == TEST )
	{
		f.Disp_nShift = CLEAR;
		bc7281_Flash_Digital ( FLASH_OFF );	
		bc7281_Display_Dig   ( CodeJ | Hex_BCD( r.Remain, 7 ), DISP_DELAY0 );
	}
	else if ( f.Run == RUN )
	{
		if ( r.Remain == ZERO || r.Remain >= RemainMax )
		{			
			f.Disp_nShift = CLEAR;
			bc7281_Display_Dig   ( CodeJ | Hex_BCD( r.Remain, 7 ), DISP_DELAY0 );
			bc7281_Flash_Digital ( FLASH_ALL );
		}
		else if ( f.Disp_nShift < DISP_nSHIFT1 )
		{
			if ( bDue == TRUE ) bc7281_Display_Dig ( CodeI | Hex_BCD( r.Remain, 7 ), DISP_DELAY0 );
				   	       else bc7281_Display_Dig ( CodeJ | Hex_BCD( r.Remain, 7 ), DISP_DELAY0 );
			bc7281_Flash_Digital ( FLASH_DIG(0) );
		}
		else if ( f.Disp_nShift < DISP_nSHIFT2 )
		{
			bc7281_Display_Dig   ( CodeC | Hex_BCD( r.Total, 7 ), DISP_DELAY0 );
			bc7281_Flash_Digital ( FLASH_DIG(0) );
		}
		else if ( f.Disp_nShift < DISP_nSHIFT3 )
		{
			bc7281_Flash_Digital ( FLASH_OFF );	
			bc7281_Display_Dig   ( CodeD | Hex_BCD( f.Flow, 4 ), DISP_DELAY0 );
		}
		else if ( f.Disp_nShift > DISP_nSHIFT3 )
		{
			f.Disp_nShift = CLEAR;
			bc7281_Column1_OnOff ( COL1_OFF );
		}
	}
}
//-----------------------------------------------------------------------------
// User Card Display Item Routine
//-----------------------------------------------------------------------------
void User_Display_Item ( void )
{
	bc7281_Flash_Digital ( FLASH_OFF );
	bc7281_Display_Dig   ( Code1, USER_DISP_DELAY );				

	bc7281_Dig5DP_OnOff  ( DIG5DP_ON );
	bc7281_Display_Dig   ( CodeB | r.Fee, USER_DISP_DELAY );
	bc7281_Dig5DP_OnOff  ( DIG5DP_OFF );
	bc7281_Column1_OnOff ( COL1_OFF );

	if ( bDue == TRUE ) bc7281_Display_Dig ( CodeI | Hex_BCD( r.Remain, 7 ), USER_DISP_DELAY );
		   		   else bc7281_Display_Dig ( CodeJ | Hex_BCD( r.Remain, 7 ), USER_DISP_DELAY );

	f.Disp_nShift = CLEAR;
}
//-----------------------------------------------------------------------------
// Check Card Display Item Routine
//-----------------------------------------------------------------------------
void Check_Display_Item ( void )
{
	bc7281_Flash_Digital ( FLASH_OFF );
	bc7281_Display_Dig ( CodeG | Array_Long ( f.City, 3 ),  CHECK_DISP_DELAY );
	bc7281_Display_Dig ( CodeG | Array_Long ( f.Well, 3 ),  CHECK_DISP_DELAY );
	Display_Clock ( CHECK_DISP_DELAY );
	bc7281_Display_Dig ( CodeC | Hex_BCD ( r.Total,    7 ), CHECK_DISP_DELAY );
	bc7281_Display_Dig ( CodeD | Hex_BCD ( f.Flow,     4 ), CHECK_DISP_DELAY );
	bc7281_Display_Dig ( CodeE | Hex_BCD ( f.Record_n, 2 ), CHECK_DISP_DELAY );
	bc7281_Display_Dig ( CodeF | Hex_BCD ( r.LowLimit, 7 ), CHECK_DISP_DELAY );

	f.Disp_nShift = CLEAR;
}

⌨️ 快捷键说明

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