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

📄 ts.lst

📁 该程序可作为386的接警程序使用
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V6.10  TS                                                                     02/13/2006 15:51:04 PAGE 1   


C51 COMPILER V6.10, COMPILATION OF MODULE TS
OBJECT MODULE PLACED IN E:\董\文\安\366\程序\t上\ts.OBJ
COMPILER INVOKED BY: E:\董\软件\lope\kc51\bin\C51.exe E:\董\文\安\366\程序\t上\ts.c SMALL OT(0,SIZE) SB OR DB OE

stmt level    source

   1          //----------------------本程序用于测试上位机 波特率=7500----------------------------------//
   2            #include "string.h"
   3            #include <reg52.h>
   4            #include <intrins.h>
   5            #include <math.h>
   6          //---------------------------------------定义部分----------------------------------------------
   7          //P1
   8          sbit MT8880_D0=       P1^4;  //OUT/IN  双向数据总线                                5脚
   9          sbit MT8880_D1=       P1^5;  //OUT/IN  双向数据总线                                6脚  
  10          sbit MT8880_D2=       P1^6;  //OUT/IN  双向数据总线                                7脚
  11          sbit MT8880_D3=       P1^7;  //OUT/IN  双向数据总线                                8脚 
  12          //P3
  13          sbit MT8880_RW=        P3^2;  //OUT      读写选择控制                                12脚  
  14          sbit MT8880_CP2=       P3^3;  //OUT     8880的系统时钟                               13脚 
  15          sbit MT8880_CS=       P3^4;  //OUT                                                 14脚 
  16          sbit MT8880_RS0=      P3^5;  //OUT     变低时,进入现场监听状态                    15脚
  17          sbit sda=             P3^6;  //OUT     I2C总线控制线  sda是24C02的5脚              16脚 
  18          sbit scl=             P3^7;  //OUT     I2C总线数据线  scl是24C02的6脚              17脚 
  19          
  20          //P0
  21          sbit KD9561_START=    P0^2;  //OUT     启动KD9561输出                               37脚
  22          //P2
  23          //sbit BJ=              P2^0;  //OUT     报警LED指示,并送给LM393                     21脚 
  24          sbit LINE_ALARM=      P2^1;  //IN      电话线路故障报警开关                         22脚 
  25          sbit ToneTest=        P2^2;  //IN      峰值为3.5V的铃流脉冲信号检测                 23脚
  26          sbit J_LineToPhone=   P2^3;  //OUT     报警时,驱动继电器切断本地电话和外线的联系,同时模拟摘机   24脚
  27          sbit ZJ_2=          P2^6;  //out          共同摘机                                   27脚 
  28          
  29          int JISHU; 
  30          unsigned char i;
  31          typedef unsigned char Number[10];      //定义一个10字节长的数组类型,用来放6组电话,一组密码,次数振铃,报
             -警延迟时间
  32          typedef unsigned char Number_P[5];
  33          struct ReadArray 
  34           {
  35            unsigned char Number24[22];
  36           }READARRAY;  
  37          sbit aa7=ACC^7;
  38          sbit aa6=ACC^6;
  39          sbit aa5=ACC^5;
  40          sbit aa4=ACC^4;
  41          sbit aa3=ACC^3;
  42          sbit aa2=ACC^2;
  43          sbit aa1=ACC^1;
  44          sbit aa0=ACC^0;
  45          
  46          //--------------------------------------函数部分-----------------------------------------------
  47          
  48          void DELAY_50ms()
  49          {
  50   1       EA=0;
  51   1       TMOD=0; //13位不重装定时器方式
  52   1       TL0=48;
  53   1       TH0=24;
  54   1       TCON=0;
C51 COMPILER V6.10  TS                                                                     02/13/2006 15:51:04 PAGE 2   

  55   1       TR0=1; //定时器0启动,定时器1不启动
  56   1       wait: if(TF0==0)
  57   1            {
  58   2             _nop_();
  59   2             goto wait;
  60   2            }   
  61   1       TCON=0;//停动定时器0
  62   1      }
  63          
  64          //------------------------------发送数据给上位机----------------------------------//
  65          
  66          void READ_MESSAGE(unsigned char serial1,unsigned char serial2,unsigned char serial3,unsigned char serial4,
             -unsigned char serial5,unsigned char serial6)    
  67          {  
  68   1        Number NUMBER;       //生成记录一次摘机过程的数组 
  69   1      
  70   1                  TCLK=0;   //T2CON中的位 表示发送器波特率由定时器1决定
  71   1                  RCLK=0;   //T2CON中的位 表示接收器波特率由定时器1决定 
  72   1                  SCON=0x88; //1000,1000,串口方式2,禁止接收,9位固定频率,TB8=1,即第9位为1,f/64  波特率=7500  
             -        
  73   1                  PCON=0;  //使SMOD=0
  74   1                  IE=0;    //禁止中断 
  75   1                 NUMBER[0]=serial1;
  76   1                 NUMBER[1]=serial2;
  77   1                 NUMBER[2]=serial3;
  78   1                 NUMBER[3]=serial4;
  79   1                 NUMBER[4]=serial5;
  80   1                 NUMBER[5]=serial6;
  81   1                 
  82   1                  SBUF=170; //发送握手信息 1010,1010
  83   1                  JISHU=400;
  84   1      check_serial_send:
  85   1                  if(TI!=1)
  86   1                  {
  87   2                   JISHU=JISHU-1;
  88   2                   if(JISHU!=0)
  89   2                   {
  90   3                    _nop_();_nop_();
  91   3                    goto check_serial_send;
  92   3                   }
  93   2                   else
  94   2                   {
  95   3                     _nop_(); _nop_(); 
  96   3                     return;       
  97   3                   }
  98   2                  }
  99   1                  TI=0;     //清发送完成兼中断标志
 100   1                           
 101   1                  REN=1;   //启动一次接收过程
 102   1                  JISHU=400;
 103   1      check_serial_receive:
 104   1                  if(RI!=1)   //如果SBUF中没有接收到数据,等待
 105   1                  {
 106   2                   JISHU=JISHU-1;
 107   2                   if(JISHU!=0)
 108   2                    {
 109   3                     _nop_();_nop_();                 
 110   3                     goto check_serial_receive;  
 111   3                    }
 112   2                   else
 113   2                    {
 114   3                     _nop_(); _nop_(); 
C51 COMPILER V6.10  TS                                                                     02/13/2006 15:51:04 PAGE 3   

 115   3                     return;       
 116   3                    }           
 117   2                  } 
 118   1                  RI=0;
 119   1                  REN=0;
 120   1                  
 121   1                  for(i=0;i<6;i++)  //发送6字节信息
 122   1                  {             
 123   2                   SBUF=NUMBER[i];
 124   2                   JISHU=400;
 125   2       check_serial_sendmessage:
 126   2                   if(TI!=1)
 127   2                   {
 128   3                    JISHU=JISHU-1;
 129   3                    if(JISHU!=0)
 130   3                     {
 131   4                      _nop_();_nop_();                 
 132   4                      goto check_serial_sendmessage;  
 133   4                     }
 134   3                    else
 135   3                     {
 136   4                      _nop_(); _nop_(); 
 137   4                      return;       
 138   4                     }           
 139   3                   }            
 140   2                   TI=0;     //清发送完成兼中断标志  
 141   2                  }  
 142   1                     
 143   1            //发送数据到上位机结束  
 144   1      }
 145          //-------------发送数据给上位机程序结束----------------//
 146          
 147          //------------------------------发送数据给上位机的候补测试程序----------------------------------//
 148          
 149          void READ_MESSAGE2(unsigned char serial1,unsigned char serial2,unsigned char serial3,unsigned char serial4
             -,unsigned char serial5,unsigned char serial6)    
 150          {  
 151   1        Number NUMBER;       //生成记录一次摘机过程的数组 
 152   1      
 153   1                  TCLK=0;   //T2CON中的位 表示发送器波特率由定时器1决定
 154   1                  RCLK=0;   //T2CON中的位 表示接收器波特率由定时器1决定 
 155   1                  SCON=0x88; //1000,1000,串口方式2,禁止接收,9位固定频率,TB8=1,即第9位为1,f/64  波特率=7500  
             -        
 156   1                  PCON=0;  //使SMOD=0
 157   1                  IE=0;    //禁止中断 
 158   1                 NUMBER[0]=serial1;
 159   1                 NUMBER[1]=serial2;
 160   1                 NUMBER[2]=serial3;
 161   1                 NUMBER[3]=serial4;

⌨️ 快捷键说明

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