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

📄 display.c

📁 M200一个与单片机通信的C语言软件源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/***********************************************************************************
/----------------------Copyright (c) 2005 ~ 2008 Miartech. All Rights Reserved.-----------------------/
/***********************************************************************************
**-----------------------------------------File Info--------------------------------------------
** Last modified Date:  2007-09-04
** Descriptions: HMC16223(16*2 Words LCD)'s Primary Process Functions
**--------------------------------------------------------------------------------------------
** Created By:  	Kelven
** Created Date:	2007-04-17
**--------------------------------------------------------------------------------------------
** Modified by: 	Kelven
** Modified date:	2007-09-04
** Version:		V3.2.0
** Descriptions:
**--------------------------------------------------------------------------------------------
** Modified by: 	Li Sufen
** Modified date:	2008-05-20
** Version:		V3.2.3
** Descriptions:	Updating Key Configrating Function, Added PLC Chip Register Value Setting Module
***********************************************************************************/

#include "..\inc\Display.h"

extern bit g_bRefresh_DSP_Flag;
extern BYTE bdata g_cModCfgReg;
extern BYTE xdata g_cUart_Rate;
extern BYTE xdata g_cNode_Address;
extern BYTE xdata g_cUart_Rate_Value;
extern BYTE xdata g_cWRACD;
extern BYTE xdata g_cWRTDR;
extern BYTE xdata g_cWRTH0;
extern BYTE xdata g_cWRTH1;
extern BYTE xdata g_cDebug;
extern WORD data g_wTotal_Pkg;
extern  FLAG_YES_NO Config_Param_Completed;

BYTE code	ST_miar[14]			=	{"MiarTech Inc."};
BYTE code	ST_plcEVBD[13]		=	{"PLC EV Board"};

BYTE code	ST_Software[17]		=	{"Software Version"};
BYTE code	ST_Version[17]		=	{"Version:   4.0.0"};

BYTE code	ST_setting[10]		=	{"1.Setting"};
BYTE code	ST_Trans[14]			=	{"2.Transmitter"};
BYTE code	ST_receiver[11]		=	{"3.Receiver"};
BYTE code	ST_Inter_trans[14]	=	{"4.Inter_Trans"};
BYTE code	ST_Inter_rec[13]		=	{"5.Inter_Recv"};
BYTE code	ST_COM_Setting[14]	=	{"6.COM_Setting"};
BYTE code	ST_Return_Test[14]	=	{"7.Return_Test"};

BYTE code	ST_DataRate[12]		=	{"1.DataRate:"};
BYTE code	ST_CarrFre[11]		=	{"2.CarrFre:"};
BYTE code	ST_SS_Code[11]		=	{"3.SS Code:"};
BYTE code	ST_Pkt_Num[13]		=	{"4.PacketNum:"};
BYTE code	ST_UartRate[12]		=	{"5.UartRate:"};
BYTE code	ST_Node_Addr[12]	=	{"6.NodeAddr:"};
BYTE code	ST_Register[12]		=	{"7.Register"};
BYTE code	ST_SW_Version[13]	=	{"8.SW_Version"};
BYTE code	ST_DEBUG[9]			=	{"9.Debug:"};

BYTE code	ST_REG_WRACD[12]	=	{"0x0A-WRACD:"};
BYTE code	ST_REG_WRTDR[12]	=	{"0x0B-WRTDR:"};
BYTE code	ST_REG_WRTH0[12]	=	{"0x0C-WRTH0:"};
BYTE code	ST_REG_WRTH1[12]	=	{"0x0D-WRTH1:"};

BYTE code	ST_576[7]			=	{" 57.6k"};
BYTE code	ST_768[7]			=	{" 76.8k"};
BYTE code	ST_NODEF[7]			=	{"NO DEF"};
BYTE code	ST_1152[7]			=	{"115.2k"};

BYTE code	ST_Press_Enter[12]	=	{"Press Enter"};


