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

📄 main.lst

📁 通过C51来实现光照度测量的设计,而且通过电机带动。
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  12/15/2008 15:08:22 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\proteus&keil\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /*
   3          ****************************************************
   4          
   5                          
   6          
   7          ****************************************************
   8          */
   9          
  10          #include <reg52.H>
  11          #include "Typedef.H"
  12          #include "UserDef.H"
  13          #include "Disp.H"
  14          #include "ADC0809.H"
  15          
  16          
  17          /* 常数定义 */
  18          #define T_ADDA  10                              //ADDA周期:10ms
  19          
  20          #define V_REF_AD0       5.0             //ADC0809的基准电压值
  21          
  22          
  23          /*  全局变量 */
  24          bit bDispRef = FALSE;           //信号灯:显示更新时间到
  25          bit bADDARef = FALSE;           //信号灯:ADDA采样时间到
  26          sbit b00 = P2^0; 
  27          sbit b01 = P2^1; 
  28          /***************************************
  29          
  30                  
  31          
  32          ****************************************/
  33          void main(void)
  34                  {
  35   1              INT8U AD;
  36   1              float Volt_AD,Volt_AD0;
  37   1      
  38   1              //初始化
  39   1              TMOD = 0x11;
  40   1              TH0 = (INT8U)(KTDLY>>8);
  41   1              TL0 = (INT8U)(KTDLY);
  42   1              TR0 = 1;
  43   1              
  44   1              ET0 = 1;
  45   1              EA = 1;
  46   1      
  47   1              DispInit();             //LCD初始化
  48   1              AD0809_init();  //AD0809初始化
  49   1      
  50   1              /* LCD清屏 */
  51   1              DispCls();
  52   1      
  53   1              /* 显示固定的文字 */
  54   1              DispXYSet(0,35);
  55   1              DispHZ(0);   //欢
C51 COMPILER V7.50   MAIN                                                                  12/15/2008 15:08:22 PAGE 2   

  56   1              DispHZ(1);       //迎
  57   1              DispHZ(2);   //使
  58   1              DispHZ(3);       //用
  59   1              DispXYSet(2,20);
  60   1              DispHZ(4);   //光
  61   1              DispHZ(5);       //照
  62   1              DispHZ(6);   //度
  63   1              DispHZ(7);       //测
  64   1              DispHZ(8);   //量
  65   1              DispHZ(9);       //仪
  66   1      
  67   1              DispXYSet(6,10);
  68   1              DispHZ(4);   //光
  69   1              DispHZ(5);       //照
  70   1              DispHZ(6);   //度
  71   1      
  72   1      
  73   1              DispFontSet(1);         
  74   1              DispXYSet(4.5,10);
  75   1              DispStr("AD=");
  76   1              
  77   1              DispFontSet(1);         
  78   1              DispXYSet(6.5,55);
  79   1              DispStr("=");
  80   1              
  81   1              while(TRUE)
  82   1                      {
  83   2                        
  84   2              
  85   2                      /* 显示扫描刷新,输出可变的文字 */
  86   2                      if (bDispRef == TRUE)
  87   2                              {
  88   3                              bDispRef = FALSE;
  89   3      
  90   3                              // 显示当前的AD、DA数值
  91   3                              DispFontSet(1);
  92   3                              DispXYSet(4.5,35);
  93   3                              DispInt(AD,3);
  94   3                      
  95   3      
  96   3                              // 显示当前的AD、DA所对应的实际电压值
  97   3                              DispFontSet(0);
  98   3                              DispXYSet(6.5,65);
  99   3                              DispFloat(Volt_AD,6);   DispStr("cd");
 100   3                              
 101   3                              }
 102   2      
 103   2                      /* ADDA采样,进行AD、DA转换并计算AD、DA值对应的实际电压值 */
 104   2                      if (bADDARef == TRUE)
 105   2                              {
 106   3                              bADDARef = FALSE;
 107   3                              
 108   3                              if (P2==0xfe)
 109   3      /*----------------------<<< 修改3 >>>---------------------------------*/
 110   3      // 根据公式计算AD,DA所对应的实际电压值
 111   3                      {AD = AD0809(0);
 112   4                               Volt_AD = AD / 256.0 * V_REF_AD0*1000.0;}
 113   3      
 114   3                              if (P2==0xfd)
 115   3                              { 
 116   4                                AD = AD0809(0);
 117   4                                AD = AD/5;
C51 COMPILER V7.50   MAIN                                                                  12/15/2008 15:08:22 PAGE 3   

 118   4                                Volt_AD0 = AD / 256.0 * V_REF_AD0;
 119   4                                Volt_AD =Volt_AD0 /5.0*1000.0;
 120   4                              }
 121   3      /*--------------------------------------------------------------------*/
 122   3                          
 123   3                              } 
 124   2                              
 125   2      
 126   2                      }
 127   1              }
 128          
 129          
 130          
 131          
 132          /*************************************
 133          
 134                  定时器中断程序 
 135          
 136          **************************************/
 137          void int_t0(void) interrupt 1 using 1
 138                  {
 139   1              static int cnt = 0;
 140   1      
 141   1              TH0 = (unsigned char)(KTDLY>>8);
 142   1              TL0 = (unsigned char)(KTDLY);
 143   1      
 144   1              cnt ++;
 145   1      
 146   1              /* 显示扫描信号灯  */
 147   1              if ((cnt % T_DISPREF) == 0)
 148   1                      {
 149   2                      bDispRef = TRUE;
 150   2                      }
 151   1              
 152   1              /* ADDA采样信号灯  */
 153   1              if ((cnt % T_ADDA) == 0)
 154   1                      {
 155   2                      bADDARef = TRUE;
 156   2                      }
 157   1              
 158   1              }
 159          
 160          
 161          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    415    ----
   CONSTANT SIZE    =      9    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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