📄 setupmenu.lst
字号:
C51 COMPILER V7.08 SETUPMENU 12/25/2004 18:50:53 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE SETUPMENU
OBJECT MODULE PLACED IN SETUPMENU.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SETUPMENU.C OPTIMIZE(SIZE) REGFILE(.\gprsnew.ORC) BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <stdio.h>
2 #include <string.h>
3 #include <reg52.h>
4 #include <menuaddress.h>
5
6 #define uchar unsigned char
7 #define uint unsigned int
8
9 extern const unsigned char code menu[];
10
11 extern unsigned char idata input[32];
12 extern unsigned char idata tempbuf[32];
13 extern void Delay(uint x);
14 extern void ReadUserBlock(uchar idata *input,uint Address,uchar Number);
15 extern void WriteUserBlock(uint Address,uchar idata *source,uchar Number);
16 extern void WriteDefault();
17
18 extern bit _AsyncPutTest(void);
19 extern void _AsyncPut(uchar ucValue);
20 extern bit _AsyncGetTest(void);
21 extern uchar _AsyncGet(void);
22
23 uchar get_char()
24 {
25 1 uchar TPC;
26 1
27 1 while(_AsyncGetTest == 0) ;
28 1 TPC = _AsyncGet();
29 1 return TPC;
30 1 }
31
32 void put_chars(uchar *p)
33 {
34 1 while(*p)
35 1 {
36 2 while(_AsyncPutTest()==0) ;
37 2 _AsyncPut(*p);
38 2 p++;
39 2 }
40 1 }
41
42 void get_chars(uchar *p,uchar len)
43 {
44 1 uchar i = 0;
45 1 uchar TPC;
46 1
47 1 if (len == 0) return ;
48 1 while(1)
49 1 {
50 2 TPC = get_char();
51 2 if(TPC == 0x0D)
52 2 {
53 3 *p = '\0';
54 3 break;
55 3 }
C51 COMPILER V7.08 SETUPMENU 12/25/2004 18:50:53 PAGE 2
56 2 else
57 2 {
58 3 *p = TPC;
59 3 p ++;
60 3 i ++;
61 3 if(i >= len-1)
62 3 {
63 4 *p = '\0';
64 4 break;
65 4 }
66 3 }
67 2 }
68 1 }
69
70
71 void setup(void)
72 {
73 1 uchar i;
74 1 uchar TPC;
75 1 uchar ch,YorN;
76 1
77 1 ReadUserBlock(input,Write_default_flag,sizeof(input));
78 1 if(input[0] != 'R')
79 1 {
80 2 WriteDefault();
81 2 }
82 1
83 1 for(i=0;i<32;i++) input[i]=0;
84 1 put_chars("\n\r请输入管理员密码(系统默认为888888,回车确认!):");
85 1 ReadUserBlock( tempbuf, Pass_Word,sizeof(input));
86 1 while(1)
87 1 {
88 2 get_chars(input,sizeof(input));
89 2 if( strcmp(input,tempbuf) )
90 2 {
91 3 put_chars("\n\r密码不正确!请重新输入:");
92 3 }
93 2 else break;
94 2 }
95 1 put_chars("\n\r管理员成功登录!\n\r");
96 1 Delay(100);
97 1 put_chars("\n\r进入菜单设置......");
98 1
99 1 put_chars(menu);
100 1 put_chars("\n\r请正确输入功能选项:");
101 1
102 1 do
103 1 {//p
104 2 ch = (uchar)get_char();
105 2 switch(ch)
106 2 {//a
107 3
108 3 case '1' :
109 3 put_chars("\n\r当前固定电话号码为: ");
110 3 for(i = 0;i<32;i++) input[i] = 0;
111 3 ReadUserBlock( input,Fixed_IP,sizeof(input));
112 3 put_chars(input);
113 3 put_chars("\n\r请输入新的固定电话号码:");
114 3 get_chars(input,sizeof(input));
115 3 put_chars("\n\r请键入[Y/y]确认?");
116 3 YorN =(uchar) get_char() ;
117 3 if(YorN == 'Y' || YorN == 'y')
C51 COMPILER V7.08 SETUPMENU 12/25/2004 18:50:53 PAGE 3
118 3 {
119 4 WriteUserBlock( Fixed_IP,input,sizeof(input)); //write FixedIP
120 4 for(i = 0;i<32;i++) input[i] = 0;
121 4 put_chars("\n\r固定电话号码已成功设置为:");
122 4 ReadUserBlock( input, Fixed_IP,sizeof(input));
123 4 put_chars(input);
124 4 Delay(100);
125 4 }
126 3 else
127 3 {
128 4 put_chars("\n\r放弃该次操作!\n\r");
129 4 Delay(100);
130 4 }
131 3 put_chars(menu);
132 3 put_chars("\n\r请正确输入功能选项:");
133 3 break;
134 3
135 3 case '2':
136 3 put_chars("\n\r当前移动电话号码为:");
137 3 for(i = 0;i<32;i++) input[i] = 0;
138 3 ReadUserBlock(input,Host_Name,sizeof(input));
139 3 put_chars(input);
140 3 put_chars("\n\r请输入新的移动电话号码:");
141 3 get_chars(input,sizeof(input));
142 3 put_chars("\n\r请键入[Y/y]确认?");
143 3 YorN = (uchar)get_char() ;
144 3 if(YorN == 'Y' || YorN == 'y')
145 3 {
146 4 WriteUserBlock( Host_Name,input,sizeof(input)); //write FixedIP
147 4 for(i = 0;i<32;i++) input[i] = 0;
148 4 put_chars("\n\r当前移动电话号码已成功设置为:");
149 4 ReadUserBlock( input, Host_Name,sizeof(input));
150 4 put_chars(input);
151 4 Delay(100);
152 4 }
153 3 else
154 3 {
155 4 put_chars("\n\r放弃该次操作!\n\r");
156 4 Delay(100);
157 4 }
158 3 put_chars(menu);
159 3 put_chars("\n\r请正确输入功能选项:");
160 3 break;
161 3
162 3
163 3 case '3':
164 3 put_chars("\n\r当前管理员密码为:");
165 3 for(i = 0;i<32;i++) input[i] = 0;
166 3 ReadUserBlock( input, Pass_Word,sizeof(input));
167 3 put_chars(input);
168 3 put_chars("\n\r请输入新的管理员密码:");
169 3 get_chars(input,sizeof(input));
170 3 put_chars("\n\r请键入[Y/y]确认?");
171 3 YorN = (char)get_char() ;
172 3 if(YorN == 'Y' || YorN == 'y')
173 3 {
174 4 WriteUserBlock( Pass_Word,input,sizeof(input)); //write FixedIP
175 4 for(i = 0;i<32;i++) input[i] = 0;
176 4 put_chars("\n\r当前管理员密码已成功设置为:");
177 4 ReadUserBlock( input, Pass_Word,sizeof(input));
178 4 put_chars(input);
179 4 Delay(100);
C51 COMPILER V7.08 SETUPMENU 12/25/2004 18:50:53 PAGE 4
180 4 }
181 3 else
182 3 {
183 4 put_chars("\n\r放弃该次操作!\n\r");
184 4 Delay(100);
185 4 }
186 3 put_chars(menu);
187 3 put_chars("\n\r请正确输入功能选项:");
188 3 break;
189 3
190 3
191 3 case '4':
192 3 put_chars("\n\r状态查询中......");
193 3
194 3
195 3 put_chars("\n\r当前固定电话号码为: ");
196 3 ReadUserBlock( input, Fixed_IP,sizeof(input));
197 3 put_chars(input);
198 3
199 3 put_chars("\n\r当前移动电话号码为:");
200 3 ReadUserBlock( input, Host_Name,sizeof(input));
201 3 put_chars(input);
202 3
203 3
204 3 put_chars("\n\r当前管理员密码为:");
205 3 ReadUserBlock( input, Pass_Word,sizeof(input));
206 3 put_chars(input);
207 3
208 3 put_chars("\n\r任意键继续!");
209 3 TPC = get_char();
210 3 put_chars(menu);
211 3 put_chars("\n\r请正确输入功能选项:");
212 3 break;
213 3
214 3 case 'Q':
215 3 case 'q':
216 3 put_chars("\n\r设置结束!");
217 3 Delay(100);
218 3 break;
219 3
220 3 default:
221 3 put_chars("\n\n\r*** 错误的功能选项代码!***\n\n\r");
222 3 Delay(100);
223 3 put_chars(menu);
224 3 put_chars("\n\r请正确输入功能选项:");
225 3 break;
226 3 }//a
227 2 }while(ch != 'Q' && ch != 'q');
228 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 876 ----
CONSTANT SIZE = 501 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -