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

📄 t8.lst

📁 该程序可作为386的接警程序使用
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.10  T8                                                                     04/18/2006 13:23:38 PAGE 1   


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

stmt level    source

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

  55   1       TH0=24;
  56   1       TCON=0;
  57   1       TR0=1; //定时器0启动,定时器1不启动
  58   1       wait: if(TF0==0)
  59   1            {
  60   2             _nop_();
  61   2             goto wait;
  62   2            }   
  63   1       TCON=0;//停动定时器0
  64   1      }
  65          
  66          void MT8880_StatusRegister_READ()
  67          {
  68   1        
  69   1        MT8880_CP2=0; 
  70   1        MT8880_RW=1;      //读状态寄存器
  71   1        MT8880_RS0=1;
  72   1        MT8880_CS=0;
  73   1        MT8880_D0=1;         
  74   1        MT8880_D1=1;        
  75   1        MT8880_D2=1;  
  76   1        MT8880_D3=1;  
  77   1        MT8880_CP2=1; 
  78   1       
  79   1      }
  80          
  81          void MT8880_DataRegister_READ()
  82          {
  83   1        MT8880_CP2=0;      
  84   1        MT8880_RW=1;      //读接收数据寄存器
  85   1        MT8880_RS0=0;
  86   1        MT8880_CS=0;    //给时钟信号
  87   1        MT8880_D0=1;         
  88   1        MT8880_D1=1;        
  89   1        MT8880_D2=1;  
  90   1        MT8880_D3=1;
  91   1        MT8880_CP2=1;  //读状态寄存器值到D0-D3口
  92   1        
  93   1      }
  94          
  95          void MT8880_ControlRegister_Initialize()
  96          { 
  97   1        MT8880_CP2=0;
  98   1       
  99   1        MT8880_RS0=1;   //du 1  
 100   1        MT8880_RW=1;
 101   1        MT8880_CS=0; 
 102   1        MT8880_D0=1;        
 103   1        MT8880_D1=1;       
 104   1        MT8880_D2=1;  
 105   1        MT8880_D3=1; 
 106   1        MT8880_CP2=1;
 107   1        MT8880_CP2=0;
 108   1        MT8880_CS=1;
 109   1      
 110   1        MT8880_RS0=1;  //xie 1
 111   1        MT8880_RW=0;
 112   1        MT8880_CS=0;
 113   1        MT8880_D0=0;         
 114   1        MT8880_D1=0;        
 115   1        MT8880_D2=0;  
 116   1        MT8880_D3=0; 
C51 COMPILER V6.10  T8                                                                     04/18/2006 13:23:38 PAGE 3   

 117   1        MT8880_CP2=1; 
 118   1        MT8880_CP2=0;
 119   1        MT8880_CS=1; 
 120   1      
 121   1        MT8880_RS0=1;  //xie2
 122   1        MT8880_RW=0; 
 123   1        MT8880_CS=0;     
 124   1        MT8880_D0=0;       
 125   1        MT8880_D1=0;        
 126   1        MT8880_D2=0;  
 127   1        MT8880_D3=0;
 128   1        MT8880_CP2=1; 
 129   1        MT8880_CP2=0;
 130   1        MT8880_CS=1;
 131   1      
 132   1        MT8880_RS0=1;  //xie3
 133   1        MT8880_RW=0; 
 134   1        MT8880_CS=0;     
 135   1        MT8880_D0=0;       
 136   1        MT8880_D1=0;        
 137   1        MT8880_D2=0;  
 138   1        MT8880_D3=1;
 139   1        MT8880_CP2=1; 
 140   1        MT8880_CP2=0;
 141   1        MT8880_CS=1;
 142   1      
 143   1      
 144   1        MT8880_RS0=1;  //xie4
 145   1        MT8880_RW=0; 
 146   1        MT8880_CS=0;     
 147   1        MT8880_D0=0;       
 148   1        MT8880_D1=0;        
 149   1        MT8880_D2=0;  
 150   1        MT8880_D3=0;
 151   1        MT8880_CP2=1; 
 152   1        MT8880_CP2=0;
 153   1        MT8880_CS=1;
 154   1      
 155   1        MT8880_RS0=1;  //du 2
 156   1        MT8880_RW=1; 
 157   1        MT8880_CS=0; 
 158   1        MT8880_D0=1;         
 159   1        MT8880_D1=1;        
 160   1        MT8880_D2=1;  
 161   1        MT8880_D3=1; 
 162   1        MT8880_CP2=1;
 163   1        MT8880_CP2=0;
 164   1        MT8880_CS=1;
 165   1        
 166   1        MT8880_D0=1;  //总线复位       
 167   1        MT8880_D1=1;        
 168   1        MT8880_D2=1;  
 169   1        MT8880_D3=1;
 170   1         
 171   1      }
 172          
 173          
 174          void MT8880_ControlRegister_Write()
 175          {
 176   1        MT8880_CS=1;
 177   1      
 178   1        MT8880_RW=0;      //写控制寄存器
C51 COMPILER V6.10  T8                                                                     04/18/2006 13:23:38 PAGE 4   

 179   1        MT8880_RS0=1;
 180   1        MT8880_D0=1;  //使能tone输出       
 181   1        MT8880_D1=0;  //选用双音多频方式,不用CP方式      
 182   1        MT8880_D2=0;  //此脚在实际电路中未接,不管
 183   1        MT8880_D3=1;  //本次操作CRA,下一个写操作选择CRB 
 184   1        MT8880_CS=0;
 185   1        MT8880_CP2=1;//给时钟信号,写D0-D3口值到控制寄存器   
 186   1        MT8880_CP2=0;    
 187   1        MT8880_CS=1;
 188   1        
 189   1        MT8880_RW=0;   //写控制寄存器
 190   1        MT8880_RS0=1;
 191   1        MT8880_D0=0;      
 192   1        MT8880_D1=0;        
 193   1        MT8880_D2=0;  
 194   1        MT8880_D3=0; 
 195   1        MT8880_CS=0;  
 196   1        MT8880_CP2=1;  //给时钟信号,写D0-D3口值到控制寄存器   
 197   1        MT8880_CP2=0;    
 198   1        MT8880_CS=1;
 199   1        
 200   1        MT8880_D0=1;  //总线复位       

⌨️ 快捷键说明

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