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

📄 初始化.lst

📁 温度采集显示与PID控制
💻 LST
字号:
C51 COMPILER V7.01  __始籣                                                                 05/09/2003 11:49:40 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE __始籣
OBJECT MODULE PLACED IN .\初始化.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\初始化.c LARGE DEBUG OBJECTEXTEND

stmt level    source

   1          #include"w77e58.h"
   2          #include"intrins.h"
   3          
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          
   7          #define pl 0x02
   8          #define gl 0x04
   9          #define kg 0x06
  10          #define sd 0x08
  11          #define zb 0x0a
  12          #define stch 0x0c
  13          #define zy 0x0e
  14          #define ac 0x10
  15          #define bc 0x12
  16          #define xdart 0x0000
  17          #define ddb 0xffff
  18          #define gs 0x14//干涉
  19          #define px 0x16//频率修正
  20          #define ko 0x18//扩大
  21          
  22          sbit l1=P1^4;//发射频率锁定
  23          sbit l2=P1^3;//接收锁定
  24          sbit l3=P1^2;//增益stc锁定
  25          sbit fstd=P1^5;//发射探头检测
  26          sbit plsx=P1^6; //锁相环检测
  27          //************************************//
  28          //初始化函数
  29          //*************************************//
  30          void cusiha();
  31          void plsucu();
  32          void tongxin();
  33          void datey(uint p);
  34          
  35           extern void tongxin_txdr();
  36          
  37          extern int Read_Temperature(void);
  38          
  39          extern bit i2c_write(uchar address,uint fb);
  40          
  41          extern uint i2c_read(uchar address);
  42          //extern bit i2c_write(uchar address,char fb);
  43          extern int data wd;//温度缓存
  44          extern uchar data sanwdbz;//上传有无温度传感器0=无,0x01=有    
  45          extern uchar data e2prom;//24c02 0=无,0x01=有   
  46          extern uchar data fasepl;//发射频率缓存
  47          extern uchar data fasegl;//发射功率缓存
  48          extern uchar data fasekg;//发射开关00-01
  49          extern uchar data caijisendu;//采集深度缓存
  50          extern uchar data zaibao;//消除杂波
  51          extern uchar data stc;//stc等级1-8级
  52          extern uchar data zenyi;//增益1-9级
  53          extern uchar data zenyia;
  54          extern uchar data accd;
  55          extern uchar data bccd;