/***********************************************************************************
** Function Name:	DSP_DataRate
** Input Parameters:None
** Output Parameters:None
** Implement:Display the Data Rate of PLC
***********************************************************************************/
void	DSP_DataRate(void)
{		
	switch((g_cModCfgReg & 0x0c)>>2)
	{	
		case 0:			//Data Rate = 1600/1920 bps;
		{	
			DSP_Write_Data('1');	
			DSP_Write_Data('6');	
		}	
		break;
		case 1:			//Data Rate = 800/960 bps;
		{	
			DSP_Write_Data(' ');	
			DSP_Write_Data('8');	
		}
		break;
		case 2:			//Data Rate = 400/480 bps;	
		{	
			DSP_Write_Data(' ');	
			DSP_Write_Data('4');	
		}
		break;
		case 3:			//Data Rate = 200/400 bps;
		{	
			DSP_Write_Data(' ');	
			DSP_Write_Data('2');	
		}
		break;
		default:	
		break;
	}
	DSP_Write_Data('0');
	DSP_Write_Data('0');
	DSP_Write_Data('b');
}

/***********************************************************************************
** Function Name:	DSP_Frequency
** Input Parameters:cAddr:The Address of Display Data
** Output Parameters:None
** Implement:Display the Carrier Frequency of PLC
***********************************************************************************/
void	DSP_Frequency(BYTE cAddr)
{		
	switch(g_cModCfgReg & 0x03)
	{	
		case 0:			//Carrier Frequency = 57.6KHz;	 
			DSP_Show(cAddr, ST_576);	
		break;
		case 1:			//Carrier Frequency = 76.8KHz;	 	 
			DSP_Show(cAddr, ST_768);	
		break;
		case 2:			//Carrier Frequency = no define;	 	 
			DSP_Show(cAddr, ST_NODEF);	
		break;
		case 3:			//Carrier Frequency = 115.2KHz;	 	 
			DSP_Show(cAddr, ST_1152);	
		break;
		default:	
		break;
	}
}

/***********************************************************************************
** Function Name:	DSP_WellcomeMenu
** Input Parameters:None
** Output Parameters:None
** Implement:Display the Wellcome Menu
***********************************************************************************/
void	DSP_WellcomeMenu(void)
{
	DSP_Show(0x82,ST_miar);
	DSP_Show(0xc2,ST_plcEVBD);
}

/***********************************************************************************
** Function Name:	DSP_VersionMenu
** Input Parameters:None
** Output Parameters:None
** Implement:Display the Software Version Menu
***********************************************************************************/
void	DSP_VersionMenu(void)
{
	DSP_Show(0x80,ST_Software);
	DSP_Show(0xc0,ST_Version);
}

/***********************************************************************************
** Function Name:	DSP_ShowArrow
** Input Parameters:None
** Output Parameters:None
** Implement:Display the Arrow Mark
***********************************************************************************/
void	DSP_ShowArrow(void)
{		
	DSP_Show(0x8d,"<");
	DSP_Show(0x8e,"-");
	DSP_Show(0x8f,"-");
}

/***********************************************************************************
** Function Name:	DSP_UartRate
** Input Parameters:None
** Output Parameters:None
** Implement:Display the baud Rata of Uart
***********************************************************************************/
void	DSP_UartRate(void)
{		
	switch(g_cUart_Rate & 0x03)
	{	
		case 0:			//Baud Rate = 2400bps;
		{	
			DSP_Write_Data(' ');	
			DSP_Write_Data('2');	
			DSP_Write_Data('4');
			PCON = 0x00;
			g_cUart_Rate_Value = 0xF4;
		}	
		break;
		case 1:			//Baud Rate = 4800bps;	 
		{	
			DSP_Write_Data(' ');	
			DSP_Write_Data('4');	
			DSP_Write_Data('8');	
			PCON = 0x00;
			g_cUart_Rate_Value = 0xFA;
		}	
		break;
		case 2:			//Baud Rate = 9600bps;	 	 
		{	
			DSP_Write_Data(' ');	
			DSP_Write_Data('9');	
			DSP_Write_Data('6');	
			PCON = 0x00;
			g_cUart_Rate_Value = 0xFD;
		}	
		break;
		case 3:			//Baud Rate = 19200bps;	 	 
		{	
			DSP_Write_Data('1');	
			DSP_Write_Data('9');	
			DSP_Write_Data('2');	
			PCON = 0x80;
			g_cUart_Rate_Value = 0xFD;
		}	
		break;
		default:	
		break;
	}
	DSP_Write_Data('0');
	DSP_Write_Data('0');
	//DSP_Write_Data('b');	
}

