?? wxbj.lst
字號:
390
391 /****************主程序*******************/
392 void main()
393 { init();//初始化
394 1 while(1)// 無限循環
395 1 {
396 2 scankey();//掃描按鍵
397 2 reset()//看門狗復位
398 2 conv();//時間計算及轉換
399 2 IO_fnc();//報警觸發處理
400 2 pdT();}//判斷定時輸出
401 1 }
402
403 /************************/
404 void pdT(void)// 判斷定時輸出子函數
405 {reset()
406 1 //---------------------------------
407 1 if(T1_startflag){// 若T1標志啟動
408 2 if((T1min_st==min)&&(T1hou_st==hou)) {out_P3_1=0;}// 若定時時與分到
409 2 P3_1=out_P3_1;}// 輸出激活
*** ERROR C202 IN LINE 409 OF WXBJ.C: 'P3_1': undefined identifier
410 1 if(T1_endflag){// 若T2標志啟動
411 2 if((T1min_end==min)&&(T1hou_end==hou)) {out_P3_1=1;}// 若定時時與分到
412 2 P3_1=out_P3_1;}// 輸出關閉
*** ERROR C202 IN LINE 412 OF WXBJ.C: 'P3_1': undefined identifier
413 1 //---------------------------------------------
414 1 if(T2_startflag){// 若T3標志啟動
415 2 if((T2min_st==min)&&(T2hou_st==hou)) {out_P1_2=0;}// 若定時時與分到
416 2 P1_2=out_P1_2;}// 輸出激活
*** ERROR C202 IN LINE 416 OF WXBJ.C: 'P1_2': undefined identifier
417 1 if(T2_endflag){// 若T4標志啟動
418 2 if((T2min_end==min)&&(T2hou_end==hou)) {out_P1_2=1;}// 若定時時與分到
C51 COMPILER V7.50 WXBJ 09/11/2007 13:26:28 PAGE 10
419 2 P1_2=out_P1_2;}// 輸出關閉
*** ERROR C202 IN LINE 419 OF WXBJ.C: 'P1_2': undefined identifier
420 1 //---------------------------------------------
421 1 if(ALMstart){if(ALMmin>0)P3_0=0;}// 啟動報警喇叭
*** ERROR C202 IN LINE 421 OF WXBJ.C: 'P3_0': undefined identifier
422 1 else P3_0=1;
*** ERROR C202 IN LINE 422 OF WXBJ.C: 'P3_0': undefined identifier
423 1 }
424
425 /**********************************/
426 void scankey()//掃描按鍵子函數
427 {
428 1 if((MS==0)||(MS==10))EX0=1;else EX0=0;// 若模式為0或10,打開外中斷0
*** ERROR C202 IN LINE 428 OF WXBJ.C: 'EX0': undefined identifier
*** ERROR C202 IN LINE 428 OF WXBJ.C: 'EX0': undefined identifier
429 1 if(MS<7)// 若模式小于7
430 1 {
431 2 if(!MSKEY){MS++;delay(300);if(MS==7)MS=0;}// 調整模式
*** ERROR C202 IN LINE 431 OF WXBJ.C: 'MSKEY': undefined identifier
432 2 if(MS==1){
433 3 if(!MONKEY){mon++;if(mon>12)mon=1;delay(300);}// 調整月
*** ERROR C202 IN LINE 433 OF WXBJ.C: 'MONKEY': undefined identifier
434 3 if(!DAYKEY){day++;if(day>31)day=1;delay(300);}// 調整天
*** ERROR C202 IN LINE 434 OF WXBJ.C: 'DAYKEY': undefined identifier
435 3 if(!HOUKEY){hou++;if(hou>23)hou=0;delay(300);}// 調整時
*** ERROR C202 IN LINE 435 OF WXBJ.C: 'HOUKEY': undefined identifier
436 3 if(!MINKEY){min++;if(min>=60)min=0;delay(300);}// 調整分
*** ERROR C202 IN LINE 436 OF WXBJ.C: 'MINKEY': undefined identifier
437 3 }
438 2 if(MS==2){// 調整定時T1
439 3 if(!HOUKEY){T1hou_st++;if(T1hou_st>23)T1hou_st=0;delay(300);}
*** ERROR C202 IN LINE 439 OF WXBJ.C: 'HOUKEY': undefined identifier
440 3 if(!MINKEY){T1min_st++;if(T1min_st>=60)T1min_st=0;delay(300);}
*** ERROR C202 IN LINE 440 OF WXBJ.C: 'MINKEY': undefined identifier
441 3 if(!CHECKKEY){T1_startflag=!T1_startflag;delay(300);}// 啟動T1
*** ERROR C202 IN LINE 441 OF WXBJ.C: 'CHECKKEY': undefined identifier
442 3 }
443 2 if(MS==3){// 調整定時T2
444 3 if(!HOUKEY){T1hou_end++;if(T1hou_end>23)T1hou_end=0;delay(300); }
*** ERROR C202 IN LINE 444 OF WXBJ.C: 'HOUKEY': undefined identifier
445 3 if(!MINKEY){T1min_end++;if(T1min_end>=60)T1min_end=0;delay(300);}
*** ERROR C202 IN LINE 445 OF WXBJ.C: 'MINKEY': undefined identifier
446 3 if(!CHECKKEY){T1_endflag=!T1_endflag;delay(300);}// 啟動T2
*** ERROR C202 IN LINE 446 OF WXBJ.C: 'CHECKKEY': undefined identifier
447 3 }
448 2 if(MS==4){// 調整定時T3
449 3 if(!HOUKEY){T2hou_st++;if(T2hou_st>23)T2hou_st=0;delay(300);}
*** ERROR C202 IN LINE 449 OF WXBJ.C: 'HOUKEY': undefined identifier
450 3 if(!MINKEY){T2min_st++;if(T2min_st>=60)T2min_st=0;delay(300);}
*** ERROR C202 IN LINE 450 OF WXBJ.C: 'MINKEY': undefined identifier
451 3 if(!CHECKKEY){T2_startflag=!T2_startflag;delay(300);}// 啟動T3
*** ERROR C202 IN LINE 451 OF WXBJ.C: 'CHECKKEY': undefined identifier
452 3 }
453 2 if(MS==5){// 調整定時T4
454 3 if(!HOUKEY){T2hou_end++;if(T2hou_end>23)T2hou_end=0;delay(300); }
*** ERROR C202 IN LINE 454 OF WXBJ.C: 'HOUKEY': undefined identifier
455 3 if(!MINKEY){T2min_end++;if(T2min_end>=60)T2min_end=0;delay(300);}
*** ERROR C202 IN LINE 455 OF WXBJ.C: 'MINKEY': undefined identifier
456 3 if(!CHECKKEY){T2_endflag=!T2_endflag;delay(300);}// 啟動T4
*** ERROR C202 IN LINE 456 OF WXBJ.C: 'CHECKKEY': undefined identifier
457 3 }
458 2 if(MS==6){// 調整報警時間
C51 COMPILER V7.50 WXBJ 09/11/2007 13:26:28 PAGE 11
459 3 if(!rdflag){ALMmin=rd_24c01(6);rdflag=1;}// 若尚未從24C01中6號單元讀出
460 3 //報警時間,則讀一次
461 3 if(!MINKEY){delay(30);if(!MINKEY)ALMmin++;if(ALMmin>59)ALMmin=1;delay(300);}
*** ERROR C202 IN LINE 461 OF WXBJ.C: 'MINKEY': undefined identifier
*** ERROR C202 IN LINE 461 OF WXBJ.C: 'MINKEY': undefined identifier
462 3 if(!CHECKKEY){ ALMmin_iicflag=1;delay(300);}// 將調整后的報警時間再寫
*** ERROR C202 IN LINE 462 OF WXBJ.C: 'CHECKKEY': undefined identifier
463 3 //入6號單元
464 3 if(ALMmin_iicflag){EA=0;P0_7=0;wr_24c01(6,ALMmin);delay_iic(250);EA=1;
*** ERROR C202 IN LINE 464 OF WXBJ.C: 'EA': undefined identifier
*** ERROR C202 IN LINE 464 OF WXBJ.C: 'P0_7': undefined identifier
*** ERROR C202 IN LINE 464 OF WXBJ.C: 'EA': undefined identifier
465 4 delay(2000);ALMmin_iicflag=0;}else P0_7=1;
*** ERROR C202 IN LINE 465 OF WXBJ.C: 'P0_7': undefined identifier
466 3 }
467 2 }
468 1 }
469
470 /**************查詢報警的歷史記錄子函數****************/
471 void extern_zd0(void) interrupt 0 using 0
472 {EA=0;
*** ERROR C202 IN LINE 472 OF WXBJ.C: 'EA': undefined identifier
473 1 MS=10;P0=0x00;P2=0xff;// 置模式10
*** ERROR C202 IN LINE 473 OF WXBJ.C: 'P0': undefined identifier
*** ERROR C202 IN LINE 473 OF WXBJ.C: 'P2': undefined identifier
474 1 if(!checkflag){iic_cnt=rd_24c01(5);delay_iic(250);
475 2 y=iic_cnt;x=y*4;checkflag=1;}
476 1
477 1 ALMadd=rd_24c01(x);delay_iic(250);
478 1 temp_day=rd_24c01(x+1);delay_iic(250);
479 1 temp_hou=rd_24c01(x+2);delay_iic(250);
480 1 temp_min=rd_24c01(x+3);delay_iic(250);
481 1 y--;
482 1 memoryoverflag=rd_24c01(7);delay_iic(250);
483 1 if(y==1){if(memoryoverflag==55)y=31;else y=iic_cnt;}
484 1 x=y*4;EA=1;delay(500);
*** ERROR C202 IN LINE 484 OF WXBJ.C: 'EA': undefined identifier
485 1 }
486 /************************************************************************/
487 /**********以下為24C01的讀寫子函數*************/
488 /*************************************************************************/
489 #include <AT89X55.H>
*** WARNING C318 IN LINE 489 OF wxbj.c: can't open file 'AT89X55.H'
490 #include <intrins.H>
491 #define uchar unsigned char
492 #define uint unsigned int
493 sbit SDA=P1^0;
*** ERROR C202 IN LINE 493 OF WXBJ.C: 'P1': undefined identifier
494 sbit SCL=P1^1;
*** ERROR C202 IN LINE 494 OF WXBJ.C: 'P1': undefined identifier
495 //sfr WDT=0xa6;
496 //#define reset() {WDT=0x1e;WDT=0xe1;}
497 bdata char com_data;
498 sbit mos_bit=com_data^7;
499 sbit low_bit=com_data^0;
500 uchar data display_buffer[10];
501 void delay_iic(int n);
502 uchar rd_24c01(char a);
503 void wr_24c01(char a,char b);
504 //***************************
505
506 //***************************************
C51 COMPILER V7.50 WXBJ 09/11/2007 13:26:28 PAGE 12
507 void start()//啟動讀寫時序
508 {
509 1 SDA=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 509 OF WXBJ.C: 'SDA': undefined identifier
510 1 SCL=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 510 OF WXBJ.C: 'SCL': undefined identifier
511 1 SDA=0;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 511 OF WXBJ.C: 'SDA': undefined identifier
512 1 SCL=0;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 512 OF WXBJ.C: 'SCL': undefined identifier
513 1 }
514 //*****************************************
515 void stop()//停止操作
516 {
517 1 SDA=0;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 517 OF WXBJ.C: 'SDA': undefined identifier
518 1 SCL=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 518 OF WXBJ.C: 'SCL': undefined identifier
519 1 SDA=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 519 OF WXBJ.C: 'SDA': undefined identifier
520 1 }
521 //***********************
522 void ack()//應答
523 {
524 1 SCL=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 524 OF WXBJ.C: 'SCL': undefined identifier
525 1 SCL=0;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 525 OF WXBJ.C: 'SCL': undefined identifier
526 1 }
527 //***********************
528 void shift8(char a)//8位移位輸出
529 {
530 1 data uchar i;
531 1 com_data=a;
532 1 for(i=0;i<8;i++)
533 1 {
534 2 SDA=mos_bit;
*** ERROR C202 IN LINE 534 OF WXBJ.C: 'SDA': undefined identifier
535 2 SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 535 OF WXBJ.C: 'SCL': undefined identifier
536 2 SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 536 OF WXBJ.C: 'SCL': undefined identifier
537 2 com_data=com_data*2;
538 2 }
539 1 }
540 //******************
541 uchar rd_24c01(char a)//讀24C01A中a地址單元的數據
542 {
543 1 data uchar i,command;
544 1 SDA=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 544 OF WXBJ.C: 'SDA': undefined identifier
545 1 SCL=0;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 545 OF WXBJ.C: 'SCL': undefined identifier
546 1 start();
547 1 command=160;
548 1 shift8(command);
549 1 ack();
550 1 shift8(a);
551 1 ack();
552 1 start();
553 1 command=161;
554 1 shift8(command);
C51 COMPILER V7.50 WXBJ 09/11/2007 13:26:28 PAGE 13
555 1 ack();
556 1 SDA=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 556 OF WXBJ.C: 'SDA': undefined identifier
557 1 for(i=0;i<8;i++)
558 1 {
559 2 com_data=com_data*2;
560 2 SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 560 OF WXBJ.C: 'SCL': undefined identifier
561 2 low_bit=SDA;
*** ERROR C202 IN LINE 561 OF WXBJ.C: 'SDA': undefined identifier
562 2 SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 562 OF WXBJ.C: 'SCL': undefined identifier
563 2 }
564 1 stop();
565 1 return(com_data);
566 1 }
567 //*****************
568 void wr_24c01(char a,char b)//將RAM中b地址單元的數據寫入24C01A中a地址單元中
569 {
570 1 data uchar command;
571 1 _nop_();_nop_();_nop_();_nop_();_nop_();
572 1 SDA=1;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 572 OF WXBJ.C: 'SDA': undefined identifier
573 1 SCL=0;_nop_();_nop_();_nop_();_nop_();
*** ERROR C202 IN LINE 573 OF WXBJ.C: 'SCL': undefined identifier
574 1 start();
575 1 command=160;
576 1 shift8(command);
577 1 ack();
578 1 shift8(a);
579 1 ack();
580 1 shift8(b);
581 1 ack();
582 1 stop();
583 1 _nop_();_nop_();_nop_();_nop_();_nop_();
584 1 }
585 //***************
586 void delay_iic(int n)// 延時
587 {
588 1 int i;
589 1 for(i=1;i<n;i++){reset();}
590 1 }
C51 COMPILATION COMPLETE. 2 WARNING(S), 187 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -