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

📄 adc.lst

📁 宏晶单片机的AD演示程序
💻 LST
字号:
C51 COMPILER V8.02   ADC                                                                   07/05/2010 14:42:48 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN ADC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ADC.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*------------------------------------------------------------------*/
   2          /* --- STC MCU International Limited -------------------------------*/
   3          /* --- STC 1T Series MCU A/D Conversion Demo -----------------------*/
   4          /* --- Mobile: (86)13922805190 -------------------------------------*/
   5          /* --- Fax: 86-755-82944243 ----------------------------------------*/
   6          /* --- Tel: 86-755-82948412 ----------------------------------------*/
   7          /* --- Web: www.STCMCU.com -----------------------------------------*/
   8          /* If you want to use the program or the program referenced in the  */
   9          /* article, please specify in which data and procedures from STC    */
  10          /*------------------------------------------------------------------*/
  11          
  12          #include "reg51.h"
  13          #include "intrins.h"
  14          
  15          #define FOSC    18432000L
  16          #define BAUD    9600
  17          
  18          typedef unsigned char BYTE;
  19          typedef unsigned int WORD;
  20          
  21          /*Declare SFR associated with the ADC */
  22          sfr ADC_CONTR   =   0xBC;           //ADC control register
  23          sfr ADC_RES     =   0xBD;           //ADC hight 8-bit result register
  24          sfr ADC_LOW2    =   0xBE;           //ADC low 2-bit result register
  25          sfr P1ASF       =   0x9D;           //P1 secondary function control register
  26          
  27          /*Define ADC operation const for ADC_CONTR*/
  28          #define ADC_POWER   0x80            //ADC power control bit
  29          #define ADC_FLAG    0x10            //ADC complete flag
  30          #define ADC_START   0x08            //ADC start control bit
  31          #define ADC_SPEEDLL 0x00            //420 clocks
  32          #define ADC_SPEEDL  0x20            //280 clocks
  33          #define ADC_SPEEDH  0x40            //140 clocks
  34          #define ADC_SPEEDHH 0x60            //70 clocks
  35          
  36          void InitUart();
  37          void SendData(BYTE dat);
  38          void Delay(WORD n);
  39          void InitADC();
  40          
  41          BYTE ch = 0;                        //ADC channel NO.
  42          
  43          void main()
  44          {
  45   1          InitUart();                     //Init UART, use to show ADC result
  46   1          InitADC();                      //Init ADC sfr
  47   1          IE = 0xa0;                      //Enable ADC interrupt and Open master interrupt switch
  48   1                                          //Start A/D conversion
  49   1          while (1);
  50   1      }
  51          
  52          /*----------------------------
  53          ADC interrupt service routine
  54          ----------------------------*/
  55          void adc_isr() interrupt 5 using 1
C51 COMPILER V8.02   ADC                                                                   07/05/2010 14:42:48 PAGE 2   

  56          {
  57   1          ADC_CONTR &= !ADC_FLAG;         //Clear ADC interrupt flag
  58   1      
  59   1          SendData(ch);                   //Show Channel NO.
  60   1          SendData(ADC_RES);              //Get ADC high 8-bit result and Send to UART
  61   1      
  62   1      //if you want show 10-bit result, uncomment next line
  63   1      //    SendData(ADC_LOW2);             //Show ADC low 2-bit result
  64   1          
  65   1          if (++ch > 7) ch = 0;           //switch to next channel
  66   1          ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
  67   1      }
  68          
  69          /*----------------------------
  70          Initial ADC sfr
  71          ----------------------------*/
  72          void InitADC()
  73          {
  74   1          P1ASF = 0xff;                   //Set all P1 as analog input port
  75   1          ADC_RES = 0;                    //Clear previous result
  76   1          ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
  77   1          Delay(2);                       //ADC power-on delay and Start A/D conversion
  78   1      }
  79          
  80          /*----------------------------
  81          Initial UART
  82          ----------------------------*/
  83          void InitUart()
  84          {
  85   1          SCON = 0x5a;                    //8 bit data ,no parity bit
  86   1          TMOD = 0x20;                    //T1 as 8-bit auto reload
  87   1          TH1 = TL1 = -(FOSC/12/32/BAUD); //Set Uart baudrate
  88   1          TR1 = 1;                        //T1 start running
  89   1      }
  90          
  91          /*----------------------------
  92          Send one byte data to PC
  93          Input: dat (UART data)
  94          Output:-
  95          ----------------------------*/
  96          void SendData(BYTE dat)
  97          {
  98   1          while (!TI);                    //Wait for the previous data is sent
  99   1          TI = 0;                         //Clear TI flag
 100   1          SBUF = dat;                     //Send current data
 101   1      }
 102          
 103          /*----------------------------
 104          Software delay function
 105          ----------------------------*/
 106          void Delay(WORD n)
 107          {
 108   1          WORD x;
 109   1      
 110   1          while (n--)
 111   1          {
 112   2              x = 5000;
 113   2              while (x--);
 114   2          }
 115   1      }
 116          

C51 COMPILER V8.02   ADC                                                                   07/05/2010 14:42:48 PAGE 3   


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    135    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   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 + -