⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wxbj.lst

📁 c51 有LED做的日历+时钟,注释很详细
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -