?? fyd.lst
字號:
235 3 case 3:second--;if(second<=0)second=59;break;
236 3 case 4:hh--; if(hh<=0) hh=23;break;
237 3 case 5:ff--;if(ff<=0) ff=59;break;
238 3 //case 6:ss--;if(ss<=0) ss=59;break;
239 3 default:break;
240 3 }
241 2 }
C51 COMPILER V7.50 FYD 08/01/2008 14:37:53 PAGE 5
242 1 while(dec==0);
243 1 }
244
245 void key_scan()
246 {
247 1 if(set==0)
248 1 {
249 2 delay(10);
250 2 if(set==0)
251 2 key_set();
252 2 }
253 1 else if(ret==0)
254 1 {
255 2 delay(10);
256 2 if(ret==0)
257 2 key_ret();
258 2 }
259 1 else if(add==0)
260 1 {
261 2 delay(10);
262 2 if(add==0)
263 2 key_add();
264 2 }
265 1 else
266 1 {
267 2 delay(10);
268 2 if(dec==0)
269 2 key_dec();
270 2 }
271 1 }
272 /*******************************************************************/
273
274 /****************************************************/
275
276 /*******************************顯示函數(shù)*******************************/
277 void display(void)
278 {
279 1 uint i;
280 1 T[2]=tvalue/1000+0x30; T[3]=tvalue%1000/100+0x30;
281 1 T[4]=tvalue%100/10+0x30; T[6]=tvalue%10+0x30;
282 1
283 1 sheding[1]=hh/10+0x30; sheding[2]=hh%10+0x30;
284 1 sheding[4]=ff/10+0x30; sheding[5]=ff%10+0x30;
285 1
286 1 if(tflag==0)
287 1 T[1]=0x20;//正溫度不顯示符號
288 1 else
289 1 T[1]=0x2d;//負(fù)溫度顯示負(fù)號:-
290 1
291 1 if(T[2]==0x30)
292 1 {
293 2 T[2]=0x20;//如果百位為0,不顯示
294 2 if(T[3]==0x30)
295 2 {
296 3 T[3]=0x20;//如果百位為0,十位為0也不顯示
297 3 }
298 2 }
299 1
300 1 if(KT==0)
301 1 sheding[7]=0x01;
302 1 else
303 1 sheding[7]=0x1d;
C51 COMPILER V7.50 FYD 08/01/2008 14:37:53 PAGE 6
304 1 Writelcd( 0x8c,0 );
305 1 for(i=0;i<8;i++)
306 1 {
307 2 Writelcd( T[i],1 );
308 2 }
309 1
310 1 Writelcd( 0x94,0 ); //時顯示
311 1 {
312 2 Writelcd( (hour/10)+0x30,1 );
313 2 Writelcd( (hour%10)+0x30,1 );
314 2 }
315 1
316 1 Writelcd( 0x95,0 );// 冒號和分十位
317 1 {
318 2 Writelcd( 0x3a,1 );
319 2 Writelcd( (minite/10)+0x30,1 );
320 2 }
321 1
322 1 Writelcd( 0x96,0 ); //分個位和冒號
323 1 {
324 2 Writelcd( (minite%10)+0x30,1 );
325 2 Writelcd( 0x3a,1 );
326 2 }
327 1
328 1 Writelcd( 0x97,0 );//秒顯示
329 1 {
330 2 Writelcd( (second/10)+0x30,1 );
331 2 Writelcd( (second%10)+0x30,1 );
332 2 }
333 1
334 1 Writelcd( 0x9c,0 );
335 1 for(i=0;i<8;i++)
336 1 {
337 2 Writelcd( sheding[i],1 );
338 2 }
339 1
340 1 }
341
342 /***************************************************************/
343 void initdisplay(void) //開機(jī)畫面
344 { unsigned char xxx=2,i;
345 1 for(;xxx>0;xxx--)
346 1 {
347 2 Writelcd( 0x80,0 );
348 2 for(i=0;i<16;i++)
349 2 Writelcd( huanyinghuamian[i],1 ); //開機(jī)畫面
350 2
351 2 Writelcd( 0x90,0 ); //說明:word:要寫的內(nèi)容 dat:1為數(shù)據(jù) 0為指令
352 2 for(i=0;i<16;i++)
353 2 Writelcd( word[i],1 );
354 2
355 2
356 2 Writelcd( 0x88,0 );
357 2 for(i=0;i<16;i++)
358 2 Writelcd( guanggao[i],1 );
359 2
360 2
361 2 Writelcd( 0x98,0 );
362 2 for(i=0;i<16;i++)
363 2 Writelcd( tegong[i],1 );
364 2 }
365 1 }
C51 COMPILER V7.50 FYD 08/01/2008 14:37:53 PAGE 7
366
367 void initdisplay1(void) //開機(jī)畫面
368 {
369 1 //uchar i,j;
370 1 uchar i;
371 1 //Serial_int();// 液晶初始化
372 1
373 1 //for(j=1;j<10;j++) //不停的顯示,這個參數(shù)需要修改
374 1 // {
375 1
376 1 Writelcd( 0x80,0 );
377 1 for(i=0;i<16;i++)
378 1 Writelcd( tegong[i],1 );
379 1
380 1 Writelcd( 0x90,0 ); //說明:word:要寫的內(nèi)容 dat:1為數(shù)據(jù) 0為指令
381 1 for(i=0;i<16;i++)
382 1 Writelcd( numble[i],1 );
383 1
384 1
385 1 Writelcd( 0x88,0 );
386 1 for(i=0;i<8;i++)
387 1 Writelcd( name[i],1 );
388 1
389 1
390 1 Writelcd( 0x98,0 );
391 1 for(i=0;i<8;i++)
392 1 Writelcd( zhifu[i],1 );
393 1 // }
394 1 }
395
396 /***************************************************/
397
398 void B_J()
399 {
400 1 if(((hour==hh)&&(minite==ff)&&(second<=30))||(tvalue>=350)||(tvalue<=150))
401 1 {
402 2 led1=0;buzzer=1;
403 2 }
404 1 else
405 1 {led1=1;buzzer=0;}
406 1 }
407
408 /****************************************************/
409
410 /********************主程序***************************/
411 void main()
412 {
413 1 set=1;ret=1;add=1;dec=1;buzzer=0;led1=1;
414 1 TMOD=0X01;
415 1 TH0=0X3C;
416 1 TL0=0Xb0;
417 1 EA=1;
418 1 ET0=1;
419 1 TR0=1;
420 1 Serial_int();
421 1 initdisplay();
422 1 delay(5000);
423 1 initdisplay1();
424 1 while(1)
425 1 {
426 2 read_temp();
427 2 display();
C51 COMPILER V7.50 FYD 08/01/2008 14:37:53 PAGE 8
428 2 key_scan();
429 2 B_J();
430 2 }
431 1 }
432
433 /*********************定時中斷服務(wù)程序**********************/
434 void time(void) interrupt 1 using 1
435 {
436 1 //ET0=0;TR0=1;
437 1 TH0=0X3C;
438 1 TL0=0Xb0;
439 1 //TR0=1;
440 1 ms50++;
441 1 if(ms50==20)
442 1 {
443 2 ms50=0;
444 2 second++;
445 2 if(second==60)
446 2 {
447 3 second=0;minite++;
448 3 if(minite==60)
449 3 {
450 4 minite=0;
451 4 hour++;
452 4 if(hour==24)
453 4 hour=0;
454 4 }
455 3 }
456 2 }
457 1 //ET0=1;
458 1 }
459
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1379 ----
CONSTANT SIZE = 114 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 27 4
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -