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

📄 main.lst

📁 内容摘要: LHD6000主板主芯片程序 ISD1730时序说明: 参考:void Send_1Byte(uchar ucData_s)和uchar Receive_1Byte(void)的说明.
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   MAIN                                                                  05/18/2008 16:43:12 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.C LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          * 版权所有 (C)2005,深圳豪恩科技有限公司
   3          *
   4          * 文件名称:  main.C
   5          * 文件标识:
   6          * 内容摘要: LHD6000主板主芯片程序,2006-10-30开始
   7          * 其它说明:
   8          * 当前版本: 0.000
   9          * 作    者:  涂常亮(豪恩科技研发中心安全主机组)
  10          * 完成日期: 2005.03.28
  11          *
  12          * 修改纪录1:
  13          *    修改日期: .
  14          *    版 本 号: .
  15          *    修 改 人: .
  16          *    修改内容: .
  17          * 修改纪录2:
  18          *******************************************************************************/
  19          #include "reg54.h"
  20          #include <intrins.h>
  21          #include "EEPROM.H"
  22          #include "MACRO.H"
  23          #include "AdmcPtcl.H"
  24          #include "Head.H"
  25          #include <ABSACC.H>
  26          
  27          #define CUR_VER 0x10
  28          //数据类型定义
  29          typedef unsigned char uchar;
  30          typedef unsigned int  UInt;
  31          
  32          //uchar pdata g_aucpTst[256];
  33          //uchar xdata g_aucxTst[512];
  34          
  35          //管脚定义
  36          sbit pin_Listen         = P0^5;     //现场监听控制,允许监听时有效,低电平有效
  37          sbit pin_Spk            = P0^6;     //控制主机喇叭,使用喇叭放音时有效,低电平有效
  38          sbit pin_VoiceToPhone   = P0^7;     //拨号,现场监听和电话报警时有效,低电平有效
  39          
  40          #define RST_AUX     1   //ATmel 89s52 高电平复位
  41          sbit pin_RstAux         = P1^5;
  42          sbit pin_RstUsePwd      = P1^6;
  43          
  44          sbit pin_PickPhone      = P2^0;     //摘机 PCB上的ZJ
  45          sbit pin_DTMFRecvDV     = P2^1;     //电平有效,表示收到有效的DTMF信号,PCB上的9170INT
  46          sbit pin_TakeLine       = P2^2;     //抢线 PCB上的QX
  47          sbit pin_ISD1420Play    = P2^4;
  48          sbit pin_LedArm         = P2^3;
  49          sbit pin_ISD1420Rec     = P2^5;
  50          sbit pin_LedAlarm       = P2^6;     //高电平发送,低电平接收
  51          sbit pin_SelAux         = P2^7;     //高电平和辅助CPU通讯,低电平和键盘通讯
  52          ///选择与键盘或辅助cpu通讯
  53          sbit pin_Int0           = P3^2;
  54          //电话
  55          sbit pin_DTMFRecvOE     = P1^7;
