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

📄 setupmenu.c

📁 SPWM三相波形发生器
💻 C
字号:
#include <stdio.h>
#include <string.h>
#include <reg52.h>
#include <menuaddress.h>

#define uchar  unsigned char
#define uint   unsigned int

extern const unsigned char code menu[];

extern unsigned char idata input[32];
extern unsigned char idata tempbuf[32];
extern void Delay(uint x);
extern void ReadUserBlock(uchar idata *input,uint Address,uchar Number);
extern void WriteUserBlock(uint Address,uchar idata *source,uchar Number);
extern void WriteDefault();

extern	bit		_AsyncPutTest(void);
extern	void	_AsyncPut(uchar ucValue);
extern	bit		_AsyncGetTest(void);
extern	uchar	_AsyncGet(void);

uchar get_char()
{
	uchar	TPC;

	while(_AsyncGetTest == 0) ;
	TPC = _AsyncGet();
	return TPC;	
}

void put_chars(uchar *p)
{
	while(*p)
	{
		while(_AsyncPutTest()==0) ;
		_AsyncPut(*p);
		p++;
	}	
}

void get_chars(uchar *p,uchar len)
{
	uchar i = 0;
	uchar	TPC;

	if (len == 0) return ;	
	while(1)
	{
		TPC = get_char();
		if(TPC == 0x0D)
		{		
			*p = '\0';
			break;
		}
		else 
		{
			*p = TPC;
			p ++;
			i ++;
			if(i >= len-1)
			{
				*p = '\0';
				break;
			}	
		}
	}	
}


void setup(void)	
{
	uchar i;
	uchar	TPC;
	uchar ch,YorN;

	ReadUserBlock(input,Write_default_flag,sizeof(input));
	if(input[0] != 'R')
	{
		WriteDefault();			
	}

	for(i=0;i<32;i++) input[i]=0;
	put_chars("\n\r请输入管理员密码(系统默认为888888,回车确认!):");
	ReadUserBlock( tempbuf, Pass_Word,sizeof(input));
	while(1)
	{
		get_chars(input,sizeof(input));
		if( strcmp(input,tempbuf) )	
		{
			put_chars("\n\r密码不正确!请重新输入:");
		}
		else break;
	}
	put_chars("\n\r管理员成功登录!\n\r");
	Delay(100);	
	put_chars("\n\r进入菜单设置......");

	put_chars(menu);
	put_chars("\n\r请正确输入功能选项:");

	do
	{//p
		ch = (uchar)get_char();
		switch(ch)
		{//a

			case '1' : 	
					put_chars("\n\r当前固定电话号码为: ");
					for(i = 0;i<32;i++)	input[i] = 0;
					ReadUserBlock( input,Fixed_IP,sizeof(input));	
					put_chars(input);
					put_chars("\n\r请输入新的固定电话号码:");
					get_chars(input,sizeof(input));
					put_chars("\n\r请键入[Y/y]确认?");
					YorN =(uchar) get_char() ;
					if(YorN == 'Y' || YorN == 'y')
					{
						WriteUserBlock( Fixed_IP,input,sizeof(input));	//write FixedIP
						for(i = 0;i<32;i++)	input[i] = 0;
						put_chars("\n\r固定电话号码已成功设置为:");
						ReadUserBlock( input, Fixed_IP,sizeof(input));	
						put_chars(input);
						Delay(100);								
					}
					else 
					{
						put_chars("\n\r放弃该次操作!\n\r");
						Delay(100);	
					}
					put_chars(menu);
					put_chars("\n\r请正确输入功能选项:");
					break;

			case '2':
					put_chars("\n\r当前移动电话号码为:");
					for(i = 0;i<32;i++)	input[i] = 0;
					ReadUserBlock(input,Host_Name,sizeof(input));	
					put_chars(input);	
					put_chars("\n\r请输入新的移动电话号码:");	
					get_chars(input,sizeof(input));
					put_chars("\n\r请键入[Y/y]确认?");
					YorN = (uchar)get_char() ;
					if(YorN == 'Y' || YorN == 'y')
					{
						WriteUserBlock( Host_Name,input,sizeof(input));	//write FixedIP
						for(i = 0;i<32;i++)	input[i] = 0;
						put_chars("\n\r当前移动电话号码已成功设置为:");
						ReadUserBlock( input, Host_Name,sizeof(input));	
						put_chars(input);
						Delay(100);		
					}
					else 
					{
						put_chars("\n\r放弃该次操作!\n\r");	
						Delay(100);					
					}
					put_chars(menu);
					put_chars("\n\r请正确输入功能选项:");
					break;


			case '3':
					put_chars("\n\r当前管理员密码为:");
					for(i = 0;i<32;i++)	input[i] = 0;
					ReadUserBlock( input, Pass_Word,sizeof(input));	
					put_chars(input);
					put_chars("\n\r请输入新的管理员密码:");
					get_chars(input,sizeof(input));
					put_chars("\n\r请键入[Y/y]确认?");
					YorN = (char)get_char() ;
					if(YorN == 'Y' || YorN == 'y')
					{
						WriteUserBlock( Pass_Word,input,sizeof(input));	//write FixedIP
						for(i = 0;i<32;i++)	input[i] = 0;
						put_chars("\n\r当前管理员密码已成功设置为:");
						ReadUserBlock( input, Pass_Word,sizeof(input));	
						put_chars(input);
						Delay(100);		
					}
					else 
					{
						put_chars("\n\r放弃该次操作!\n\r");
						Delay(100);	
					}
					put_chars(menu);
					put_chars("\n\r请正确输入功能选项:");
					break;	


			case '4':
					put_chars("\n\r状态查询中......");


					put_chars("\n\r当前固定电话号码为: ");
					ReadUserBlock( input, Fixed_IP,sizeof(input));	
					put_chars(input);

					put_chars("\n\r当前移动电话号码为:");
					ReadUserBlock( input, Host_Name,sizeof(input));	
					put_chars(input);


					put_chars("\n\r当前管理员密码为:");
					ReadUserBlock( input, Pass_Word,sizeof(input));	
					put_chars(input);

					put_chars("\n\r任意键继续!");
					TPC = get_char();
					put_chars(menu);
					put_chars("\n\r请正确输入功能选项:");					
					break;

			case 'Q':	
			case 'q':
					put_chars("\n\r设置结束!");
					Delay(100);	
					break;

			default:
					put_chars("\n\n\r*** 错误的功能选项代码!***\n\n\r");	
					Delay(100);		
					put_chars(menu);
					put_chars("\n\r请正确输入功能选项:");
					break;				
		}//a	
	}while(ch != 'Q' && ch != 'q');	
}

⌨️ 快捷键说明

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