/***********************************************************************************
** Function Name:	DSP_MainMenu
** Input Parameters:None
** Output Parameters:None
** Implement:Display the Main Menu
***********************************************************************************/
void	DSP_MainMenu(BYTE MenuValue)
{		
	Clear_DSP();
	g_bRefresh_DSP_Flag = 0;
	switch (MenuValue)
	{	
		//************************Main Menu******************************//
		case DSP_SETTING:			//Display:"1.Setting" & "2.Transmitter"
		{	
			DSP_Show(0x80,ST_setting);
			DSP_Show(0xc0,ST_Trans);
			DSP_ShowArrow();
		}	
		break;
		case DSP_TRANSMITTER:		//Display:"2.Transmitter" & "3.Receiver"
		{	
			DSP_Show(0x80,ST_Trans);
			DSP_Show(0xc0,ST_receiver);
			DSP_ShowArrow();
		}	
		break;
		case DSP_RECEIVER:			//Display:"3.Receiver" & "4.Inter_Trans"
		{	
			DSP_Show(0x80,ST_receiver);
			DSP_Show(0xc0,ST_Inter_trans);
			DSP_ShowArrow();
		}	
		break;			
		case DSP_INTER_TRANS:		//Display:"4.Inter_Trans" & "5.Inter_Recv"
		{	
			DSP_Show(0x80,ST_Inter_trans);
			DSP_Show(0xc0,ST_Inter_rec);
			DSP_ShowArrow();
		}	
		break;
		case DSP_INTER_RECV:		//Display:"5.Inter_Recv" & "6.Uart Option"
		{	
			DSP_Show(0x80,ST_Inter_rec);
			DSP_Show(0xc0,ST_COM_Setting);
			DSP_ShowArrow();
		}	
		break;
		case DSP_COM_SETTING:		//Display:"6.COM_Setting" & "7.COM_Recving"
		{	
			DSP_Show(0x80,ST_COM_Setting);
			DSP_ShowArrow();
			DSP_Show(0xc0,ST_Return_Test);
			DSP_ShowArrow();
		}	
		break;		
		case DSP_COM_RECVING:		//Display:"7.COM_Recving" & "1.Setting"
		{	
			DSP_Show(0x80,ST_Return_Test);
			DSP_ShowArrow();
			DSP_Show(0xc0,ST_setting);
			DSP_ShowArrow();
		}	
		break;		
		//************************Setting Menu****************************//
		case DSP_DATA_RATE:		//Display:"1.DataRate:" & "2.CarrFre:"
		{	
			Clear_DSP();
			DSP_Show(0x80,ST_DataRate);
			g_cModCfgReg = EEPROM_Read_Data(EEAddr_PLC_Mode, EEPROM_TYPE);
			DSP_DataRate();
			
			DSP_Write_Cmd(0xc0);
			DSP_Show(0xc0,ST_CarrFre);
			g_cModCfgReg = EEPROM_Read_Data(EEAddr_PLC_Mode, EEPROM_TYPE);
			DSP_Frequency(0xca);
			DSP_Write_Data('K');
		}	
		break;
		case ACTIVE_DATA_RATE:	//Into Setting Mode
		{	
			Clear_DSP();
			DSP_Show(0x80,ST_DataRate);
			DSP_DataRate();
			DSP_Show(0xc0,ST_Press_Enter);
		}	
		break;
		
		case DSP_CARR_FRE:			//Display:"2.CarrFre:" & "3.SS Code:"
		{	
			DSP_Show(0x80,ST_CarrFre);
			g_cModCfgReg = EEPROM_Read_Data(EEAddr_PLC_Mode, EEPROM_TYPE);

⌨️ 快捷键说明

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