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

📄 main.lst

📁 0-30v
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   MAIN                                                                  11/20/2008 22:02:47 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /******************************
   3             名字:  main.c
   4             作者:  春风  
   5           创建日:  2008.8.15 
   6             工程:  数控稳压电源  
   7          *******************************/
   8          
   9          #include"reg52.h"
  10          #include"delay.h"
  11          #include"Config.h"
  12          #include"IOCfg.c"
  13          #include"AD7705.h"
  14          #include"DACMAX531.h"
  15          #include"KEY.h"
  16          #include"LCD12864.h"
  17          #include"MENU.h"
  18          
  19          //#include"stdlib.h"
  20          
  21          char  code dx516[3] _at_ 0x003b;//这是为了仿真设置的(大虾仿真器)
  22          idata  uchar GOUT[7];//在片内定义间接寻址的数组  
  23          static idata uchar x[6] = {0,0,0,0,0,0}; //---定义一个数组 按键数值 存放  
  24          
  25          static  uchar set_lcd_temp;//  lcd刷新计数     
  26          static  idata float dac_temp; 
  27          
  28          uchar aaa;
  29          
  30          //idata float key_vol = 0.0000;
  31          
  32          /************************************************************************************
  33          
  34                                        把浮点数拆开存储指针型数据  
  35          
  36          ************************************************************************************/
  37          void chai(float x)  
  38          {
  39   1              uint i;
  40   1              for(i = 0;i < 7;i ++)
  41   1              {
  42   2                      GOUT[i] = 0;
  43   2              }
  44   1      
  45   1              i = x / 10;
  46   1              if(i == 0)      
  47   1              {
  48   2                      GOUT[0] = ' ';
  49   2              }
  50   1              else
  51   1              {
  52   2                      GOUT[0] = i + '0';
  53   2              }
  54   1      
  55   1              GOUT[1] = (int)x % 10 + '0';
C51 COMPILER V8.08   MAIN                                                                  11/20/2008 22:02:47 PAGE 2   

  56   1              x = x * 10;
  57   1              GOUT[3] = (int)x % 10 + '0';
  58   1              x = x * 10;
  59   1              GOUT[4] = (int)x % 10 + '0';
  60   1              x = (x * 10);
  61   1              GOUT[5] = (unsigned int)x % 10 + '0';
  62   1      
  63   1              GOUT[2] =  '.';
  64   1              GOUT[6] =  '\0';
  65   1      }
  66          
  67          /************************************************************************************
  68                                        显示设定电压  
  69          ************************************************************************************/
  70          void  disp_set(float set_temp1)
  71          {
  72   1          lcm_w_word(0x90,0x00,"设定:");
  73   1              chai(set_temp1 +0.0003); 
  74   1          lcm_w_word(0x90,3,GOUT);
  75   1              lcm_w_word(0x90,0x06,"V   ");   
  76   1      }
  77          
  78          /************************************************************************************
  79          
  80                                        扫描按键,并根据键值修改DAC的电压 
  81                                                                    用数字键输入电压值   ,和加减电压1V和0.1V       
  82          
  83          ************************************************************************************/
  84          
  85          void key_dac(uchar key_temp)
  86          {
  87   1              uchar j  = 0;
  88   1              uchar i;
  89   1              static uchar ii = 0;
  90   1              //static uchar key_temp;
  91   1              set_lcd_temp = 0;
  92   1              //key_temp = key_num();
  93   1              if(((key_temp <= 0x09) && (key_temp >= 0x00)) || (key_temp == '.'))
  94   1              {
  95   2                      if(ii == 0) 
  96   2                      {       w_code(0x93);
  97   3                              for(ii = 0;ii < 6;ii ++)
  98   3                              {
  99   4                                      w_data(' ');                    
 100   4                              }
 101   3                              ii = 0;
 102   3                      }
 103   2                      if(ii > 5)     
 104   2                      {
 105   3                              for(i = 0;i < 5;i ++)
 106   3                              {x[i] = 0;}
 107   3                              w_code(0x93);
 108   3                              for(j = 0;j < 6;j++) 
 109   3                              {w_data(' ');}
 110   3                              ii = 0; 
 111   3                  }
 112   2                      x[ii] = key_temp;  
 113   2                      ii ++;       
 114   2                      if(ii != 0)
 115   2                      {
 116   3                              w_code(0x93);
 117   3                              for(j = 0;j < ii;j++)
C51 COMPILER V8.08   MAIN                                                                  11/20/2008 22:02:47 PAGE 3   

 118   3                              {
 119   4                                      if(x[j] == '.')
 120   4                                      {
 121   5                                              w_data('.');
 122   5                                      }
 123   4                                      else
 124   4                                      {
 125   5                                              w_data(x[j] + 0x30);
 126   5                                      }
 127   4                              }         
 128   3                      }
 129   2                      lcm_w_word(0x90,0x06,"V   ");
 130   2                      BELL_ONOFF(1); 
 131   2                      delay(14000);
 132   2                      BELL_ONOFF(0);
 133   2              }
 134   1              if(ii != 0)  
 135   1              {       
 136   2                      if(key_temp == key_enter)
 137   2                      {
 138   3                              idata float key_vol = 0.0000;
 139   3                              idata float chu = 10;
 140   3                              uchar y = 0;
 141   3                              j = 0;
 142   3                              while((x[j] != '.') && (j < 6)) 
 143   3                              j ++;
 144   3                              if(j == 6)
 145   3                              {
 146   4                                       x[ii] = '.';    
 147   4                              } 
 148   3                              ii = 0;
 149   3                          while((x[y] != '.') && (y < 6))
 150   3                          key_vol = key_vol * 10 + x[y ++];
 151   3                              y ++;
 152   3                              while(y < 6)
 153   3                              {
 154   4                                      key_vol = key_vol + x[y ++] / chu;
 155   4                                      chu = chu * 10;
 156   4                              }
 157   3                              for(ii = 0;ii < 6;ii ++)
 158   3                              {
 159   4                                      x[ii] = 0;
 160   4                              }  
 161   3                              ii = 0;
 162   3                      j  = 0;
 163   3                              dac_temp = key_vol;
 164   3      
 165   3                              RS  =  1;                       
 166   3                              RW  =  0;       
 167   3                              if((dac_temp < 0) || (dac_temp >= 30.10)) 
 168   3                              {
 169   4                                      dac_temp = 0;
 170   4                                      lcm_w_word(0x90,0x03,"  无效  ");
 171   4                                      BELL_ONOFF(1);
 172   4                                  delay(7000);
 173   4                                  BELL_ONOFF(0);
 174   4                                      delay(10000);
 175   4                                  BELL_ONOFF(1); 
 176   4                                  delay(7000);
 177   4                                  BELL_ONOFF(0);
 178   4                                      delay(10000);
 179   4                                  BELL_ONOFF(1);
C51 COMPILER V8.08   MAIN                                                                  11/20/2008 22:02:47 PAGE 4   

 180   4                                      delay(7000);
 181   4                                  BELL_ONOFF(0);
 182   4                                      delay(60000);
 183   4                                      disp_set(dac_temp);
 184   4                                      dac(conver(dac_temp));
 185   4                              }
 186   3                              else
 187   3                              {       
 188   4                                      disp_set(dac_temp);
 189   4                                      dac(conver(dac_temp));

⌨️ 快捷键说明

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