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

📄 temperture.lst

📁 温度检测
💻 LST
字号:
C51 COMPILER V8.01   TEMPERTURE                                                            09/14/2008 01:37:58 PAGE 1   


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

line level    source

   1          #include<c8051f000.h>
   2          #define SYSCLK 16000000
   3          #define SAMPLERATE 50000
   4          sfr16   ADC0=0xBE;
   5          sfr16   TMR3RL=0x92;
   6          sfr16   TMR3=0x94;
   7          sbit    P00=P0^0;
   8          long    result;
   9          long    temprature;
  10          int             temp_int;
  11          int             temp_frac;
  12          void SYSCLK_Init(void);
  13          void ADC_Init();
  14          void PORT_Init();
  15          void Timer3_Init(unsigned int counts);
  16          void DAC_Init();
  17          //void UART_Init();
  18          void main(void)
  19          {       
  20   1          WDTCN=0xde;
  21   1              WDTCN=0xad;
  22   1              SYSCLK_Init();
  23   1              PORT_Init();
  24   1              Timer3_Init(50000);
  25   1      //      UART_Init();
  26   1              ADC_Init();
  27   1              ADCEN=1;                                                                        //ADC转换允许
  28   1              DAC_Init();
  29   1              EA=1;                                                                           //开总中断
  30   1              while(1)
  31   1              {
  32   2                      EA=0;                                                                   //关总中断
  33   2                      temprature=result;
  34   2                      EA=1;
  35   2                      DAC0L=temprature|0x00FF;
  36   2                      DAC0H=(temprature|0xFF00)>>8;
  37   2                      //计算温度(1%100温度)
  38   2                 temprature-=41758;
  39   2                 temprature=(temprature*100)/154;
  40   2                 temp_int=temprature/100;
  41   2                 temp_frac=temprature-temp_int*100;
  42   2              }
  43   1      
  44   1      }
  45          void SYSCLK_Init()
  46          {
  47   1              OSCICN=OSCICN|0x03;                                                     //启用内部晶振16MHZ
  48   1      }
  49          void PORT_Init() 
  50          {
  51   1              XBR1=0x00;
  52   1              XBR2=0x40;
  53   1              PRT0CF=0xFF;                                                            //PO推挽输出
  54   1      }
  55          void ADC_Init()
C51 COMPILER V8.01   TEMPERTURE                                                            09/14/2008 01:37:58 PAGE 2   

  56          {
  57   1              ADC0CN=0x05;                                                            //ADC0禁止定时器3触发左对齐
  58   1              REF0CN=0x07;                                                            //允许温度传感器工作
  59   1              AMX0SL|=0x0f;                                                           //选择温度传感器作为AD输入
  60   1              ADC0CF=0x81;                                                            //分频系数(为16〕与增益(为2)设置
  61   1              EIE2|=0x02;                                                                     //允许ADC中断
  62   1      }
  63          void DAC_Init()
  64          {
  65   1              DAC0CN=0x84;                                                            //DAC允许,左对齐方式
  66   1      }
  67          void Timer3_Init(unsigned int counts)
  68          {
  69   1              TMR3CN=0x02;                                                            //停止定时器3,清除TF3,系统时钟为时基
  70   1              TMR3RL=~counts+1;                                                       //赋初值 
  71   1              TMR3=TMR3RL;
  72   1              EIE2&=!0x01;                                                            //开T3中断
  73   1              TMR3CN|=0x04;                                                           //启动T3
  74   1      }
  75          void ADC0_ISR(void) interrupt 15
  76          {
  77   1              ADCINT=0;                                                                       //清转换结束标志
  78   1              result=ADC0;
  79   1      }


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