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

📄 p87lpc769_da.lst

📁 P87LPC769_DA.rar单片机模数转换
💻 LST
字号:
C51 COMPILER V7.09   P87LPC769_DA                                                          11/29/2007 15:39:45 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE P87LPC769_DA
OBJECT MODULE PLACED IN P87LPC769_DA.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE P87LPC769_DA.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //Philips P87LPC769 D/A Example Program
   2          
   3          /*-----------------------------------------------------------------------------
   4          The following program generates sine and sawtooth waves on the DAC outputs
   5          of the Philips LPC Devices.  This code was compiled and tested using the
   6          Keil Software PK51 Professional Developer's Kit.
   7          -----------------------------------------------------------------------------*/
   8          #include <REG769.H>
   9          
  10          /*-----------------------------------------------
  11           Sine Wave Table 
  12          -----------------------------------------------*/
  13          unsigned char xdata sintab [] = {
  14          0x00, 0x01, 0x03, 0x04, 0x06, 0x07, 0x09, 0x0A, 
  15          0x0C, 0x0E, 0x0F, 0x11, 0x12, 0x14, 0x15, 0x17, 
  16          0x18, 0x1A, 0x1C, 0x1D, 0x1F, 0x20, 0x22, 0x23, 
  17          0x25, 0x26, 0x28, 0x29, 0x2B, 0x2C, 0x2E, 0x2F, 
  18          0x30, 0x32, 0x33, 0x35, 0x36, 0x38, 0x39, 0x3A, 
  19          0x3C, 0x3D, 0x3F, 0x40, 0x41, 0x43, 0x44, 0x45, 
  20          0x47, 0x48, 0x49, 0x4A, 0x4C, 0x4D, 0x4E, 0x4F, 
  21          0x51, 0x52, 0x53, 0x54, 0x55, 0x57, 0x58, 0x59, 
  22          0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 
  23          0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 
  24          0x6A, 0x6B, 0x6C, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 
  25          0x70, 0x71, 0x72, 0x73, 0x73, 0x74, 0x75, 0x75, 
  26          0x76, 0x76, 0x77, 0x77, 0x78, 0x79, 0x79, 0x7A, 
  27          0x7A, 0x7A, 0x7B, 0x7B, 0x7C, 0x7C, 0x7C, 0x7D, 
  28          0x7D, 0x7D, 0x7E, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 
  29          0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F };
  30          
  31          static unsigned char DA0_next_out;
  32          static unsigned char DA1_next_out;
  33          static unsigned int i;
  34          
  35          void timer0_isr (void) interrupt 1
  36          {
  37   1      /*-----------------------------------------------
  38   1      Output D/A Value 
  39   1      -----------------------------------------------*/
  40   1      DAC0 = DA0_next_out;       /* previous Sine Wave value */
  41   1      DAC1 = DA1_next_out;       /* previous Sawtooth value  */
  42   1      
  43   1      /*-----------------------------------------------
  44   1      Calculate next D/A Value
  45   1      -----------------------------------------------*/
  46   1      
  47   1      if (i++ >= 511) i = 0;
  48   1      
  49   1      if (i >= 384)
  50   1        DA0_next_out = 127 - sintab[127 - (i % 128)];  /* 180 - 270 quadrant   */
  51   1      else if (i >= 256)
  52   1        DA0_next_out = 127 - sintab[i % 128];          /* 90 - 180 quadrant    */
  53   1      else if (i >= 128)
  54   1        DA0_next_out = 128 + sintab[127 - (i % 128)];  /* 0 - 90 quadrant      */
  55   1      else
C51 COMPILER V7.09   P87LPC769_DA                                                          11/29/2007 15:39:45 PAGE 2   

  56   1        DA0_next_out = 128 + sintab[i];                /* 270 - 0 quadrant     */
  57   1      
  58   1      DA1_next_out = i % 256;                          /* For Sawtooth pattern */
  59   1      }
  60          
  61          void main (void)
  62          {
  63   1      /*-----------------------------------------------
  64   1      Disable the A/D Converter (this is required for
  65   1      DAC0)
  66   1      -----------------------------------------------*/
  67   1      ADCI = 0;  /* Clear A/D conversion complete flag */
  68   1      ADCS = 0;  /* Clear A/D conversion start flag */
  69   1      ENADC = 0; /* Disable the A/D Converter */
  70   1      
  71   1      /*-----------------------------------------------
  72   1      Set P1.6 and P1.7 to Input Only (Hi Z).
  73   1      -----------------------------------------------*/
  74   1      P1M2 &= ~0xC0;
  75   1      P1M1 |=  0xC0;
  76   1      
  77   1      /*-----------------------------------------------
  78   1      Enable the D/A Converter
  79   1      -----------------------------------------------*/
  80   1      ENDAC0 = 1;
  81   1      ENDAC1 = 1;
  82   1      
  83   1      /*-----------------------------------------------
  84   1       Initialize Timer 0 Interrupt 
  85   1      -----------------------------------------------*/
  86   1      TMOD  = 0x02;               /* TMOD: Timer 0, mode 2, 8-bit reload        */
  87   1      TCON  = 0x10;               /* TCON:                                      */
  88   1      TH0   = 240;                /* TH0:  Reload value                         */
  89   1      TL0   = 251;                /* TL0:  Reload value                         */
  90   1      ET0   = 1;                  /* ET0:  Enable timer 0                       */
  91   1      TR0   = 1;                  /* TR0:  Timer 0 run                          */
  92   1      EA    = 1;                  /* EA:   Enable interrupts                    */
  93   1      
  94   1      while (1) {
  95   2        WDRST = 0x1E;                         /* Reset Watchdog Timer                       */
  96   2        WDRST = 0xE1;                     /* Reset Watchdog Timer                       */                                                                                                                                       
  97   2        }
  98   1      }
  99          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    220    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    128    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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