C51 COMPILER V8.02   MAIN                                                                  05/18/2008 16:43:12 PAGE 2   

  56          sbit pin_LineWave       = P3^3;
  57          sbit pin_DTMFGenCE      = P3^4;
  58          sbit pin_RingRecv       = P3^5;
  59          sbit pin_DTMFGenCLK     = P3^6;
  60          sbit pin_DTMFGenDat     = P3^7;
  61          
  62          #define DTMF_RECVD      (!pin_DTMFRecvDV)
  63          
  64          //全局变量声明(使用g_开头)
  65          //字符型(有uc标志,加a表示是数组)
  66          
  67          uchar data g_aucKBRecvdBuff[KB_RECV_BUFF_LEN];     //可以少一个 !!
  68          uchar data g_aucKBSendBuff[KB_SEND_BUFF_LEN];      //键盘发送缓存,无校验字节长度为12
  69                          ///没有2级缓存吗
  70          //uchar idata g_aucKBSendingBuff[KB_SEND_BUFF_LEN];   //键盘正在发送到数据
  71          uchar data g_aucKBUsingBuff[KB_USING_BUFF_LEN];     //接收或者发送时使用的暂存区
  72          uchar data g_aucAuxRecvdBuff[AUX_RECV_BUFF_LEN];   //辅助CPU已接收缓存
  73          uchar data g_aucAuxRecvgBuff[AUX_RECV_BUFF_LEN];   //辅助CPU正在接收使用缓存
  74          uchar data g_aucAuxSendBuff[AUX_SEND_BUFF_LEN];    //辅助CPU数据发送缓存
  75          uchar data g_aucAuxSendgBuff[AUX_SEND_BUFF_LEN];   //辅助CPU发送寄存器// !! 可以和键盘共用
  76          //uchar idata //;                      //防区类型,使用压缩BCD码每个字节纪录两个防区类型
  77                                                              //按顺序:1~16有线,21~28无线,41~48键盘有线
  78          
  79          uchar idata g_aucArmTimeH[3];                       //定时布防小时
  80          uchar idata g_aucArmTimeM[3];                       //定时布防分钟
  81          uchar idata g_aucDisarmTimeH[3];                    //定时撤防小时
  82          uchar idata g_aucDisarmTimeM[3];                    //定时撤防分钟
  83          uchar idata g_aucRepeatKBMsg[2] = {0, 0};           //键盘数据发送次数
  84                      //g_aucRepeatKBMsg[1]表示g_aucKBSendBuff需要重复次数,0表示senging需要次数
  85          uchar data g_aucRepeatAuxMsg[2] = {0, 0};
  86          uchar idata g_aucDTMFBuff[5];
  87          
  88          uchar idata g_ucTimer24C04Ack;            //24C04写入等待
  89          uchar data g_ucTimerWaitKB = TIME_WAIT_KB_1_PKG;   //等待键盘发送的定时,令牌发送结束开始定时
  90                        ///等待键盘发送的定时
  91          uchar data g_ucKBMsgPointer;                       //接收/发送计数器,为1表示收到一个字节/已发送一个字符  
             -//可以用静态?
  92          uchar data g_ucKBCheckSum;                         //校验和
  93          
  94          uchar data g_ucAuxSndPnt;                          //辅助CPU数据发送/接收指针
  95          uchar data g_ucAuxRecvPnt;                         //辅助CPU数据接收指针
  96          uchar data g_ucAuxCheckSum_S;                      //辅助CPU数据通讯发送校验和
  97          uchar data g_ucAuxCheckSum_R;                      //辅助CPU数据通讯接收校验和
  98          
  99          uchar data g_ucTimerWaitAux = TIME_WAIT_AUX_1_PKG; //向辅助CPU发送一次的时间定时
 100          uchar data g_ucTimerSerPause = TIME_SERIES_PAUSE_KB;
 101          //uchar data g_ucTimerAuxPaus = TIME_WAIT_AUX_1_PKG; //向辅助CPU发送一次的时间定时
 102          //uchar data g_ucTimerKBPaus = TIME_SERIES_PAUSE_KB;
 103          
 104          uchar idata g_ucUserIDH;                            //用户ID号
 105          uchar idata g_ucUserIDL;
 106          
 107          uchar idata g_ucTmLed;  //LED闪烁计时
 108          uchar idata g_ucAuxTm;
 109          
 110          //报警状态定义
 111          uchar idata g_ucPreWrZnStatus = 0;
 112          uchar idata g_ucTimerSndAlm; //多个报警时,发送报警之间的间隔计时
 113          //uchar idata g_ucSndAlm; //记录已发送到键盘的报警,以位表示
 114          //uchar data g_ucAlmdZn[3]; //记录发生报警的防区,以位表示,无线16个,有线4个,防拆,紧急
 115                                    //胁持不记录,密码锁定不记录立即发送.
 116          uchar idata g_aucSndAlm[3]={0,0,0}; //记录已发送到键盘的报警,以位表示,单元0对应无线1~8,1对应无线9~16,2对应
