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

📄 ad985411.lst

📁 AD9854的C51控制程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   AD985411                                                              07/30/2007 18:46:28 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE AD985411
OBJECT MODULE PLACED IN .\AD985411.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\9854\AD9854\AD985411.c BROWSE DEBUG OBJECTEXTEND PRINT(.\AD985411.lst) O
                    -BJECT(.\AD985411.obj)

line level    source

   1          #ifndef uchar
   2            #define uchar unsigned char
   3            #endif
   4          
   5          //#define msp430 FQ439
   6          #define msp430 F16
   7          
   8          //#define parameter parrel
   9          #define parameter seri
  10          
  11          #define seri 1
  12          #define parrel 0
  13          
  14          #define FQ439  1
  15          #define F16    0
  16          
  17          #define uchar unsigned char
  18          #define uint unsigned int
  19          #define ulong unsigned long
  20          #define bool char
  21          #define true 1
  22          #define false 0
  23          
  24          #define SINGLETONE 0
  25          #define FSK 1
  26          #define RAMPEDFSK 2
  27          #define CHIRP 3
  28          #define BPSK 4
  29          
  30          #if( msp430 == 1 )
              #include  <msp430x43x.h>
              #endif
  33          #if( msp430 == 0 )
  34          #include  <msp430x16x.h>
*** WARNING C318 IN LINE 34 OF E:\9854\AD9854\AD985411.c: can't open file 'msp430x16x.h'
  35          #endif
  36          
  37          //////////////////////////////////////
  38          /*
  39          定义引脚
  40          */
  41          
  42          #define MRESET P2DIR |= BIT0
  43          #define RESETHIGH P2OUT |= BIT0
  44          #define RESETLOW P2OUT &= ~BIT0
  45          
  46          #define SHAPEKEYING P3DIR |= BIT6
  47          #define SHAPEKEYINGHIGH P3OUT |= BIT6
  48          #define SHAPEKEYINGLOW P3OUT &= ~BIT6
  49          
  50          #define FBH P3DIR |= BIT4
  51          #define FBHHIGH P3OUT |= BIT4
  52          #define FBHLOW P3OUT &= ~BIT4
  53          
C51 COMPILER V8.02   AD985411                                                              07/30/2007 18:46:28 PAGE 2   

  54          #define UPDATE P3DIR |= BIT0
  55          #define UPDATEHIGH P3OUT |= BIT0
  56          #define UPDATELOW P3OUT &= ~BIT0
  57          
  58          
  59          ////// P2.7 ~ P2.2 ADDR 
  60          ////// P2.1 -- > RD
  61          ////// P2.0 -- > MASTER_RESET
  62          ////// P1 --- > DATA
  63          /////  
  64          #if( parameter == 0 )  // parrel 
              
              #define DOUT P1DIR |= 0xff
              #define DIN  P1DIR &= ~0xff
              #define DATAOUT P1OUT
              #define DATAIN P1IN
              
              #define SADDR P2DIR |= 0xfc
              #define ADDR P2OUT
              
              #define RD P2DIR |= BIT1
              #define RDHIGH P2OUT |= BIT1
              #define RDLOW P2OUT &= ~BIT1
              
              #define WR P3DIR |= BIT2
              #define WRHIGH P3OUT |= BIT2
              #define WRLOW P3OUT &= ~BIT2
              
              #endif
  83          
  84          #if( parameter == 1 )   // mode = 1 serries mode
  85          
  86          //-------------IO PRESET--------------//
  87          // P2.0- UD_CLK;     P2.1(SIMO)- SDIO;
  88          // P2.2(SOMI)-SDO;   P2.3- UCLK;
  89          // P2.4- /CS;        P2.5- SHAPED KEY;
  90          // P2.6- IO RST;     P2.7- RST;
  91          //------------------------------------//
  92          
  93          #define HADEINIT P2OUT = 0xff;P2DIR = 0xff;P3OUT=0xff;P3DIR=0xFe
  94          
  95          #define IORESET P2DIR |= BIT4
  96          #define IORESETHIGH P2OUT |= BIT4
  97          #define IORESETLOW P2OUT &= ~BIT4
  98          
  99          #define SDO P2DIR |= BIT3
 100          #define SDOHIGH P2OUT |= BIT3
 101          #define SDOLOW P2OUT &= ~BIT3
 102          
 103          #define SDIO P2DIR |= BIT2
 104          #define SDIOHIGH P2OUT |= BIT2
 105          #define SDIOLOW P2OUT &= ~BIT2
 106          
 107          #define SCLK P3DIR |= BIT2
 108          #define SCLKHIGH P3OUT |= BIT2
 109          #define SCLKLOW P3OUT &= ~BIT2
 110          
 111          #define CSB P2DIR |= BIT1
 112          #define CSBHIGH P2OUT |= BIT1
 113          #define CSBLOW P2OUT &= ~BIT1
 114          
 115          #define SDIO_IN   P2DIR&=~BIT2  //数据线选择输入
