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

📄 adctemp.lst

📁 这是一个C8051F020单片机的演示程序
💻 LST
字号:
C51 COMPILER V7.06   ADCTEMP                                                               05/31/2008 12:42:59 PAGE 1   


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

stmt level    source

   1          //参考程序B.WADC0.c程序模/数转化通道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          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;//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              PORT_Init();
  51   1              UART0_Init();//AD转换初始化
  52   1        
  53   1          ADC_Init(); 
  54   1          AMX0SL =0x0f;//选择温度通道
  55   1          for(x=0;x<=50000;x++); 
C51 COMPILER V7.06   ADCTEMP                                                               05/31/2008 12:42:59 PAGE 2   

  56   1              
  57   1          while (1)
  58   1              {  
  59   2              for(x=0;x<=50000;x++); 
  60   2              
  61   2              AD0BUSY=1;//启动AD转换
  62   2          while(AD0BUSY==1);//判断AD转换是否完成
  63   2              SBUF0=0X01;
  64   2          while(TI0==0);
  65   2      
  66   2              TI0=0;
  67   2              SBUF0=ADC0H;//向上位机发送AD转换高4位数据
  68   2          while(TI0==0);
  69   2      
  70   2              TI0=0;
  71   2              SBUF0=ADC0L;//向上位发送AD转换低8位数据
  72   2          while(TI0==0);
  73   2      
  74   2              TI0=0;
  75   2              
  76   2      
  77   2      
  78   2              }
  79   1         
  80   1      }        
  81          
  82          void ADC_Init(void)
  83          {
  84   1       ADC0CN  |=0x80;        /*ADC0使能,软件使能模/数转换*/
  85   1       REF0CN |=0x07;         /*内部电压基准提供从VREF脚输出,ADC0电压基准取自VREF0*/
  86   1       ADC0CF = (SYSCLK/2500000) << 3;                /*转换周期为一个时间系统,增益为1*/
  87   1       ADC0CF&=0xf8; 
  88   1       AMX0CF |=0x00;         /*单端输入*/
  89   1       
  90   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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -