📄 main.lst
字号:
233 1 while(Key==0)
234 1 {
235 2 Read_12887(DateBuf); //读取日期信息
236 2
237 2 ProcDate(); //数值转换成字符串
238 2
239 2 Set_addr(2,2);
240 2 Write_str("当前日期为");
241 2 Set_addr(3,1); //字符串显示在液晶内
C51 COMPILER V7.50 MAIN 09/13/2006 09:30:06 PAGE 5
242 2 Write_str(Date);
243 2
244 2 Key=ReadKey();
245 2 delay1(5000);
246 2 }
247 1 }
248 //-------------------------------------------------------------------
249 //函数:void ShowTempBuf(void)
250 //功能:在18B20中读取温度并在液晶中显示
251 //-------------------------------------------------------------------
252 void ShowTemp(void)
253 {
254 1 char *a;unsigned char buf;
255 1 Key=0;
256 1 Scr_clr();Set_addr(2,2);
257 1 while(Key==0) //等待按键返回上一级菜单
258 1 {
259 2 buf=Read_Temperature(); //读取温度
260 2 a=itoa(buf);
261 2 Temp[6]=a[0];Temp[7]=a[1];
262 2
263 2 Set_addr(2,2); //在液晶上显示
264 2 Write_str("当前温度为");
265 2 Set_addr(3,2);
266 2 Write_str(Temp);
267 2
268 2 Key=ReadKey();
269 2 delay1(5000);
270 2 }
271 1 }
272 //----------------------------------------------------------------
273 //函数:void ShowDis(void)
274 //功能:检测距离,并在液晶上显示
275 //----------------------------------------------------------------
276 void ShowDis(void)
277 {
278 1 unsigned char i;
279 1 Scr_clr();Set_addr(2,2);
280 1 while(Key!=4)
281 1 {
282 2 DisBuf=Get_dis();
283 2 Dis[11]=DisBuf%10+48;
284 2 DisBuf/=10;
285 2 Dis[10]=DisBuf%10+48;
286 2 DisBuf/=10;
287 2 Dis[9]=DisBuf%10+48;
288 2
289 2 if(i++%5==0) //降低刷新速度,使显示稳定
290 2 {
291 3 Set_addr(2,1);
292 3 Write_str(Dis);
293 3 }
294 2
295 2 Key=ReadKey();
296 2 delay1(5000);
297 2 }
298 1 }
299 //----------------------------------------------------------------------------
300 //函数:void SetDate(void)
301 //功能:调整时间和日期,并在液晶上显示
302 //----------------------------------------------------------------------------
303 void SetDate(void)
C51 COMPILER V7.50 MAIN 09/13/2006 09:30:06 PAGE 6
304 {
305 1 unsigned char id=0;
306 1 Scr_clr();Set_addr(2,3);
307 1 while(Key!=4) //如果确定或取消键按下,则返回
308 1 {
309 2 Key=ReadKey();
310 2 switch(Key)
311 2 {
312 3 case 2: //切换键,选择一位时间日期
313 3 if(id++==5) id=0;
314 3 break;
315 3 case 3: //调整键,改变选择的时间日期
316 3 if(id==0) if(DateBuf[0]++==9) DateBuf[0]=0;//年
317 3 if(id==1) if(DateBuf[1]++==11) DateBuf[1]=0;//月
318 3 if(id==2) if(DateBuf[2]++==30) DateBuf[2]=0;//日
319 3 if(id==3) if(DateBuf[3]++==23) DateBuf[6]=0;//时
320 3 if(id==4) if(DateBuf[4]++==59) DateBuf[4]=0;//分
321 3 if(id==5) if(DateBuf[5]++==59) DateBuf[5]=0;//秒
322 3 break;
323 3 default:
324 3 break;
325 3 }
326 2
327 2 ProcTime(); //时间字符串处理
328 2 ProcDate(); //日期字符串处理
329 2
330 2 Set_addr(2,1); //在液晶上显示
331 2 Write_str(Date);
332 2 Set_addr(3,2);
333 2 Write_str(Time);
334 2
335 2 if(id<3) //移动光标
336 2 Set_addr(2,(DateTbl[id]/2+1));
337 2 else
338 2 Set_addr(3,(DateTbl[id]/2+2));
339 2
340 2 Open_cur();
341 2 delay1(5000);
342 2 }
343 1 Close_cur(); //关闭光标
344 1 Write_12887(DateBuf);
345 1 }
346 //-----------------------------------------------------------------------------
347 //函数:void SetClk(void)
348 //功能:设置闹铃时间
349 //-----------------------------------------------------------------------------
350 void SetClk(void)
351 {
352 1 unsigned char id=0;
353 1 Scr_clr();Set_addr(2,3);
354 1 while(Key!=4) //如果确定或取消键按下,则返回
355 1 {
356 2 Key=ReadKey();
357 2 switch(Key)
358 2 {
359 3 case 2: //切换键,选择一位时间
360 3 if(id++==3) id=0;
361 3 break;
362 3 case 3:
363 3 if(id==0) if(AlarmBuf[0]++==23) AlarmBuf[0]=0;
364 3 if(id==1) if(AlarmBuf[1]++==59) AlarmBuf[1]=0;
365 3 if(id==2) if(AlarmBuf[2]++==59) AlarmBuf[2]=0;
C51 COMPILER V7.50 MAIN 09/13/2006 09:30:06 PAGE 7
366 3 if(id==3) AlarmFlag=!AlarmFlag;
367 3 break;
368 3 default:
369 3 break;
370 3 }
371 2 ProcAlarm();
372 2 Set_addr(1,1); //显示定时界面
373 2 Write_str("定时时间:");
374 2 Set_addr(2,1);
375 2 Write_str(Time);
376 2 Set_addr(3,1);
377 2 Write_str("闹铃:");
378 2 Set_addr(3,4);
379 2 if(AlarmFlag) Write_str("开");
380 2 else Write_str("关");
381 2
382 2 if(id<3) //移动光标
383 2 Set_addr(2,DateTbl[id]/2);
384 2 else
385 2 Set_addr(3,4);
386 2
387 2 Open_cur();
388 2 delay1(5000);
389 2 }
390 1 Close_cur();
391 1 }
392 //--------------------------------------------------------------------------------------------------------
393 char code chuang[]={
394 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x18,0x00,0x60,0x00,0
-x18,0x00,0x60,0x00,0x38,0x00,0x60,0x00,0x38,0x00,0x60,
395 0x00,0x6E,0x00,0x60,0x00,0x67,0x98,0x60,0x00,0xC3,0x8C,0x60,0x01,0x80,0xCC,0x60,0x01,0x80,0x0C,0x20,0x03,0
-x00,0x0C,0x20,0x06,0x0C,0x0C,0x20,0x0F,0xFE,0x0C,0x20,
396 0x19,0x06,0x0C,0x20,0x21,0x06,0x0C,0x20,0x41,0x04,0x0C,0x20,0x01,0x04,0x0C,0x20,0x01,0x1C,0x0C,0x20,0x01,0
-x0C,0x00,0x20,0x01,0x88,0x80,0x20,0x01,0x80,0x80,0x20,
397 0x01,0x80,0xC0,0x20,0x00,0xE1,0xC0,0x60,0x00,0x7F,0xC4,0x60,0x00,0x0C,0x03,0xE0,0x00,0x00,0x01,0xE0,0x00,0
-x00,0x00,0xE0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00};/*"创",0*/
398 char code xin[]={
399 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0
-x08,0x01,0xC0,0x00,0x06,0x03,0xC0,0x00,0xFE,0x07,0x00,
400 0x07,0xCC,0x78,0x00,0x00,0x0C,0x60,0x00,0x01,0x08,0x20,0x00,0x00,0x98,0x20,0x00,0x00,0x9F,0x20,0xF8,0x00,0
-xFC,0x3F,0xF0,0x7F,0xE0,0x23,0x00,0x70,0x20,0x63,0x00,
401 0x00,0x2E,0x63,0x00,0x03,0xF8,0x63,0x00,0x1E,0x20,0x63,0x00,0x00,0x30,0x43,0x00,0x04,0x2C,0xC3,0x00,0x04,0
-x24,0xC3,0x00,0x0C,0x20,0x83,0x00,0x18,0x21,0x81,0x00,
402 0x18,0xE3,0x01,0x00,0x00,0xE2,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0
-x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00};/*"新",0*/
403 char code zhong[]={
404 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0
-x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
405 0x00,0x03,0x03,0x00,0x00,0x03,0xFF,0xC0,0x07,0xFF,0x81,0xE0,0x03,0x03,0x01,0x80,0x03,0x03,0x01,0x80,0x03,0
-x03,0x03,0x00,0x01,0x03,0x03,0x00,0x01,0x03,0x03,0x00,
406 0x01,0x03,0xFF,0x00,0x01,0xFF,0xFE,0x00,0x01,0xC3,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0
-x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,
407 0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0
-x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00};/*"中",0*/
408 char code xin1[]={
409 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0
-x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
410 0x00,0x0C,0x00,0x00,0x00,0x07,0x01,0x80,0x00,0x03,0x80,0xF0,0x00,0x03,0x80,0x78,0x00,0x01,0x80,0x38,0x00,0
-x00,0x00,0x18,0x04,0x40,0x00,0x00,0x0C,0x40,0x00,0x00,
411 0x0C,0x20,0x04,0x00,0x0C,0x30,0x02,0x00,0x1C,0x10,0x03,0x00,0x1C,0x18,0x01,0x80,0x18,0x0E,0x01,0xC0,0x00,0
-x07,0x81,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x00,0xFF,0xC0,
412 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0
C51 COMPILER V7.50 MAIN 09/13/2006 09:30:06 PAGE 8
-x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"心",0*/
413 void DrawBo(unsigned char x,unsigned char y,unsigned char *ad)
414 {
415 1 unsigned char k,j;
416 1 for(k=0;k<32;k++)
417 1 {
418 2 for(j=0;j<2;j++)
419 2 Draw_grap(2*x+j,y*16+k,ad[4*k+2*j],ad[4*k+2*j+1]);
420 2 }
421 1 Open_grap();
422 1 }
423 //-------------------------------------------------------------
424 //函数:void FstGrap(void)
425 //功能:显示开机画面
426 //-------------------------------------------------------------
427 void FstGrap(void)
428 {
429 1 Clr_grap(); //清除图象缓冲区
430 1
431 1 Set_addr(3,2); //显示32X32的点阵字创新中心
432 1 Write_str("测距电子日历");
433 1
434 1 DrawBo(0,0,chuang);
435 1 DrawBo(1,0,xin);
436 1 DrawBo(2,0,zhong);
437 1 DrawBo(3,0,xin1);
438 1 }
439
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1690 ----
CONSTANT SIZE = 661 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 30 19
IDATA SIZE = 71 ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -