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

📄 dvs-v1.0.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
 678          //参数:        无
 679          //返回值:      无
 680          //创建时间:2008-11-30          修改时间:
 681          //创建人员:                    修改人员:
 682          //===============================================================================================       
 683          unsigned char code DelRFAdd[3]={0xff,0xff,0xff};
 684          void ScanSetRFAddr()
 685          {
 686   1      
 687   1              unsigned char data luc_SectorCnt = 0;
 688   1              unsigned char data luc_temp;
 689   1              if(COOD==0)                                                                             //如果有按键按下
 690   1              {
 691   2                      Delay1Ms(30);                                                           //延时,防止误按
 692   2                      if(COOD==0)                                                                     
 693   2                      {
 694   3                              guc_SetAddrTi = 5*KEY_TIME;                             //按键盘定时
 695   3                              SetWordDisp();                  
 696   3                              guc_bit_AlLedOF = 0     ;                                       //报警指示闪烁灯关
 697   3                              SUN_LED = SUN_LED_ON;                                   //撤防时电源指示点亮
 698   3                              while(COOD==0)                                                  //等待按键松开
 699   3                              {
 700   4                                      //ClearWatchDog();
 701   4                                      if(guc_SetAddrTi == 0) 
 702   4                                      {
 703   5                                              FailBuzzer();                                   //设置失败时发出的声音,其实是正确设置以误导用户不能私自设置
 704   5                                              guc_Timer0 = 0;
 705   5      //                                      guc_bitAlarPul2 = 0;                    //表示已经报过警了
 706   5                                              SetRemotAddr();
 707   5                                              return;
 708   5                                      }
 709   4                              }
 710   3                              ClearRem();                                                             //清除解码后的数据
 711   3                              POW_GlimmLEDOF = 0;                                             //电源指示灯闪烁关闭
 712   3                              SUN_LED = SUN_LED_OFF;                                  //关闭电源指示灯
 713   3                              guc_bit_Alar_led = 0;
 714   3                              guc_Timer0 = SET_REM_TIM;
 715   3                              guc_74HC164LED = 0;
 716   3                              FlickerOut(luc_SectorCnt) ;
 717   3                              SuccBuzzer();                                                   //设置成功时发出的声音
 718   3                              while(1)
 719   3                              {
 720   4                                      RemIn();                                                        //不断扫描是否解码
 721   4                                      if(guc_Timer0==0)
 722   4                                      {
 723   5                                              guc_74HC164LED = 0;
 724   5                                              SUN_LED = SUN_LED_OFF;  
 725   5                                              DispAlarLED();
 726   5                                              guc_bit_Alar_led = 1;
 727   5                                              break;
 728   5                                      }
 729   4                                      if(guc_bit_RemCom==1)                                                                   //有传感器来
 730   4                                      {
 731   5                                              guc_Timer0 = SET_REM_TIM;                                                       //定时器定时
 732   5                                              luc_temp = JudgeDupAddr(guc_R315Buf);
 733   5                                              if(luc_temp==0)                                                                         //如果没有相同的编码则保存存
 734   5                                              {
 735   6                                                      SaveRFAdd(luc_SectorCnt,guc_R315Buf,1);                 //保存信息
 736   6                                                      guc_74HC164LED = 0;
 737   6                                                      SUN_LED = SUN_LED_ON;   
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 13  

 738   6                                                      SuccBuzzer();                                                                   //设置成功时发出的声音
 739   6                                              }
 740   5                                              else if(luc_SectorCnt!=(luc_temp-1))FailBuzzer();       //设置失败时发出的声音
 741   5                                              ClearRem();                                                                                     //清除解码后的数据
 742   5                                      }
 743   4                                      if(COOD==0)
 744   4                                      {
 745   5                                              Delay1Ms(30);                                                                           //延时,防止误按
 746   5                                              if(COOD==0)                                                                     
 747   5                                              {
 748   6                                                      guc_SetAddrTi = KEY_TIME;                                               //按键盘定时
 749   6                                                      while(COOD==0)                                                                  //等待按键松开
 750   6                                                      {                       
 751   7                                                              //ClearWatchDog();
 752   7                                                              if(guc_SetAddrTi == 0) 
 753   7                                                              {
 754   8                                                                      SaveRFAdd(luc_SectorCnt,DelRFAdd,0);    //保存信息
 755   8                                                                      SuccBuzzer();                                                   //设置成功时发出的声音
 756   8                                                                      continue;
 757   8                                                              }
 758   7                                                      }
 759   6                                                      SUN_LED = SUN_LED_OFF;
 760   6                                                      guc_Timer0 = SET_REM_TIM;                                               //定时器定时
 761   6                                                      guc_74HC164LED = 0;
 762   6                                                      luc_SectorCnt++;
 763   6                                                      FlickerOut(luc_SectorCnt) ;
 764   6                                              }
 765   5                                      }
 766   4                                      if(luc_SectorCnt == 8 )
 767   4                                      {
 768   5                                              guc_74HC164LED = 0;
 769   5                                              SUN_LED = SUN_LED_OFF;
 770   5                                              DispAlarLED();
 771   5                                              guc_bit_Alar_led = 1;
 772   5                                              break;
 773   5                                      }
 774   4                              }
 775   3      //                      guc_bitAlarPul2 = 0;                                                                            //表示已经报过警了
 776   3                              guc_Timer0 = 0;
 777   3                      }
 778   2              }
 779   1      }
 780          
 781          
 782          
 783          
 784          //===============================================================================================
 785          //语法格式:     HC164Shif()
 786          //实现功能:74hc164输出
 787          //参数:        无
 788          //返回值:      无
 789          //创建时间:2008-11-30          修改时间:
 790          //创建人员:                    修改人员:
 791          //===============================================================================================
 792          void HC164Shif()
 793          {
 794   1              unsigned char data luc_i;
 795   1              unsigned char data luc_temp;
 796   1              luc_temp = guc_74HC164LED;
 797   1              for(luc_i = 0 ; luc_i < 8 ; luc_i ++)
 798   1              {
 799   2                      //ClearWatchDog();
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 14  

 800   2                      LED_CLK = 0;                                                                                            //LED位
 801   2                      LED_DATA=luc_temp&0x80;                                                                         //LED输出一位
 802   2                      luc_temp=luc_temp<<1; 
 803   2                      LED_CLK =1;
 804   2              }
 805   1      }
 806          
 807          
 808          //===============================================================================================
 809          //语法格式:SetWordDisp()
 810          //实现功能:各种设置时各LED指示
 811          //参数:        无
 812          //返回值:      无
 813          //创建时间:2008-11-30          修改时间:
 814          //创建人员:                    修改人员:
 815          //===============================================================================================
 816          void SetWordDisp()
 817          {
 818   1              if(guc_bit_Alar_led)guc_74HC164LED = 0;                                                 //如果以前没有报过警关闭所有防区灯
 819   1              guc_bit_Alar_led = 0 ;                                                                                  //防区指示灯闪烁关
 820   1              guc_bit_AlLedOF = 1     ;                                                                                       //报警指示闪烁灯开
 821   1              POW_GlimmLEDOF = 0 ;                                                                                    //电源指示灯闪烁关
 822   1              SUN_LED = SUN_LED_OFF;                                                                                  //关闭电源指示灯
 823   1              guc_bitLedDispPul = 1;                                                                                  //设置时各指示灯只点亮一次标致
 824   1              
 825   1      }
 826          
 827          //===============================================================================================
 828          // 语法格式:LedWorkDisp()
 829          // 实现功能:正常工作LED指示
 830          // 输入参数:无
 831          // 返回参数:无
 832          // 创建时间:2008-11-30          修改时间:
 833          // 创建人员:                    修改人员:
 834          //===============================================================================================
 835          void LedWorkDisp()
 836          {
 837   1              if(guc_bitLedDispPul)                                                                                   //设置时各指示灯只点亮一次标致
 838   1              {
 839   2                      if((guc_KATime == 0)&&(!guc_bit_SenAlar)&&(guc_Bit_BuChe)&&(guc_Timer0==0))     
 840   2                      {
 841   3                              guc_74HC164LED = 0;                                                                             //统一点亮
 842   3                              guc_bitLedDispPul = 0;                                                                  //设置时各指示灯只点亮一次标致  
 843   3                              guc_bit_Alar_led = 1 ;                                                                  //防区指示灯闪烁开
 844   3                              guc_bit_AlLedOF = 0     ;                                                                       //报警指示闪烁灯关
 845   3                              POW_GlimmLEDOF = 1 ;                                                                    //电源指示灯闪烁开
 846   3                              SUN_LED =

⌨️ 快捷键说明

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