C51 COMPILER V8.02   MAIN                                                                  05/18/2008 16:43:12 PAGE 3   

             -有线
 117          uchar idata g_ucAlmNxtSnd;
 118          uchar idata g_ucTypNxtSnd;
 119          
 120          //uchar data g_aucAlarm[3];
 121          uchar data g_ucAlmWrlsZn = 0;                       //无线防区1~8报警标志
 122          //#define g_ucAlmWrlsZn g_aucAlarm[0]
 123          uchar idata g_ucBypassWrlsZn;                       //无线防区1~8旁路标志,0表示被旁路
 124          uchar idata g_ucSemiAlarmWrlsZn = 0;                //无线防区1~8进入延时触发标志
 125          
 126          //#define g_ucAlarmWrlsZnH g_aucAlarm[1]
 127          uchar data g_ucAlarmWrlsZnH = 0;                    //无线防区9~16报警标志
 128          uchar idata g_ucBypassWrlsZnH;                      //无线防区9~16旁路标志,0表示被旁路
 129          uchar idata g_ucSemiAlmWrlsZnH = 0;                 //无线防区9~16进入延时触发标志 // !!!! .
 130          
 131          //#define g_ucAlarmWireZone g_aucAlarm[2]
 132          uchar data g_ucAlarmWireZone = 0;                   //有线防区报警标志 D7-D0对应防区8~1
 133          uchar data g_ucBypassWrZn;                          //有线防区旁路标志,0表示被旁路,
 134          uchar data g_ucSemiAlarmWrZn = 0;                   //有线防区进入延时触发标志
 135          
 136          uchar data g_ucAlarmOth = 0;                        //D5是主机防拆(防区号30),
 137                                                              //D6是遥控和键盘紧急按钮(17),
 138                                                              //D7是胁持密码报警(18)
 139                                                              //D0 位表示是否交流掉电
 140                                                              //D1 位表示是否直流欠压
 141                                                              //D2 位表示是否电话掉线
 142          uchar idata g_ucAlarmTimer = 0; //键盘报警需要.
 143          #define PHONE_LOSE_LINE (0 != (g_ucAlarmOth & (0x01 << 2)))
 144          uchar idata g_ucBypassOth;                          //0表示被旁路//可以合并到 g_ucBypassWrZn !! .
 145          uchar idata g_ucAlarmTypes = 0;                     //当前发生过的报警类型的记录
 146          uchar idata g_ucOutDelay;                           //布防延时设置,10秒为单位  //BCD码
 147          uchar idata g_ucCominDelay;                         //进入延时设置,10秒为单位  //BCD码
 148          //uchar idata g_ucCountSemiAlarms = 0;                //发生进入延时报警个数;
 149          bit g_FlagSemAlm;
 150          
 151          uchar data g_ucArmStatus;                          //当前撤布防状态
 152                                                              //1外出,2留守,3撤防,4外出延时,5进入延时
 153          uchar idata g_ucRingsAnsw;                          //自动接听电话所需的振铃次数,99 表示不接受电话控制
 154          uchar data g_ucRings;                              //已经振铃次数
 155          
 156          uchar idata g_ucUserPwdH;                           //用户密码
 157          uchar idata g_ucUserPwdL;
 158          uchar idata g_ucGuestPwdH[5];                       //操作密码
 159          uchar idata g_ucGuestPwdL[5];
 160          uchar data g_ucHistPnt;                            //历史纪录的指针,指向将来的下一记录(0~39)
 161          //uchar idata*/ g_ucKBSysInfID = 1;                     //发送系统信息时使用该变量指示发送对象
 162          //日期时间的变量定义
 163          //uchar idata g_ucYear;
 164          //uchar idata g_ucMonth;
 165          //uchar idata g_ucDate;
 166          uchar idata g_ucHour;
 167          uchar idata g_ucMinute;
 168          uchar idata g_ucSecond;
 169          
 170          //uchar data s_uc10Ms;                               //10毫秒数
 171          //uchar idata g_ucTmICStart;                          //起振计时
 172          uchar data g_ucAuxNullMsgTime = 200;               //2s定时发送,//开始协议5s //在定时器0中处理
 173          uchar data g_ucWatchAuxTimer = TIME_AUX_ERR;       //11s没有收到数据复位 //在定时器0里1s中处理,
 174          uchar data g_ucSeriesStop = TIME_NO_SER_INT;       //计时多久没有进串口中断,
 175          
 176          uchar data g_ucTrumpTime;                        //警号鸣叫时间计时,默认10分钟
 177          uchar data g_ucRelayType;                        //继电器输出类型,默认火警输出,类型为2
C51 COMPILER V8.02   MAIN                                                                  05/18/2008 16:43:12 PAGE 4   

 178          
 179          //电话相关
 180          uchar idata g_ucTelExist;
 181          uchar idata g_ucPhoneIndex = 0;                 //记录报警时拨打的电话是第几个号码。
 182          uchar idata g_ucTimerDialPause;             //拨两个号码之间的延时定时器
 183          uchar idata g_ucAlarmTypePlayed;            //已经向用户播报过的报警防区类型,在播通一个号码时清零
 184          uchar idata g_ucCallgTimers;                //记录拨打第几遍电话
 185          uchar idata g_ucDTMFPnt = 0xFF;
 186          
 187          uchar idata g_ucDialNextDigit;              //向HT9200发送两个数字之间的间隔定时
 188          
 189          uchar idata g_ucTimerPhoneKey;              //用户拨入进行远程控制时,允许的按键时间间隔
 190          uchar idata g_ucTimerVoiceBlank;            //电话报警播放语音之间的间隔计时
 191          uchar idata g_ucVoiceTimes;                 //语音播放遍数
 192          uchar idata g_ucLastBackRing;
 193          uchar idata g_ucPhnPwdTimes;                //拨入电话时密码输入错误次数
 194          uchar idata g_ucTelRndTm = 0; ///?????
 195          
 196          bit g_FlagRoundPause;  ///????
 197          
 198          //整型变量声明
 199          UInt idata g_uiVoiceTimer;                  //ISD1420 录/放音计时,使用倒计时方式
 200          UInt idata g_uiArmDelayTimer;               //布防延时和进入延时共用的定时器寄存器,1s减1
 201          UInt idata g_uiTrumpTimer;                  //警号计时,1s减1
 202          UInt idata g_uiPhoneTm;                     //拨号后计时//2006-8-23

⌨️ 快捷键说明

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