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

📄 main.lst

📁 本人写的测试CS5530芯片代码,大部分功能和CS5532相同
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 1   


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

stmt level    source

   1          #include "STC89C51RC_RD_PLUS.H"
   2          #include "intrins.h"
   3          #include "absacc.h"
   4          #include "Serial.h"
   5          #include "CS5460A.h"
   6          
   7          sbit P0_0 = P0^0;
   8          sbit P0_1 = P0^1;
   9          sbit P0_2 = P0^2;
  10          sbit P0_3 = P0^3;
  11          sbit P0_4 = P0^4;
  12          sbit P0_5 = P0^5;
  13          sbit P0_6 = P0^6;
  14          sbit P0_7 = P0^7;
  15          
  16          sbit P1_0 = P1^0;
  17          sbit P1_1 = P1^1;
  18          sbit P1_2 = P1^2;
  19          sbit P1_3 = P1^3;
  20          sbit P1_4 = P1^4;
  21          sbit P1_5 = P1^5;
  22          sbit P1_6 = P1^6;
  23          sbit P1_7 = P1^7;
  24          
  25          
  26          sbit P2_0 = P2^0;
  27          sbit P2_1 = P2^1;
  28          sbit P2_2 = P2^2;
  29          sbit P2_3 = P2^3;
  30          sbit P2_4 = P2^4;
  31          sbit P2_5 = P2^5;
  32          sbit P2_6 = P2^6;
  33          sbit P2_7 = P2^7;
  34          
  35          
  36          sbit P3_0 = P3^0;
  37          sbit P3_1 = P3^1;
  38          sbit P3_2 = P3^2;
  39          sbit P3_3 = P3^3;
  40          sbit P3_4 = P3^4;
  41          sbit P3_5 = P3^5;
  42          sbit P3_6 = P3^6;
  43          sbit P3_7 = P3^7;
  44          
  45          
  46          sbit P4_0 = P4^0;
  47          sbit P4_1 = P4^1;
  48          sbit P4_2 = P4^2;
  49          sbit P4_3 = P4^3;
  50          
  51          #define uchar unsigned char
  52          
  53          // Original design board
  54          //sbit CS5532_CS=P1^2;
  55          //sbit CS5532_SDI=P3^5;
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 2   

  56          //sbit CS5532_SCLK=P3^4;
  57          //sbit CS5532_SDO=P3^2;
  58          sbit CS5532_CS=P1^2;
  59          sbit CS5532_SDI=P2^4;
  60          sbit CS5532_SCLK=P2^2;
  61          sbit CS5532_SDO=P2^0;
  62          
  63          //#define DWORD unsigned long
  64          
  65          xdata long m_TickCount = 0;
  66          long GetTickCount(){return m_TickCount;}
  67          
  68          void Sleep(long iMilliseconds)
  69          {
  70   1              long TickCount = GetTickCount();
  71   1              while((GetTickCount() - TickCount) < iMilliseconds)
  72   1              {
  73   2                      //WDT_CONTR = 0x3C; //复位看门狗
  74   2              }
  75   1      }
  76          
  77          
  78            //中断
  79          void time0() interrupt 1
  80          {
  81   1              EA = 0;
  82   1              TR0 = 0;
  83   1              TH0 = 0xF8;
  84   1              TL0 = 0xCC;
  85   1              //TH0 = 0xFC;
  86   1              //TL0 = 0x66;
  87   1              //TL0 = 0x41;
  88   1              //TH0 = 0xFE;
  89   1              m_TickCount++;
  90   1              TR0 = 1;
  91   1              EA = 1; 
  92   1      }
  93          
  94          // PCB Version
  95          //sbit CS5532_CS=P1^3;
  96          //sbit CS5532_SDI=P1^2;
  97          //sbit CS5532_SDO=P1^1;
  98          //sbit CS5532_SCLK=P1^0;
  99          
 100          
 101          // all  design board ?
 102          sbit CS5532_A0=P1^6;
 103          sbit CS5532_A1=P1^7;
 104          
 105          
 106          #define  RxdTxd4b_0  DBYTE[0x20]
 107          #define  RxdTxd4b_1  DBYTE[0x21]
 108          #define  RxdTxd4b_2  DBYTE[0x22]
 109          #define  RxdTxd4b_3  DBYTE[0x23]
 110          
 111          #define uint unsigned int
 112          #define delay(x) {uint dly = x;while(dly){dly--;}}
 113          uchar idata RxdTxd4b[6];
 114          
 115          void CS5532_Txd(uchar);
 116          void CS5532_Txd_init(uchar);
 117          void  read_reg(uchar address_pt);
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 3   

 118          void  read_data(uchar address_pt);
 119          void  read_data1(uchar address_pt);
 120          void  read_datax(uchar address_pt);
 121          void  CS5532_init(void);
 122          
 123          #define Refurbish(x) x = 1;x = 0;
 124          #define ControlOut P2_7
 125           
 126          void main(void)
 127          {
 128   1              uchar uComRecv[5];
 129   1              uchar uComi = 0;
 130   1         long dPrvConversionTime = 0;
 131   1         uchar i,k,address_pt;
 132   1         uchar flag=0;
 133   1         address_pt  = 32;     // RAM 数据区起始地址
 134   1              TMOD = 0x1; //定时器T0模式1
 135   1              TL0  = 0x0f;//定时初值
 136   1              TH0  = 0x00;
 137   1              TR0  = 1;   //开始运行
 138   1              ET0  = 1;   //允许定时器T0中断
 139   1                        InitCom(5);
 140   1                        EA = 1;
 141   1                        for(k=0;k<20;k++)  _nop_();
 142   1              delay(1000);
 143   1         CS5532_init();
 144   1       for(k=0;k<20;k++)  _nop_();
 145   1      //Reset
 146   1      // CS5532_Txd(0x03);
 147   1      // CS5532_Txd(0x20);
 148   1      // CS5532_Txd(0x00);
 149   1      // CS5532_Txd(0x00);
 150   1      // CS5532_Txd(0x00);
 151   1      
 152   1              CS5532_Txd(0x03);    // Soft Reset 
 153   1         CS5532_Txd(0x2A);
 154   1         CS5532_Txd(0x00);
 155   1         CS5532_Txd(0x04);
 156   1         CS5532_Txd(0x00);
 157   1              
 158   1              delay(1000);
 159   1          CS5532_init();
 160   1                for(k=0;k<20;k++)  _nop_();
 161   1      //************************************************
 162   1      //  系统软复位( CS5532_init() 包含该部分)
 163   1       
 164   1      // CS5532_Txd(0x05);
 165   1      // CS5532_Txd(0x02);
 166   1      // CS5532_Txd(0x00);
 167   1      // CS5532_Txd(0x02);
 168   1      // CS5532_Txd(0x00);
 169   1      
 170   1      /*  CS5532_Txd(0x05);
 171   1       CS5532_Txd(0x32);
 172   1       CS5532_Txd(0x40);
 173   1       CS5532_Txd(0x32);
 174   1       CS5532_Txd(0x40);*/
 175   1      //-----
 176   1      /*  CS5532_Txd(0x85);    // 偏移校准
 177   1        while(CS5532_SDO)
 178   1        _nop_();  _nop_(); _nop_(); _nop_();
 179   1      
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 4   

 180   1       while(1)
 181   1       {
 182   1                read_datax(address_pt);
 183   1                      P1 = 0x00; 
 184   1                      //RxdTxd4b[3] = 0x0D;
 185   1                for(k = 0; k < 4;k++)
 186   1                {
 187   1                        Send(RxdTxd4b[k]);
 188   1                }     
 189   1                delay(50000);
 190   1       }*/
 191   1       //-------
 192   1              CS5532_Txd(0x03);    // Soft Reset 
 193   1         CS5532_Txd(0x00);
 194   1         CS5532_Txd(0x00);
 195   1         CS5532_Txd(0x18);
 196   1         CS5532_Txd(0x00);
 197   1      
 198   1      
 199   1        CS5532_Txd(0x85);    // 偏移校准
 200   1        while(CS5532_SDO)
 201   1        _nop_();  _nop_(); _nop_(); _nop_();
 202   1      
 203   1      
 204   1        
 205   1        
 206   1      /*CS5532_Txd(0x02);
 207   1      CS5532_Txd(0x0F);
 208   1      CS5532_Txd(0x00);
 209   1      CS5532_Txd(0x00);
 210   1      CS5532_Txd(0x00);*/
 211   1      //Write_CS5460A(buf5460,5);
 212   1      
 213   1      
 214   1          CS5532_Txd(0xC0);//连续转换命令
 215   1        while(CS5532_SDO)
 216   1           _nop_();  _nop_(); _nop_(); _nop_();         
 217   1      
 218   1        while(1)
 219   1                      for(i=0;i<5;i++)
 220   1       {
 221   2              uchar uCheckSum = 0;
 222   2              //while((GetTickCount() - dPrvConversionTime) <= (1000/15 - 1));
 223   2              //dPrvConversionTime = GetTickCount();
 224   2         //CS5532_CS=1;
 225   2              while(CS5532_SDO)
 226   2         _nop_(); _nop_(); _nop_(); _nop_();
 227   2         _nop_(); _nop_(); _nop_(); _nop_(); 
 228   2         _nop_(); _nop_(); _nop_(); _nop_(); 
 229   2      //  address_pt = 48;
 230   2        //CS5532_Txd(0x80);
 231   2        //while(CS5532_SDO)
 232   2        _nop_();  _nop_(); _nop_(); _nop_();
 233   2      //  DBYTE[address_pt++]=0x80;
 234   2        read_data1(address_pt);
 235   2                      P1 = 0x00; 
 236   2      //      RxdTxd4b[3] = 0x0D;
 237   2              if(RxdTxd4b[0]&0x80)
 238   2              {
 239   3                      RxdTxd4b[0] &= 0x7F;
 240   3                      RxdTxd4b[3] |= 0x08;
 241   3              }
C51 COMPILER V7.00  MAIN                                                                   11/16/2007 09:39:20 PAGE 5   

 242   2              uCheckSum += RxdTxd4b[0];
 243   2              Send(RxdTxd4b[0]);
 244   2      
 245   2              if(RxdTxd4b[1]&0x80)
 246   2              {
 247   3                      RxdTxd4b[1] &= 0x7F;
 248   3                      RxdTxd4b[3] |= 0x10;
 249   3              }
 250   2              uCheckSum += RxdTxd4b[1];

⌨️ 快捷键说明

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