📄 main.lst
字号:
197 2 while(quit==2)
198 2 {
199 3 LCD_write(0x01,COMM);
200 3 delay_ms(3);
201 3 LCD_write_string(0,0,"设置打铃时间");
202 3 LCD_write_string(0,2,"上下键移动光标");
203 3 LCD_write_string(0,3,"数字键输入时间");
204 3 LCD_set_position(2,1);
205 3 LCD_write((hex2asc(Record[0]>>4)),DATT);
206 3 LCD_write((hex2asc(Record[0])),DATT);
207 3 LCD_write_string(3,1,"点 分");
208 3 LCD_set_position(5,1);
209 3 LCD_write(hex2asc(Record[1]>>4),DATT);
210 3 LCD_write(hex2asc(Record[1]),DATT);
211 3 LCD_set_position(1+temp,1);
212 3 LCD_write(0x10,DATT);
213 3 key=0xff;
214 3 while(key==0xff) key=ScanKey();
215 3 if (0xff-key)
216 3 {
217 4 key_flag=1;
218 4 KeyT=0;
219 4 }
220 3 if ((key==KEY_UP)||(key==KEY_DOWN))
221 3 {
222 4 if (temp) temp=0;
223 4 else temp=3;
224 4 }
225 3 else if (key<10)
226 3 {
227 4 if (temp)
228 4 {
229 5 Record[1]<<=4;
230 5 Record[1]+=key;
231 5 if (Record[1]>0x59) Record[1]&=0x0f;
232 5 }
233 4 else
234 4 {
235 5 Record[0]<<=4;
236 5 Record[0]+=key;
237 5 if (Record[0]>0x23) Record[0]&=0x0f;
238 5 }
239 4 }
240 3 else if (key==KEY_ENT)
241 3 {
C51 COMPILER V7.06 MAIN 12/17/2006 14:56:13 PAGE 5
242 4 if(Record[2]) quit=3;
243 4 else quit=4;
244 4 }
245 3 else if (key==KEY_ESC) quit=1;
246 3 }
247 2
248 2 while(quit==3)
249 2 {
250 3 LCD_write(0x01,COMM);
251 3 delay_ms(3);
252 3 LCD_write_string(0,0,"设置上课时长");
253 3 LCD_write_string(0,3,"数字键输入时间");
254 3 LCD_write_string(4,1,"分钟");
255 3 LCD_set_position(3,1);
256 3 LCD_write(hex2asc(Record[2]>>4),DATT);
257 3 LCD_write(hex2asc(Record[2]),DATT);
258 3 key=0xff;
259 3 while(key==0xff) key=ScanKey();
260 3 if (0xff-key)
261 3 {
262 4 key_flag=1;
263 4 KeyT=0;
264 4 }
265 3 if (key<10)
266 3 {
267 4 Record[2]<<=4;
268 4 Record[2]+=key;
269 4 if (Record[2]==0) Record[2]=0x01;
270 4 }
271 3 else if (key==KEY_ENT) quit=4;
272 3 else if (key==KEY_ESC) quit=2;
273 3 }
274 2 if(quit==4)
275 2 {
276 3 Write_RingTime(Num,Record);
277 3 if (m==0)
278 3 {
279 4 temp=Mem_Read(0);
280 4 temp++;
281 4 Mem_Write(0,temp);
282 4 }
283 3 Ring_Paixu();
284 3 Set_NextRT(1);
285 3 return (Num);
286 3 }
287 2 }
288 1 return (0);
289 1 }
290
291 void Scan_RingTime(unsigned char ScanNum)
292 {
293 1 uchar RingCount,temp,quit,MC,Record[3];
294 1 RingCount=Mem_Read(0x00);
295 1 quit =1;
296 1 if (RingCount==0)
297 1 {
298 2 MC=menu(NORECORD);
299 2 if (MC==1) quit=EditRing(0x01);
300 2 else quit=0;
301 2 }
302 1 // ScanNum=1;
303 1 while (quit)
C51 COMPILER V7.06 MAIN 12/17/2006 14:56:13 PAGE 6
304 1 {
305 2 LCD_write(0x01,COMM);
306 2 delay_ms(3);
307 2 LCD_write_string(0,0,"===== 浏览 =====");
308 2 temp=Read_RingTime(ScanNum,Record);
309 2 if(temp)
310 2 {
311 3 LCD_set_position(0,1);
312 3 LCD_write(hex2asc(ScanNum>>4),DATT);
313 3 LCD_write(hex2asc(ScanNum),DATT);
314 3 LCD_write_string(1,1,"铃声类型:");
315 3 LCD_write_string(1,2,"时间: ");
316 3 LCD_write(hex2asc(Record[0]>>4),DATT);
317 3 LCD_write(hex2asc(Record[0]),DATT);
318 3 LCD_write(':',DATT);
319 3 LCD_write(hex2asc(Record[1]>>4),DATT);
320 3 LCD_write(hex2asc(Record[1]),DATT);
321 3 if(Record[2])
322 3 {
323 4 LCD_write_string(6,1,"上课");
324 4 LCD_write_string(1,3,"上课时长:");
325 4 LCD_write(hex2asc(Record[2]>>4),DATT);
326 4 LCD_write(hex2asc(Record[2]),DATT);
327 4 }
328 3 else
329 3 {
330 4 LCD_write_string(6,1,"普通");
331 4 }
332 3 }
333 2 else
334 2 {
335 3 if (ScanNum>0) ScanNum--;
336 3 else quit=0;
337 3 }
338 2 key=0xff;
339 2 while((key==0xff)&&(quit)) key=ScanKey();
340 2 if (0xff-key)
341 2 {
342 3 key_flag=1;
343 3 KeyT=0;
344 3 }
345 2 if((key==KEY_UP)&&(ScanNum>1)) ScanNum--;
346 2 else if((key==KEY_DOWN)&&(ScanNum<RingCount)) ScanNum++;
347 2 else if((key==KEY_ENT)||(key==KEY_FUNC))
348 2 {
349 3 MC=menu(SCANMENU);
350 3 if(MC==0) quit=0;
351 3 else if (MC==1)
352 3 {
353 4 quit=EditRing(ScanNum);
354 4 if (quit) ScanNum=quit;
355 4 }
356 3 else if (MC==2)
357 3 {
358 4 quit= EditRing(RingCount+1);//EditRing(ScanNum);
359 4 if (quit)
360 4 {
361 5 ScanNum=quit;
362 5 RingCount++;
363 5 }
364 4 }
365 3 else if (MC==3)
C51 COMPILER V7.06 MAIN 12/17/2006 14:56:13 PAGE 7
366 3 {
367 4 RingCount=DelRing(ScanNum);
368 4 if(RingCount)
369 4 {
370 5 if (ScanNum>RingCount)
371 5 ScanNum--;
372 5 Set_NextRT(1);
373 5 }
374 4 else
375 4 {Scan_RingTime(1);quit=0;}
376 4 }
377 3 }
378 2 else if(key==KEY_ESC) quit=0;
379 2 }
380 1 LCD_write(0x01,COMM); //清屏,字符缓冲区
381 1 delay_ms(3);
382 1 }
383
384 void Set_time() //时钟设置
385 {
386 1 uchar Pdat[]={ 0,6,10,10,4,7,10,
387 1 0,0,0,1,2,2,2,
388 1 4,2,2,2,2,2,2
389 1 };
390 1 uchar Max[]={0x59,0x59,0x23,0x07,0x31,0x12};
391 1 uchar temp,temp2;
392 1 uchar P=0;
393 1 uchar quit=1;
394 1 uchar flag=1;
395 1 LCD_write(0x01,COMM); //清屏,字符缓冲区
396 1 delay_ms(3);
397 1 LCD_clr_pic(); //清图形缓冲区
398 1
399 1 while (quit)
400 1 {
401 2 key=ScanKey();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -