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

📄 ad.lst

📁 c8051f020单片机的例程
💻 LST
字号:
C51 COMPILER V7.06   AD                                                                    07/29/2008 09:41:50 PAGE 1   


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

stmt level    source

   1          //参考程序模/数转化通道AIN0.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          
   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; //urat0 配置到p0.0 p0.1
  26   1              XBR1=0X00;
  27   1              XBR2=0X40;
  28   1      
  29   1               
  30   1      }
  31          void UART0_Init()
  32          {
  33   1          SCON0=0x50;             //串口方式1
  34   1          TMOD=0X20;             //选用定时器1作为波特率发生器
  35   1              TH1=0xF4;               //波特率为4800
  36   1              TL1=0xF4;
  37   1              TF1=0;
  38   1              TR1=1;               //定时器启动
  39   1          PCON=0X00;           //波特率不乘2
  40   1          TI0=1;
  41   1      
  42   1      }
  43          
  44          void main (void) {
  45   1              
  46   1         WDTCN = 0xde;
  47   1         WDTCN = 0xad;        //禁止看门狗定时器
  48   1      
  49   1          SYSCLK_Init();
  50   1      
  51   1              PORT_Init();
  52   1              UART0_Init();
  53   1        
  54   1          ADC_Init();  //AD转换初始化
  55   1          AMX0SL =0x00;//选择通道0
C51 COMPILER V7.06   AD                                                                    07/29/2008 09:41:50 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              AD0BUSY=1;//启动AD转换
  63   2          while(AD0BUSY==1);//判断AD转换是否完成
  64   2              SBUF0=0X01;
  65   2          while(TI0==0);
  66   2      
  67   2              TI0=0;
  68   2              SBUF0=ADC0H;//向上位机发送AD转换高4位数据
  69   2          while(TI0==0);
  70   2      
  71   2              TI0=0;
  72   2              SBUF0=ADC0L;//向上位发送AD转换低8位数据
  73   2          while(TI0==0);
  74   2      
  75   2              TI0=0;
  76   2              
  77   2      
  78   2      
  79   2              }
  80   1         
  81   1      }        
  82          
  83          void ADC_Init(void)
  84          {
  85   1       ADC0CN  |=0x80;        /*ADC0使能,软件使使能模/数转换*/
  86   1       REF0CN |=0x07;         /*内部电压基准提供从VREF脚输出,ADC0电压基准取自VREF0*/
  87   1       ADC0CF = (SYSCLK/2500000) << 3;                //转换周期为一个时间系统,
  88   1       ADC0CF&=0xf8; //增益为1,数据左对齐
  89   1       AMX0CF |=0x00;         /*单端输入*/
  90   1       
  91   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    230    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   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 + -