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

📄 dvs-v1.0.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
 165   2                      auc_data=auc_data>>1;
 166   2                      HT9200_CLK = 1 ;
 167   2              }       
 168   1      }
 169          //===============================================================================================
 170          //语法格式:             SendDTMEDat(unsigned char auc_data)
 171          //实现功能:             拔打电话
 172          //参数:                 需要拔出去的号码
 173          //返回:                 无
 174          //创建时间:2008-11-30          修改时间:
 175          //创建人员:                    修改人员:
 176          //===============================================================================================
 177          void SendDTMEDat(unsigned char auc_data)
 178          {
 179   1              unsigned char data luc_temp;
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 4   

 180   1              Delay1Ms(100);                                                  //延时 100 ms
 181   1              SUN_LED = SUN_LED_ON;
 182   1              if(auc_data == 0)       luc_temp = 10;          //DTMF编码中的'0'是'10'
 183   1              else    luc_temp = auc_data;
 184   1              HT9200_CE1 = 0 ;
 185   1              HT9200_CLK = 1 ;
 186   1              Delay1Ms(10);                                                   //延时 10 ms
 187   1              EA = 0 ;
 188   1              SendDTMFByte(luc_temp) ;
 189   1              EA = 1 ;
 190   1              Delay1Ms(100);                                                  //延时 100 ms
 191   1              HT9200_CE1 = 1;
 192   1              SUN_LED = SUN_LED_OFF;
 193   1      }
 194          
 195          
 196          //===============================================================================================
 197          //语法格式:SaveInit()
 198          //实现功能:保存初始化的数据
 199          //参数:        无
 200          //返回值:      无
 201          //创建时间:2008-11-30          修改时间:
 202          //创建人员:                    修改人员:
 203          //===============================================================================================
 204          unsigned char code Init_Tab[6]={0x31,0x32,0x01,0x02,0x03,0x04};
 205          void SaveInit()
 206          {
 207   1              unsigned char data luc_i;
 208   1              for(luc_i = 0 ; luc_i < 6 ; luc_i++)
 209   1              {
 210   2                      WrEEPROM(luc_i,Init_Tab[luc_i]);                                                                //保存初始化的值
 211   2              }
 212   1              PassSafeDefau;                                                                                                          //默认密码保护
 213   1              WrEEPROM(Alar_TI_Addr,ALARSOURTIME);                                                            //默认警笛时间为15秒钟
 214   1              WrEEPROM(Ring_Cnt_Addr,RING_TACTI_CNT);                                                         //振铃次数
 215   1      }
 216          
 217          
 218          
 219          
 220          //===============================================================================================
 221          //语法格式:Init()
 222          //实现功能:开机初始化
 223          //参数:        无
 224          //返回值:      无
 225          //创建时间:2008-11-30          修改时间:
 226          //创建人员:                    修改人员:
 227          //===============================================================================================
 228          void Init()
 229          {
 230   1              unsigned char data luc_i,luc_j;
 231   1              bit bit_ok;
 232   1              guc_bitbhOF = 1;                                                                                //打开拔号开关                                  
 233   1              POW_GlimmLEDOF = 1;                                                                             //电源指示灯闪烁打开
 234   1      //      guc_bit_AlarPul = 1;                                                                    //拔号报警标致
 235   1              guc_bitAlaSounPul = 0;                                                                  //断线报警只报一次标致
 236   1              guc_bit_AlLedOF = 0;                                                                    //报警指示灯关闭闪烁
 237   1              guc_bit_Alar_led = 1;                                                                   //防区指示灯闪烁开关
 238   1              guc_bitARPul = 1;                                                                               //断线报警只判断一次
 239   1              guc_Bit_BuChe = 1;                                                                              //默认为布防
 240   1              guc_bit_RemCom = 0;                                                                             //2272解码清0
 241   1      //      guc_bit_SenAlar = 0;                                                                    //传感器报警
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 5   

 242   1              guc_bitLineOFAlar = 1;                                                                  //断线报警开关
 243   1              BZZER = 0;                                                                                              //蜂响声
 244   1              Listen_CTRL = 0;                                                                                //关闭现场监听
 245   1              SET = 0;                                                                                                //继电器
 246   1              HANDUP = 0;                                                                                             //摘机
 247   1              guc_REM_TI = 0;                                                                                 //315解码定时器
 248   1              guc_AlarCnt = 0;                                                                                //拔号计算器清0
 249   1              guc_KATime = 0;                                                                                 //警响声计数器清0
 250   1      //      guc_bit_ERC = 0;                                                                                //放音开闭
 251   1              guc_TI = TWINLEDTIME;                                                                   //防区灯闪烁定时计数器
 252   1              guc_bitPhSet = 0;                                                                               //电话设置蜂鸣声开关
 253   1              guc_bitENCD =  0;                                                                               //现场听标致
 254   1              guc_74HC164LED = 0;
 255   1              DispAlarLED();
 256   1              for(luc_j = 0 ; luc_j < 3 ; luc_j ++)                                   //读3次开机标致位,只要有一次成功退出
 257   1              {
 258   2                      for(luc_i = 0 ; luc_i < 2 ; luc_i++)                            //读取开机标致
 259   2                      {
 260   3                              if(RdEEPROM(luc_i) == Init_Tab[luc_i]) bit_ok = 1;
 261   3                              else
 262   3                              {
 263   4                                      bit_ok = 0;
 264   4                                      break;
 265   4                              }
 266   3                      }
 267   2                      if(bit_ok == 1) break;
 268   2              }
 269   1              if(bit_ok == 0) SaveInit();                                                             //没有开机初始化,则初始化                                                                                                      
 270   1              for(luc_i = 0 ; luc_i < 4 ; luc_i++)
 271   1              {
 272   2                      guc_PassBuf[luc_i] = RdEEPROM(2+luc_i);                         //读取密码
 273   2              }
 274   1      }
 275          
 276          
 277          
 278          
 279          //===============================================================================================
 280          //语法格式:SetBuChe()
 281          //实现功能:设置布撤防
 282          //参数:        无
 283          //返回值:      无
 284          //创建时间:2008-11-30          修改时间:
 285          //创建人员:                    修改人员:
 286          //===============================================================================================       
 287          void RemIn()
 288          {  
 289   1      
 290   1              unsigned char data A[3];                                        //存放解码的数据
 291   1              unsigned char data luc_i,luc_j;
 292   1              unsigned int data  luc_temp; 
 293   1              unsigned char data luc_Cnt;
 294   1              if(!REM_DATA)
 295   1              { 
 296   2                      //ClearWatchDog();
 297   2                      for(luc_Cnt = 0; luc_Cnt < 2 ; luc_Cnt++)                       //连续解码两次,防止误码解码
 298   2                      {
 299   3                              TH0=0; TL0=0;                                                                   //清定时器的计数器      
 300   3                              while (!REM_DATA);                              //等待高电平 
 301   3                              TR0=1;                                                  //启动定时器0
 302   3                              while(REM_DATA);                                //等待低电平    
 303   3                              if (TF0==1)  goto RemExit;                              //超时就退出
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 6   

 304   3                              TR0 = 0;  
 305   3                              luc_temp=TH0;    
 306   3                              luc_temp=(luc_temp<<8)+TL0;  
 307   3                              if (SynchHard)                                                                  //判断同步码的宽度,同步码5ms--6ms
 308   3                              {       
 309   4                                      luc_temp=0; 
 310   4                                      goto RemExit;  
 311   4                              }                                                                                               //同步码第一次检测成功 
 312   3                              for (luc_i=0; luc_i<3; luc_i++)                                 //解 3*8=24 位码  
 313   3                              {  
 314   4                                      for (luc_j=0; luc_j<8; luc_j++)    
 315   4                                      {       
 316   5                                              while (!REM_DATA);                                              //等待高电平  
 317   5                                              TH0=0;  TL0=0;                                                  //清定时器的计数器               
 318   5                                              TR0=1;
 319   5                                              while (REM_DATA);                                               //等待低电平        
 320   5                                              if (TF0==1) goto RemExit;                               //超时就退出 
 321   5                                              TR0=0;     
 322   5                                              luc_temp=TH0;    
 323   5                                              luc_temp=(luc_temp<<8)+TL0;   
 324   5                                              if (WideSing)                                                   //宽取0.4ms--0.5ms
 325   5                                              {   
 326   6                                                      A[luc_i]=A[luc_i]<<1;                           //保存0  
 327   6                                              }        
 328   5                                              else if (NarrowSing)                                    //窄取0.1ms--0.2ms
 329   5                                              {  
 330   6                                                      A[luc_i]=A[luc_i]<<1; 
 331   6                                                      A[luc_i]=A[luc_i]+1;                            //保存 1 
 332   6                                              }          
 333   5                                              else goto RemExit;  
 334   5                                      }   
 335   4                                      luc_temp=0;

⌨️ 快捷键说明

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