C51 COMPILER V8.02   AD985411                                                              07/30/2007 18:46:28 PAGE 3   

 116          #define SDIO_OUT  P2DIR|=BIT2   //数据线选择输出
 117          #define SDIO_DATA P2IN&BIT2     //数据线上的输入数据
 118          
 119          #define ORAMP_H  P3OUT |= BIT7
 120          #define ORAMP_L  P3OUT &= ~BIT7
 121          
 122          #define IOSYNC_H  P2OUT|=BIT4   //i/o操作同步,为高时当前I/O操作立即结束
 123          #define IOSYNC_L  P2OUT&=~BIT4
 124          
 125          
 126          #endif
 127          /////////////////////////////////////
 128          /*
 129          公用函数  delay_9854 ( uint ) MRST() IOUpdata()
 130          */
 131          void delay_9854(uint time)
 132          {
 133   1          uint i;
 134   1          for(i = 0; i < time; i++)
 135   1          {
 136   2              _NOP();
*** WARNING C206 IN LINE 136 OF E:\9854\AD9854\AD985411.C: '_NOP': missing function-prototype
 137   2              _NOP();
 138   2              _NOP();
 139   2              _NOP();
 140   2          }
 141   1      }
 142          
 143          void MRST(void)
 144          {
 145   1         RESETHIGH;
*** ERROR C202 IN LINE 145 OF E:\9854\AD9854\AD985411.C: 'P2OUT': undefined identifier
 146   1         delay_9854(5000);
 147   1         RESETLOW;
*** ERROR C202 IN LINE 147 OF E:\9854\AD9854\AD985411.C: 'P2OUT': undefined identifier
 148   1      }
 149          
 150          void IOUpdate(void)
 151          {
 152   1          UPDATELOW;
*** ERROR C202 IN LINE 152 OF E:\9854\AD9854\AD985411.C: 'P3OUT': undefined identifier
 153   1          delay_9854(5);
 154   1          UPDATEHIGH;
*** ERROR C202 IN LINE 154 OF E:\9854\AD9854\AD985411.C: 'P3OUT': undefined identifier
 155   1          delay_9854(5);
 156   1          UPDATELOW;
*** ERROR C202 IN LINE 156 OF E:\9854\AD9854\AD985411.C: 'P3OUT': undefined identifier
 157   1      }
 158          
 159          #if( parameter == 0 )  // parrel
              uint systemclk;
              
              void ParallelSendByte(uchar addr, uchar data)
              {
                  DOUT;
                  WRHIGH;
                  ADDR = (addr & 0x3f);
                  WRLOW;
                  DATAOUT = data;
                  WRHIGH;
              }
              
C51 COMPILER V8.02   AD985411                                                              07/30/2007 18:46:28 PAGE 4   

              uchar ParallelReadByte(uchar addr)
              {
                  uchar result;
                  DIN;
                  RDHIGH;
                  ADDR = (addr & 0x3f);
                  RDLOW;
                  result = DATAIN;
                  RDHIGH;
                  return result;
              }
              
              void ParallelSetReg(uchar saddr, uchar *data, uchar n)
              {
                  uchar i;
                  for(i = 0; i < n; i++)
                  {
                      ParallelSendByte(saddr + i, *data);
                      data++;
                  }
                  IOUpdate();
              }
              
              void ParallelSetPhase(uchar saddr, float phase)
              {
                  uchar temp[2];
                  uchar ph;
                  
                  ph = (uint) (phase * 45.51111111);
                  ph = ph & 0x3fff;
                  temp[0] = ph / 256;
                  temp[1] = ph % 256;
                  ParallelSetReg(saddr, temp, 2);
              }
              
              void ParallelSetPhase1(float phase)
              {
                  ParallelSetPhase(0, phase);
              }
              
              void ParallelSetPhase2(float phase)
              {
                  ParallelSetPhase(2, phase);
              }
              
              void ParallelSetFreq(uchar saddr, double freq)
              {
                  double ftw1;
                  double t;
                  uchar i;
                  uchar temp[6];
                  ftw1 = (freq * 281474976.710656 / (double) systemclk);
                  t = (double)  (1099511627776);
                  for(i = 0; i < 6; i++)
                  {
                      temp[i] = (uchar) (ftw1 / t);
                      ftw1 = ftw1 - temp[i] * t;
                      t = t / 256.0;
                  }
                  ParallelSetReg(saddr, temp, 6);
              }
              
C51 COMPILER V8.02   AD985411                                                              07/30/2007 18:46:28 PAGE 5   

              void ParallelSetFTW1(double freq)
              {
                  ParallelSetFreq(4, freq);
              }
              
              void ParallelSetFTW2(double freq)
              {
                  ParallelSetFreq(0x0a, freq);
              }
              
              void ParallelSetDFW(double freq)
              {
                  ParallelSetFreq(0x10, freq);
              }
              
              void ParallelSetUDClk(ulong clk)
              {
                  uchar temp[4];
                  long t;
                  uchar i;
                  t = 16777216;
                  for (i = 0; i < 4; i++)
                  {
                      temp[i] = clk / t;
                      clk = clk % t;
                      t =  t >> 8;
                  }
                  ParallelSetReg(0x16, temp, 4);
              }
              
              void ParallelSetRRClk(ulong clk)
              {
                  uchar temp[3];
                  long t;
                  uchar i;
                  t = 65536;
                  for (i = 0; i < 3; i++)
                  {
                      temp[i] = clk / t;
                      clk = clk % t;
                      t = t >> 8;
                  }
                  ParallelSetReg(0x1a, temp, 3);
              }
              
              void ParallelSetOutShapeKey(uchar saddr, uint amplitude)
              {
                  uchar temp[2];
                  temp[0] = amplitude / 256;
                  temp[1] = amplitude % 256;
                  ParallelSetReg(saddr, temp, 2);
              }
              
              void ParallelSetOSKI(uint amplitude)
              {
                  ParallelSetOutShapeKey(0x21, amplitude);
              }
              
              void ParallelSetOSKQ(uint amplitude)
              {
                  ParallelSetOutShapeKey(0x23, amplitude);
              }
C51 COMPILER V8.02   AD985411                                                              07/30/2007 18:46:28 PAGE 6   

              
              void ParallelSetOSKRAMPRATE(uchar rate)
              {
                  ParallelSetReg(0x25, &rate,1);
              }

⌨️ 快捷键说明

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