C51 COMPILER V7.01  __始籣                                                                 05/09/2003 11:49:40 PAGE 2   

  56          extern uchar data fstde;//发射探头 0=无,0x01=有
  57          extern uchar data ram;//w24257  0=无,0x01=有   
  58          extern uchar data plsxe;// 锁相环    0=无,0x01=有   
  59          extern bit wdcgaq;//温度传感器正确标志0=正?
  60          //extern bit i2c_write(uchar address,uint fb);
  61          //extern void tongxin_txd();
  62          extern uchar data kod;
  63          extern uchar data ganse;
  64          extern int data plxz;
  65          //uint data ram_error;
  66          extern void clp_dog();
  67          extern void tongxin_txd(bit ewu);
  68          void cusiha()//第一次读取各参数初始化
  69           {
  70   1        unsigned char xdata * dda;
  71   1        unsigned char dgh;
  72   1        //uint df;
  73   1      uchar i;
  74   1        
  75   1         l1=0;
  76   1         l2=0;
  77   1         l3=0;
  78   1         datey(10);
  79   1         P2=200;
  80   1         l1=1;datey(10);
  81   1         l1=0;
  82   1         P2=143;
  83   1         l2=1;datey(10);l2=0;
  84   1         P2=128;
  85   1         l3=1;datey(10);l3=0;
  86   1         wd=Read_Temperature();
  87   1         if(wdcgaq)
  88   1             sanwdbz=0x00;
  89   1           else sanwdbz=0x01;
  90   1           clp_dog();
  91   1           if(i2c_read(0x00)==0x3030)
  92   1               {
  93   2              
  94   2                e2prom=0x01;//24c02 Ok
  95   2                fasepl=i2c_read(pl);//,发射频率
  96   2                fasegl=i2c_read(gl);//功率
  97   2                clp_dog();
  98   2                fasekg=i2c_read(kg);//开关
  99   2                caijisendu=i2c_read(sd);//深度 
 100   2                zaibao=i2c_read(zb);//杂波
 101   2                clp_dog();
 102   2                stc=i2c_read(stch);//stc
 103   2                zenyi=i2c_read(zy);//增益 
 104   2                accd=i2c_read(ac);//扫描频率50k
 105   2                clp_dog();
 106   2                bccd=i2c_read(bc);//200k
 107   2                kod=i2c_read(ko);
 108   2                ganse=i2c_read(gs);
 109   2                plxz=i2c_read(px);
 110   2                         }
 111   1           else 
 112   1                {
 113   2                
 114   2       
 115   2            for(i=0;i<=4;i++)
 116   2              {
 117   3            while(i2c_write(0x00,0x3030))
C51 COMPILER V7.01  __始籣                                                                 05/09/2003 11:49:40 PAGE 3   

 118   3              {
 119   4              tongxin_txd(0);
 120   4                break;
 121   4              }
 122   3              }
 123   2                 e2prom=0x00;
 124   2                 fasepl=0x00;//,发射频率
 125   2                 fasegl=0x00;//功率
 126   2                 fasekg=0x00;//开关
 127   2                 caijisendu=0x00;//深度 
 128   2                 zaibao=0x00;//杂波
 129   2                 stc=0x00;//stc
 130   2                 zenyi=0x00;//增益 
 131   2                 accd=0x00;//扫描频率50k
 132   2                 bccd=0x00;//200k
 133   2                 kod=0x00;
 134   2                 ganse=0x00;
 135   2                 plxz=0x00;
 136   2                 }
 137   1           if(fstd)//发射探头检测
 138   1               fstde=0x00;
 139   1           else fstde=0x01;
 140   1          if(plsx)//锁相环检测
 141   1           plsxe=0x01;
 142   1          else plsxe=0x00;
 143   1          
 144   1           for(dda=xdart;dda<ddb;dda++)//内存w24257检测
 145   1              {
 146   2                *dda=0x80;//先写入0x80
 147   2                clp_dog();
 148   2               }
 149   1               clp_dog(); 
 150   1           for(dda=xdart;dda<ddb;dda++)
 151   1                     {
 152   2                     clp_dog();
 153   2                      dgh=*dda;
 154   2                      if(dgh!=0x80)
 155   2                         {
 156   3                      //    ram_error=df;
 157   3                        ram=0x00;
 158   3                          break;
 159   3                          }
 160   2                   ram=0x01;
 161   2                    }
 162   1      tongxin_txdr();
 163   1        }
 164          
 165           
 166          void tongxin()//通信协议初始化
 167           {
 168   1          
 169   1           T2CON=0x00;
 170   1           TMOD=0x22;
 171   1           SCON=0x40;
 172   1           PCON=0x80;
 173   1           TH1=0xfb;
 174   1           TL1=0xfb;
 175   1           TH0=0xae;
 176   1           TL0=0xae;
 177   1           CKCON=0xd2;
 178   1           PMR=0x60;
 179   1           PT0=1;
C51 COMPILER V7.01  __始籣                                                                 05/09/2003 11:49:40 PAGE 4   

 180   1           EA=1;    
 181   1           TR1=1;
 182   1            
 183   1      }  
 184          
 185          void datey(uint p)
 186          {
 187   1         uint i;
 188   1      for(i=0;i<=p;i++)
 189   1          _nop_();
 190   1      }
 191          
 192          void plsucu()//频率和增益输出,stc
 193           {
 194   1         
 195   1          int jsple;//接收频率缓存

⌨️ 快捷键说明

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