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

📄 main.lst

📁 温湿度变送器程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  02/20/2009 14:03:12 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c ROM(SMALL) OPTIMIZE(0,SPEED) BROWSE ORDER DEBUG OBJECTEXTEND SRC(.\m
                    -ain.SRC)

line level    source

   1          
   2          #include "cdltwk.h"
   3          
   4          
   5          
   6           
   7          
   8           
   9           bit read_sht_flag;             //读SHT10标志
  10           bit time_1s_flag;
  11                      //=1, 温湿度传感器损坏标志
  12           
  13           
  14           
  15          
  16          
  17          
  18          
  19           void sht10_samp();
  20           void rdsht10_state();
  21          
  22          uchar Counter;
  23          uchar temp_h_h;  //温度pwm转换高电平高位字节
  24          uchar temp_h_l;  //温度pwm转换高电平的低位字节
  25          uchar temp_l_h;  //温度pwm转换低电平的高位字节
  26          uchar temp_l_l;  //温度pwm转换低电平的高低字节
  27          uint temp_pwm_H; //温度高电平字
  28          uint temp_pwm_L; //温度低电平字
  29          ulong temp_m;
  30          ulong rh_m;
  31          uchar rh_h_h;    //湿度pwm转换高电平高位字节
  32          uchar rh_h_l;    //湿度pwm转换高电平低位字节
  33          uchar rh_l_h;    //湿度pwm转换低电平高位字节
  34          uchar rh_l_l;    //湿度pwm转换低电平低位字节
  35          uint  rh_pwm_H;  //湿度高电平字
  36          uint  rh_pwm_L;  //湿度低电平字
  37          
  38          uchar start_flag,uart_rcv_flag;
  39          
  40          void pwm_Init();
  41          void pwm_out();
  42          void PCA_Initiate();
  43          void pca_temr();
  44          void mach_t();
  45          void mach_rh();
  46          void pwm_rh_out();
  47          void UART_out_temp(void);
  48          void UART_out_rh(void);
  49          void UART_out();
  50          //-----------------------------------------------------------------------------
  51          
  52          /*void UART_INI(void)
  53          {
  54           TMOD=0X21; //则T0设为16位定时器
C51 COMPILER V7.50   MAIN                                                                  02/20/2009 14:03:12 PAGE 2   

  55           ET0=1;   //开t0中断
  56           //TR0=1; //开定时器0
  57           P3M1=0x30; //设P3.4,P3.5推挽输出
  58          
  59           TH0 = 0xDC;
  60           TL0 = 0xD8;
  61           temp_h_h = 0xDC;
  62           temp_h_l = 0xD8;
  63           temp_l_h = 0xDC;
  64           temp_l_l = 0xD8;
  65          
  66           #pragma asm
  67             CLR P3.4
  68             CLR P3.5
  69           #pragma endasm
  70          
  71          
  72            SCON   = 0x50;
  73            TMOD   = 0x21;
  74            TH1    = 0xFE;
  75            TL1    = 0xFE;
  76            PCON|=0x80;
  77            TR1    = 1;
  78            //PS = 1;
  79            //ES =1 ;
  80            TR0=1;
  81            EA =1;   //开t1,t0中断
  82          }*/
  83          
  84          
  85           main()
  86          {
  87   1      // uint k;
  88   1       //uchar temp[4];
  89   1       pwm_Init();
  90   1       //UART_INI();
  91   1       
  92   1       PCA_Initiate();
  93   1       //rdsht10_state();
  94   1       while(1)
  95   1       {  //uart_send_byte(0X31);
  96   2      
  97   2          sht10_samp();
  98   2          //mach_t();
  99   2          //mach_rh();
 100   2              //UART_out();
 101   2      
 102   2      //for(k=0;k<40000;k++);
 103   2      //uart_send_byte(out_temp/256);
 104   2      //uart_send_byte(out_temp);
 105   2       //for(k=0;k<40000;k++);
 106   2      //      temp[0]=out_temp/1000;
 107   2       //   temp[1]=out_temp/100%10;
 108   2       //   temp[2]=out_temp/10%10;
 109   2       //   temp[3]=out_temp%10;
 110   2      //      uart_send1(temp,4);
 111   2       //for(k=0;k<40000;k++);
 112   2      
 113   2       }
 114   1      }
 115          
 116          
C51 COMPILER V7.50   MAIN                                                                  02/20/2009 14:03:12 PAGE 3   

 117          void mach_t(void)
 118          /******************************************************************************
 119           功能  : 计算温度转换成对应的脉宽
 120           入口  : out_temp
 121           出口  : temp_pwm_H,temp_pwm_L
 122           ******************************************************************************/
 123          {
 124   1       //temp_m=(out_temp+200)*32/5*2+2880;     //计算温度电流ma数有2位小数  电阻是200
 125   1       //temp_m=(out_temp+200)*16/5*3+2160;   //计算电流脉宽100赫兹记数值    电阻是200
 126   1       temp_m=(out_temp+179)*24/5+1080;       //电阻是100     temp_m=(out_temp+200)*24/5+1080;
 127   1       temp_pwm_H=65536-temp_m;        //高电平定时器记数值
 128   1       //temp_pwm_L=65536-(18000-temp_m);//低电平定时器记数值
 129   1       temp_pwm_L=65536-(13500-temp_m);//低电平定时器记数值    
 130   1      #pragma asm 
 131   1          MOV R0,#temp_pwm_H
 132   1          MOV A,@R0
 133   1          MOV temp_h_h,A
 134   1          INC R0
 135   1          MOV A,@R0
 136   1          MOV temp_h_l,A
 137   1          MOV R0,#temp_pwm_L
 138   1          MOV A,@R0
 139   1          MOV temp_l_h,A
 140   1          INC R0
 141   1          MOV A,@R0
 142   1          MOV temp_l_l,A
 143   1          
 144   1      #pragma endasm 
 145   1      }
 146          
 147          
 148          void mach_rh(void)
 149          /******************************************************************************
 150           功能  : 计算湿度转换成对应的脉宽
 151           入口  : wb_rh
 152           出口  : 
 153           ******************************************************************************/
 154          {
 155   1        //temp_m=out_rh*32/25*9+2880;    //电阻是200
 156   1        //temp_m=out_rh*27/25*8+2160;    //电阻是200
 157   1        temp_m=(out_rh+50)*27/5*4/5+1080;     //电阻是100  +30相当于实际湿度加3
 158   1        rh_pwm_H=65536-temp_m;
 159   1        //rh_pwm_L=65535-(18000-temp_m);
 160   1        rh_pwm_L=65535-(13500-temp_m);
 161   1      
 162   1      #pragma asm
 163   1        MOV R0,#rh_pwm_H;
 164   1        MOV A,@R0
 165   1        MOV rh_h_h,A  
 166   1        INC R0
 167   1        MOV A,@R0
 168   1        MOV rh_h_l,A  
 169   1        MOV R0,#rh_pwm_L
 170   1        MOV A,@R0
 171   1        MOV rh_l_h,A  
 172   1        INC R0
 173   1        MOV A,@R0
 174   1        MOV rh_l_l,A
 175   1      #pragma endasm
 176   1      
 177   1      }
 178          
C51 COMPILER V7.50   MAIN                                                                  02/20/2009 14:03:12 PAGE 4   

 179          void pwm_Init(void)
 180          /******************************************************************************
 181           Function   : void Initpwm()
 182           Parameters : (void)
 183           Description: Initializes Sound Studio
 184           ******************************************************************************/

⌨️ 快捷键说明

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