ad8.lst

来自「c8051f020单片机的例程」· LST 代码 · 共 115 行

LST
115
字号
C51 COMPILER V7.06   AD8                                                                   07/29/2008 09:43:49 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE AD8
OBJECT MODULE PLACED IN AD8.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD8.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //参考程序B.WADC1.c程序模/数转化通道AIN1.0的输入值
   2          #include <c8051f020.h>                  
   3          
   4          #define SYSCLK       22118400          // SYSCLK frequency in Hz
   5          #define SAMPLE_RATE  50000             // Sample frequency in Hz
   6          
   7          bit LCDBit;
   8          unsigned long x;
   9          void PORT_Init (void);
  10          void Timer3_Init (int counts);
  11          void ADC_Init(void);
  12          void ADC_ISR (void);
  13          
  14          void SYSCLK_Init()
  15          {   
  16   1          unsigned int i;
  17   1          OSCXCN=0X67;         //0X67=0110,0111
  18   1              for(i=0;i<256;i++);         //等待>1ms
  19   1              while(!(OSCXCN&0X80));      //等待XTLVLD变为1
  20   1              OSCICN=0X88;         //时钟失效监测器,选择外部时钟源作为系统时钟
  21   1      }
  22          
  23          void PORT_Init()
  24          {
  25   1          XBR0 = 0x04;
  26   1              XBR1=0X00;
  27   1              XBR2=0X40;
  28   1      
  29   1               
  30   1      }
  31          void UART0_Init()
  32          {
  33   1          SCON0=0x50;            //0101,0000
  34   1          TMOD=0X20;             //0010,0000
  35   1              TH1=0xF4;
  36   1              TL1=0xF4;
  37   1              ES0=1;               //开启串口中断0
  38   1              TF1=0;
  39   1              TR1=1;               //定时器启动
  40   1          PCON=0X00;
  41   1          TI0=1;
  42   1      
  43   1      }
  44          
  45          void main (void) {
  46   1              
  47   1         WDTCN = 0xde;
  48   1         WDTCN = 0xad;        //禁止看门狗定时器
  49   1      
  50   1          SYSCLK_Init();
  51   1              PORT_Init();
  52   1              UART0_Init();
  53   1        
  54   1          ADC_Init(); //AD转换初始化
  55   1          AMX1SL =0x00;//选择通道0
C51 COMPILER V7.06   AD8                                                                   07/29/2008 09:43:49 PAGE 2   

  56   1          for(x=0;x<=50000;x++); 
  57   1              
  58   1          while (1)
  59   1              {  
  60   2              for(x=0;x<=50000;x++); 
  61   2              
  62   2          ADC1CN  |=0X10      ;//启动AD转换
  63   2          while( ADC1CN==0X90);//判断AD转换是否完成
  64   2              SBUF0=0X01;
  65   2          while(TI0==0);
  66   2      
  67   2              TI0=0;
  68   2              SBUF0=ADC1;//向上位发送AD转换8位数据
  69   2          while(TI0==0);
  70   2              TI0=0;
  71   2      
  72   2              
  73   2      
  74   2      
  75   2              }
  76   1         
  77   1      }        
  78          
  79          void ADC_Init(void)
  80          {
  81   1       ADC1CN  |=0x80;        /*ADC1使能,软件使能模/数转换*/
  82   1       REF0CN |=0x07;         /*内部电压基准提供从VREF脚输出,ADC1电压基准取自VREF0*/
  83   1       ADC1CF = (SYSCLK/2500000) << 3;                /*转换周期为一个时间系统,增益为1*/
  84   1       ADC1CF&=0xf8; 
  85   1       ADC1CF|=0x01; 
  86   1      
  87   1      
  88   1       
  89   1      }


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


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

⌨️ 快捷键说明

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