📄 setupmenu.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 + -