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

📄 hello.lst

📁 基于 keil下编写的用ADC0809采用查寻法测电压的代码 新手可以参考学习
💻 LST
字号:
C51 COMPILER V8.05a   HELLO                                                                05/24/2009 11:27:09 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE HELLO
OBJECT MODULE PLACED IN hello.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE hello.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***********************************************
   2          
   3                   用ADC0809采用查寻法测电压
   4          
   5          ***********************************************/
   6          
   7          #include <time_interrupt.h>
   8          
   9          
  10          void main()
  11          {
  12   1              while(1)
  13   1              {
  14   2                       TimeInitial();
  15   2                       ADC0809();//用ADC0809采样电压
  16   2                       display();// 显示ADC0809采样的电压
  17   2                       keyboard_fun(); //从按键获取与PWM相比较的电压值
  18   2                       compare();//比较 voltage 与  PWM_voltage的值
  19   2      
  20   2              }
  21   1                      
  22   1      }
  23          
  24          
  25          // ADC0809 使用程序
  26          void   ADC0809() 
  27          {
  28   1              ADC0809_ALE = 0;
  29   1              ADC0809_OE=0;
  30   1              ADC0809_START = 0 ;
  31   1              ADC0809_EOC = 1 ;
  32   1      
  33   1              ADC0809_ADDRESS_A = ~ADC0809_ADDRESS_A  ;
  34   1              ADC0809_ALE = 1;
  35   1              ADC0809_ALE = 0 ;
  36   1              ADC0809_START = 1 ;
  37   1              ADC0809_START = 0 ;     
  38   1              delay(100);      //等待AD转换结束,此延时搞死老子
  39   1              while(!ADC0809_EOC);     //     ADC0809_EOC 为0,即没有转换束,不停循环
  40   1      
  41   1              ADC0809_OE = 1;
  42   1              if(ADC0809_ADDRESS_A == 0)
  43   1              {
  44   2               voltage = P1;            //从ADC0809获取的电压放在变量 voltage 上
  45   2               voltage=voltage*19.607843;
  46   2              }
  47   1              else
  48   1              {
  49   2              current = P1;
  50   2              current=current*19.607843;
  51   2              }       
  52   1              ADC0809_OE = 0;
  53   1              display();
  54   1      }
  55          
C51 COMPILER V8.05a   HELLO                                                                05/24/2009 11:27:09 PAGE 2   

  56          
  57          //显示电压大小程序
  58          void display()
  59          {
  60   1              
  61   1              LEDcom1=table2[voltage/1000];
  62   1              LEDcom2=table[voltage/100%10];
  63   1              LEDcom3=table[voltage/10%10];
  64   1              LEDcom4=table[voltage%10];
  65   1      
  66   1              
  67   1              LEDcom5=table2[current/1000];
  68   1              LEDcom6=table[current/100%10];
  69   1              LEDcom7=table[current/10%10];
  70   1              LEDcom8=table[current%10];
  71   1      }
  72          
  73          
  74          //从按键获取与PWM相比较的电压值
  75          void keyboard_fun()
  76          {
  77   1              if(keyboard==0xfe) //电压增加1
  78   1              {                       
  79   2                      delay(100);
  80   2                      if(keyboard==0xfe) //消抖 
  81   2                      {
  82   3                              while(keyboard==0xfe);//按键释放,再运行以下程序
  83   3                              PWM_voltage++;                                  
  84   3                      }
  85   2                      
  86   2              }
  87   1              if(keyboard==0xfd) //电压增加1
  88   1              {                       
  89   2                      delay(100);
  90   2                      if(keyboard==0xfd) //消抖 
  91   2                      {
  92   3                              while(keyboard==0xfd);//按键释放,再运行以下程序
  93   3                              PWM_voltage--;                                  
  94   3                      }               
  95   2              }
  96   1              if(PWM_voltage<25||PWM_voltage>36)
  97   1              {
  98   2                      PWM_voltage=30;
  99   2              }
 100   1      }
 101          
 102          
 103          //比较 voltage 与  PWM_voltage的值
 104          void compare()
 105          {
 106   1      
 107   1      }
 108          
 109          
 110          //延时子程序
 111          //时间 = t*10 us
 112          void delay(unsigned int t)
 113          {
 114   1          unsigned int i,j;
 115   1          for(i = 0;i<t;i++)
 116   1            for(j = 0;j<10;j++); 
 117   1      }
C51 COMPILER V8.05a   HELLO                                                                05/24/2009 11:27:09 PAGE 3   



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