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

📄 lcm16864zk.lst

📁 一个基于51单片机的报警系统。包含有电路图
💻 LST
📖 第 1 页 / 共 5 页
字号:
 313   1      }
 314          
 315          /////////////////////////////////////////////////////
 316          
 317          void BurstW1302(pcalen) //写入多字节的数据
 318          uchar pcalen[8];
 319          {
 320   1              uchar i;
 321   1              Writ1302(0x8e,0x00);  //WP=0,写操作
 322   1              T_RST=0;
 323   1              T_CLK=0;
 324   1              T_RST=1;
 325   1              RTInputByte(0xbe);      //0xbe ;时钟多字节写命令
 326   1              for(i=8;i>0;i--)
 327   1              {
 328   2                      RTInputByte(*pcalen);
 329   2                      pcalen++;
 330   2              }
 331   1              T_CLK=1;
 332   1              T_RST=0;
 333   1      }
 334          
 335          ////////////////////////////////////////////////////
 336          
 337          void ShowTime(void)            //时间显示 能自动从DS1302中读取时间数据显示在第一行
 338          {
 339   1           uchar i;
 340   1           BurstR1302(calen);
 341   1           i=0x80;
 342   1           WritCommand(i);
 343   1           i=calen[6];
 344   1           ShowTimes(i);
 345   1           i=0x2f;
 346   1           WritData(i);
 347   1           i=calen[4];
 348   1           ShowTimes(i);
 349   1           i=0x2f;
 350   1           WritData(i);
 351   1           i=calen[3];
 352   1           ShowTimes(i);
 353   1           i=0x2f;
 354   1           WritData(i);
 355   1           i=calen[2];
 356   1           ShowTimes(i);
 357   1           i=0x3a;
 358   1           WritData(i);
 359   1           i=calen[1];
 360   1           ShowTimes(i);
 361   1           i=calen[0];
 362   1           ShowTimes(i);
 363   1      }
 364          ////////////////
 365          void ShowTimes(uchar i)        //数字到BCD码的转换   因为LED显示的是BCD码
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 7   

 366          {
 367   1           uchar m,n;
 368   1           m=i>>4;
 369   1           m=m+0x30;
 370   1           n=i&0x0f;
 371   1           n=n+0x30;
 372   1           WritData(m);
 373   1           WritData(n);
 374   1      }
 375          
 376           ////////////////////////////////////////////////////////////////// 进入系统设置画面
 377          
 378          void ShScreen1(void)
 379          {
 380   1           uchar i,j=0,k=0;
 381   1           uchar CodeNum1[4];
 382   1           while(1) {if(LKEY==1) break; }
 383   1                                     //整体显示开  游标位置开
 384   1           WritCommand(0x0e);
 385   1           WritCommand(0x01);
 386   1           ShowPart1();
 387   1           WritCommand(0x90);
 388   1           WritData(0xcf);WritData(0xb5);WritData(0xcd);WritData(0xb3);       //显示系统密码:0
 389   1           WritData(0xc3);WritData(0xdc);WritData(0xc2);WritData(0xeb);
 390   1           WritData(0x3a);WritData(0x20);WritData(0x20);WritData(0x20);
 391   1           WritData(0x20);WritData(0x20);
 392   1           WritCommand(0x94);
 393   1           WritData(0xa3);
 394   1           WritData(0xb0);
 395   1           WritCommand(0x10);
 396   1           while(k<4)
 397   1           {
 398   2           if(LKEY==0)
 399   2              {
 400   3              Delay_ms(10);
 401   3              if(LKEY==0)
 402   3               {
 403   4                while(1){if(LKEY==1) break;}
 404   4                CodeNum1[k]=j;
 405   4                k++;
 406   4                for(i=0;i<4;i++)                     //判断密码是否正确
 407   4                  {
 408   5                  j=CodeNum[i];
 409   5                  if(CodeNum1[i]!=j)
 410   5                   {
 411   6                    WritCommand(0x01);
 412   6                    WritCommand(0x91);
 413   6                    WritData(0xc3);WritData(0xdc);WritData(0xc2);WritData(0xeb);  //密码错误
 414   6                    WritData(0xb4);WritData(0xed);WritData(0xce);WritData(0xf3);
 415   6                    Delay_s(3);
 416   6                    k=0;
 417   6                    ShScreen1();
 418   6                    break;
 419   6                    }
 420   5                   }
 421   4                   RobSet();
 422   4                   StealSet();
 423   4                   FireSet();
 424   4                   CalenSet();
 425   4                   FuncControl();
 426   4                  }
 427   3                  break;
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 8   

 428   3                 }
 429   2                if(MKEY==0)
 430   2                    {
 431   3                       Delay_ms(10);
 432   3      
 433   3                       if(MKEY==0)
 434   3                       {
 435   4                          j++;
 436   4                          if(j>9) j=0;
 437   4                          i=0xb0+j;
 438   4                          WritData(0xa3);
 439   4                          WritData(i);         //显示下个数
 440   4                          WritCommand(0x10);
 441   4                          while(1){ if(MKEY==1) break; }
 442   4                        }
 443   3                     }
 444   2           if(RKEY==0)
 445   2                    {
 446   3                      Delay_ms(10);          //延时去抖动
 447   3                      if(RKEY==0)
 448   3                      {
 449   4      
 450   4                          CodeNum1[k]=j;
 451   4                          WritCommand(0x14);
 452   4                          k++;
 453   4                          if(k>3) {k=0; WritCommand(0x94);}
 454   4                          WritData(0xa3);
 455   4                          WritData(0xb0);
 456   4                          WritCommand(0x10);
 457   4                          j=0;
 458   4                          while(1)
 459   4                           {
 460   5                            if(RKEY==1) break;
 461   5                           }
 462   4                        }
 463   3                      }
 464   2              ShowTime();
 465   2              WritCommand(0x94+k);
 466   2              Delay_ms(10);
 467   2            }
 468   1      
 469   1      }
 470          //////////////////////////////////////////////////////////各种显示画面
 471          ////////////////////////////////////////////////////////
 472          void ShowPart1(void)
 473          {
 474   1       WritCommand(0x98);
 475   1       WritData(0xc8);WritData(0xb7);WritData(0xc8);WritData(0xcf);     //显示确认 选数 移动
 476   1       WritData(0x20);WritData(0x20);WritData(0xd1);WritData(0xa1);
 477   1       WritData(0xca);WritData(0xfd);WritData(0x20);WritData(0x20);
 478   1       WritData(0xd2);WritData(0xc6);WritData(0xb6);WritData(0xaf);
 479   1      
 480   1      }
 481          
 482          void ShowPart2(void)
 483          {
 484   1       WritCommand(0x90);
 485   1       WritData(0xb7);WritData(0xa2);WritData(0xc9);WritData(0xe4);         //发射器编号:0
 486   1       WritData(0xc6);WritData(0xf7);WritData(0xb1);WritData(0xe0);
 487   1       WritData(0xba);WritData(0xc5);WritData(0x3a);WritData(0x20);
 488   1       WritData(0xa3);WritData(0xb0);WritData(0xa3);WritData(0xb0);
 489   1       WritData(0xa3);WritData(0xb0);
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 9   

 490   1      }
 491          void ShowPart3(void)
 492          {
 493   1       WritCommand(0x90);
 494   1       WritData(0xb5);WritData(0xe7);WritData(0xbb);WritData(0xb0);         //电话报警:Y
 495   1       WritData(0xb1);WritData(0xa7);WritData(0xbe);WritData(0xaf);
 496   1       WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xd9);
 497   1      }
 498          void ShowPart4(void)
 499          {
 500   1       WritCommand(0x98);
 501   1       WritData(0xc8);WritData(0xb7);WritData(0xc8);WritData(0xcf);           //确认   选择
 502   1       WritCommand(0x9e);
 503   1       WritData(0xd1);WritData(0xa1);WritData(0xd4);WritData(0xf1);
 504   1       }
 505           void ShowPart5(void)
 506           {
 507   1        WritCommand(0x98);
 508   1       WritData(0xbd);WritData(0xf8);WritData(0xc8);WritData(0xeb);   //进入
 509   1       WritCommand(0x9e);
 510   1       WritData(0xc1);WritData(0xed);WritData(0xd1);WritData(0xa1);   //另选
 511   1       }
 512           void ShowPart6(void)
 513           {
 514   1        WritCommand(0x91);
 515   1        WritData(0xc3);WritData(0xf9);WritData(0xbe);WritData(0xaf);
 516   1        WritData(0xb5);WritData(0xd1);                              //鸣警笛 :Y
 517   1        WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xd9);
 518   1        }
 519          void ShowPart7(void)
 520          {
 521   1       WritCommand(0x90);
 522   1       WritData(0xbd);WritData(0xd3);WritData(0xc1);WritData(0xa6);         //接力报警:Y
 523   1       WritData(0xb1);WritData(0xa7);WritData(0xbe);WritData(0xaf);
 524   1       WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xd9);
 525   1       }
 526          void ShowPart8(void)
 527           {
 528   1       WritCommand(0x90);
 529   1       WritData(0xb7);WritData(0xe2);WritData(0xcb);WritData(0xf8);         //封锁现场:Y
 530   1       WritData(0xcf);WritData(0xd6);WritData(0xb3);WritData(0xa1);
 531   1       WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xd9);
 532   1       }
 533          void ShowPart9(void)
 534          {
 535   1       WritCommand(0x90);
 536   1       WritData(0xc5);WritData(0xe7);WritData(0xc9);WritData(0xe4);         //喷射眠雾:Y
 537   1       WritData(0xc3);WritData(0xdf);WritData(0xce);WritData(0xed);
 538   1       WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xd9);
 539   1      }
 540          
 541          void ShowPart10(void)
 542          {
 543   1       WritCommand(0x90);
 544   1       WritData(0xd4);WritData(0xb1);WritData(0xb9);WritData(0xa4);         //员工编码:0
 545   1       WritData(0xb1);WritData(0xe0);WritData(0xba);WritData(0xc5);
 546   1       WritData(0xa3);WritData(0xb0);WritData(0xa3);WritData(0xb0);
 547   1       WritData(0xa3);WritData(0xb0);WritData(0xa3);WritData(0xb0);
 548   1      }
 549          void ShowPart11(void)
 550          {
 551   1       WritCommand(0x90);
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 10  

 552   1       WritData(0xd7);WritData(0xee);WritData(0xc9);WritData(0xd9);         //最少与数:0
 553   1       WritData(0xd3);WritData(0xeb);WritData(0xca);WritData(0xfd);
 554   1       WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xb0);
 555   1      }
 556          void ShowPart12(void)
 557          {
 558   1       WritCommand(0x90);
 559   1       WritData(0xc2);WritData(0xde);WritData(0xbc);WritData(0xad);           //逻辑关系:A
 560   1       WritData(0xb9);WritData(0xd8);WritData(0xcf);WritData(0xb5);
 561   1       WritData(0x3a);WritData(0x20);WritData(0xa6);WritData(0xa1);
 562   1      }
 563          void ShowPart13(void)
 564          {
 565   1       WritCommand(0x90);
 566   1       WritData(0xd3);WritData(0xeb);WritData(0xb5);WritData(0xc8);           // 与等时间000S
 567   1       WritData(0xca);WritData(0xb1);WritData(0xbc);WritData(0xe4);
 568   1       WritData(0xa3);WritData(0xb0);WritData(0xa3);WritData(0xb0);
 569   1       WritData(0xa3);WritData(0xb0);WritData(0xa3);WritData(0xd3);
 570   1      
 571   1      }
 572          void ShowPart14(void)
 573          {
 574   1       WritCommand(0x01);
 575   1       WritCommand(0x98);
 576   1       WritData(0xcc);WritData(0xee);WritData(0xd0);WritData(0xb4);           //填写    继续
 577   1       WritCommand(0x9b);
 578   1       WritData(0xb2);WritData(0xbb);WritData(0xcc);WritData(0xee);
 579   1       WritCommand(0x9e);
 580   1       WritData(0xbc);WritData(0xcc);WritData(0xd0);WritData(0xf8);
 581   1      }
 582          void ShowPart15(void)
 583          {
 584   1       WritCommand(0x90);
 585   1       WritData(0xd7);WritData(0xd4);WritData(0xb6);WritData(0xaf);         //自动喷水:Y
 586   1       WritData(0xc5);WritData(0xe7);WritData(0xcb);WritData(0xae);
 587   1       WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xd9);
 588   1      }
 589          void ShowPart16(void)
 590          {
 591   1       WritCommand(0x90);
 592   1       WritData(0xd7);WritData(0xd4);WritData(0xb6);WritData(0xaf);         //自动喷沙:Y
 593   1       WritData(0xc5);WritData(0xe7);WritData(0xc9);WritData(0xb3);
 594   1       WritData(0x3a);WritData(0x20);WritData(0xa3);WritData(0xd9);
 595   1      }
 596          
 597          void ShowPart17(void)
 598          {
 599   1        WritCommand(0x92);
 600   1       WritData(0xc8);WritData(0xd5);WritData(0xc0);WritData(0xFa);   //日历设置
 601   1       WritData(0xc9);WritData(0xe8);WritData(0xd6);WritData(0xc3);
 602   1      }
 603          void ShowPart18(void)
 604          {
 605   1        WritCommand(0x91);
 606   1       WritData(0xb1);WritData(0xa7);WritData(0xbe);WritData(0xaf);   //报警记录打印
 607   1       WritData(0xbc);WritData(0xc7);WritData(0xc2);WritData(0xbc);
 608   1       WritData(0xb4);WritData(0xf2);WritData(0xd3);WritData(0xa1);
 609   1      
 610   1      }
 611          void ShowPart19(void)
 612          {
 613   1        WritCommand(0x92);
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 11  

 614   1       WritData(0xc8);WritData(0xab);WritData(0xb3);WritData(0xbf);   //全部打印
 615   1       WritData(0xb4);WritData(0xf2);WritData(0xd3);WritData(0xa1);
 616   1      
 617   1      }
 618          void ShowPart20(void)
 619          {
 620   1       WritCommand(0x91);
 621   1       WritData(0xb4);WritData(0xf2);WritData(0xd3);WritData(0xa1);   //打印中请等待
 622   1       WritData(0xd6);WritData(0xd0);WritData(0xc7);WritData(0xeb);
 623   1       WritData(0xb5);WritData(0xc8);WritData(0xb4);WritData(0xfd);
 624   1      
 625   1      }
 626          void ShowPart21(void)
 627          {
 628   1       WritCommand(0x91);
 629   1       WritData(0xc3);WritData(0xbb);WritData(0xd3);WritData(0xd0);   //没有记录可打印
 630   1       WritData(0xbc);WritData(0xc7);WritData(0xc2);WritData(0xbc);
 631   1       WritData(0xb4);WritData(0xf2);WritData(0xd3);WritData(0xa1);
 632   1      }
 633          ////////////////////////////////////报警

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -