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

📄 dvs-funset.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DVS_FUNSET
OBJECT MODULE PLACED IN dvs-funset.OBJ
COMPILER INVOKED BY: D:\Program Files\keil2.0\C51\BIN\C51.EXE dvs-funset.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //dvs-funset.C
   2          #include "DVS-V1.0.H"
   3          #include "dvs_our_remaddr.h"
   4          
   5          
   6          bit guc_BitList = 0 ;                                                                                                           //现场监听标致位
   7          //=========================================== 函数定义 =======================================
   8          void In_Fun_SET();                                                                                                              //扫描功能设置
   9          void Fun_SET();                                                                                                                 //功能设置
  10          unsigned char DTMF();                                                                                                   //DTMF解码 
  11          void GreekVoice();                                                                                                              //远程控制时成功提示音
  12          void Greek_Listen_Ctrl();                                                                                               //现场监听
  13          //============================================================================================
  14          
  15          
  16          //========================================== 外部定义 ========================================
  17          //变量
  18          extern unsigned int data        guc_Timer0;                                                                     //拔号按键定时
  19          extern unsigned char data       guc_RFReadHAddr;                                                        //r315取读的高地址
  20          extern unsigned char data       guc_RFReadLAddr;                                                        //r315取读的低落地址
  21          extern unsigned char bdata      guc_74HC164LED;                                                         //指示灯
  22          //位
  23          extern bit guc_Bit_BuChe;                                                                                               //布撤防:1为布,0为撤
  24          extern bit guc_bitbhOF;                                                                                                 //拔号开关
  25          extern bit guc_bit_Alar_led;                                                                                    //防区指示灯闪烁开关
  26          extern bit guc_bit_RemCom;                                                                                              //2272解码时为1
  27          extern bit POW_GlimmLEDOF;                                                                                              //电源指示灯闪烁开关
  28          extern bit guc_bit_AlLedOF;                                                                                             //报警指示闪烁灯关
  29          extern bit guc_bitLineOFAlar;                                                                                   //断线报警开关
  30          extern bit guc_bitPhSet;                                                                                                //是否在远程控制
  31          //函数
  32          extern void DispAlarLED();                                                                                              //防区指示灯
  33          extern void SaveInit();                                                                                                 //保存初始化的值
  34          extern void ClearRem();                                                                                                 //清除2272解码后的数据 
  35          extern void SuccBuzzer();                                                                                               //设置成功时发出的声音
  36          extern void FailBuzzer();                                                                                               //设置失败时发出的声音
  37          extern void RemIn();                                                                                                    //315解码
  38          extern void StarSetFun();                                                                                               //开始设置各种功能
  39          extern void OverSetFun();                                                                                               //结束设置各种功能
  40          extern void BuFanDis();                                                                                                 //布防处理
  41          extern void CheFanDis();                                                                                                //撤防处理
  42          extern void Delay1Ms(unsigned int auc_time);                                                    //延时1MS
  43          extern void SendDTMEDat(unsigned char auc_data);                                                //DTMF拔号
  44          extern void SetWordDisp();                                                                                              //各种设置时各LED指示
  45          extern void WrEEPROM(unsigned char address,unsigned char indata);               //写EEPROM
  46          extern unsigned char RdEEPROM(unsigned char address);                                   //读EEPROM      
  47          extern void judgeRAYTC(unsigned char auc_Command,unsigned char auc_Send_Len,unsigned char *pDst);
  48          extern void SendASC(unsigned char ASC)  ;                                                               //发送-个ASCII
  49          //extern void SendToData(unsigned char *p,unsigned char Long);                  //发送命令
  50          //数组
  51          extern unsigned char data guc_PassBuf[4];                                                               //本机密码
  52          extern unsigned char data guc_R315Buf[3];                                                               //315解码后的数据
  53          extern unsigned char idata RsBuf[32];                                                                   //接收缓冲区
  54          //============================================================================================
  55          
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 2   

  56          
  57          
  58          
  59          
  60          //============================================================================================
  61          //语法格式:  unsigned char DTMF()
  62          //实现功能: DTMF解码 
  63          //参数:         无
  64          //返回:         DTMF解码后的数据
  65          //创建时间:2008-11-30          修改时间:
  66          //创建人员:                    修改人员:
  67          //============================================================================================
  68          unsigned char DTMF()
  69          {
  70   1              unsigned char luc_data;
  71   1              if(DTMF_Valid)
  72   1              {
  73   2                      while(DTMF_Valid)                                                                                       //等待按键松开
  74   2                      {
  75   3                              SUN_LED = SUN_LED_ON;
  76   3                              //ClearWatchDog();                                                                              //清看门狗
  77   3                              if(Listen_CTRL) guc_Timer0 = 32 * 30;                                   //如果是现场监听,定时30秒                      
  78   3                              else    guc_Timer0 = SET_REM_TIM;                                               //否则定时6秒
  79   3                              luc_data = P0&0x0f;
  80   3                      }
  81   2                      SUN_LED = SUN_LED_OFF;
  82   2                      return luc_data;
  83   2              }
  84   1              else return 0;
  85   1      }
  86          
  87          
  88          //============================================================================================
  89          //语法格式:  GreekVoice()
  90          //实现功能: 远程控制时成功提示音
  91          //参数:         无
  92          //返回:         无
  93          //创建时间:2008-12-29          修改时间:
  94          //创建人员:                    修改人员:
  95          //============================================================================================
  96          void GreekVoice()
  97          {
  98   1              Delay1Ms(300);
  99   1              SendDTMEDat(0x09);
 100   1              Delay1Ms(100);
 101   1      }
 102          //============================================================================================
 103          //语法格式:  SavePhontCode()
 104          //实现功能: 设置电话号码
 105          //参数:         无
 106          //返回:         无
 107          //创建时间:2008-11-30          修改时间:
 108          //创建人员:                    修改人员:
 109          //============================================================================================
 110          void SavePhontCode()
 111          {
 112   1              unsigned char data luc_i;
 113   1              unsigned char data luc_data;                                                                    //DTMF解码数据  
 114   1              unsigned char data luc_temp;
 115   1              unsigned char data luc_DataLen = 0;                                                             //DTMF解码数据长度      
 116   1              unsigned char data luc_KeyCnt = 0;                                                              //按键计数器
 117   1              unsigned char data luc_Buf[20]='F';
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 3   

 118   1              unsigned char data Del_TAB[1];
 119   1              bit luc_tempdata = 0;
 120   1              while(1)
 121   1              {
 122   2                      if(guc_Timer0 == 0) break;
 123   2                      luc_data = DTMF();
 124   2                      if(luc_data==0x0c)
 125   2                      {
 126   3                              SuccBuzzer();                                                                   //设置成功时发出的声音
 127   3                              while(1)
 128   3                              {
 129   4                                      if(guc_Timer0 == 0) break;
 130   4                                      luc_data = DTMF();
 131   4                                      if((luc_data!=0x0c)&&(luc_data!=0x00))
 132   4                                      {
 133   5                                              if((luc_data<=9)&&(luc_data>=1))        
 134   5                                              {
 135   6                                                      luc_KeyCnt ++;
 136   6                                                      luc_tempdata = 1;
 137   6                                                      luc_temp = luc_data;                                                    //读取是第几组电话
 138   6                                                      SuccBuzzer();                                                                   //设置成功时发出的声音
 139   6                                              }
 140   5                                              else FailBuzzer();                                                                      //设置失败时发出的声音
 141   5                                      }
 142   4                                      if(luc_KeyCnt>=2) 
 143   4                                      {
 144   5                                              luc_KeyCnt = 0;
 145   5                                              FailBuzzer();                                                                           //设置失败时发出的声音
 146   5                                      }
 147   4                                      if(luc_data==0x0c)
 148   4                                      {
 149   5                                              SuccBuzzer();                                                                           //设置成功时发出的声音
 150   5                                              while(1)
 151   5                                              {
 152   6                                                      luc_data = DTMF();
 153   6                                                      if(guc_Timer0 == 0) break;                                                      //如果按键长时间没有按,则退出函数
 154   6                                                      if((0<luc_data)&&(luc_data<=11))
 155   6                                                      {
 156   7                                                              if(luc_data==10)luc_data = 0;
 157   7                                                              luc_Buf[1+luc_DataLen++] = luc_data;    
 158   7                                                              SuccBuzzer();                                                                   //设置成功时发出的声音
 159   7                                                      }
 160   6                                                      if((luc_data==0x0b)&&(luc_tempdata == 0))                       //"*"键,再按"#"删除所有电话号码
 161   6                                                      {
 162   7                                                              SuccBuzzer();                                                                   //设置成功时发出的声音
 163   7                                                              while(1)
 164   7                                                              {

⌨️ 快捷键说明

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