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

📄 main.lst

📁 液晶显示屏12232的驱动程序.内包含了EEPROM及AD7705的驱动程序
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  05/28/2007 15:49:30 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "mylib.h"
   2          /*
   3          编写:bobo
   4          调试AD7705过程中有几个问题需要注意:
   5          1:AD7705内部增益应尽量小,以免零电压时读数不为零。
   6          2:AD7705的设置寄存器应设置成数据缓冲模式(特别是在双通道都使用时,单通道可不用)。
   7             (1)当设置成非缓冲模式时,单通道使用可正常工作,双通道使用时不能正常工作(除非每次
   8                  读写数据时重新复位AD7705)。
   9             (2)当设置成缓冲模式时,单通道与双通道均可正常工作。
  10          3:AD7705的数据刷新不要太快,太快有时会使AD7705不能正常工作。
  11          4:AD7705的复位口最好使用单片机口线控制,这样可在AD7705工作不正常时重新复位AD7705。
  12          5:AD7705单通道使用时的编程步骤:
  13             (1)初使化AD7705当前使用的通道。
  14             (2)读数据。
  15          6:AD7705双通道使用时的编程步骤:
  16             (1)初使化AD7705第1通道。
  17             (2)读数据。
  18             (3)初使化AD7705第2通道。
  19             (4)读数据。
  20          */
  21          /*
  22          编写:bobo
  23          1:为了允许Keil51对STC单片机内部扩展RAM的读写,须将RAM设置成外部XDATA的RAM。
  24          2:主程序中加入了看门狗,以防程序死机或受其它方面影响而造成的单片机工作不正常。
  25          */
  26          uchar i,h,bufdata[2],count,count1;
  27          uint  j,ReaddataChx;
  28          float ak1,ak2,ak3,ak4,ak5;
  29          float y,x,z,v;
  30          uchar xdata inbuf1[5];
  31          uchar xdata inbuf2[5];
  32          uint  k;
  33          void main(void)
  34          {       
  35   1      
  36   1         AD7705_reset();
  37   1         init_serial();
  38   1         lcd_init();
  39   1         lcd_clr();
  40   1         draw_bmp1(0,5,Power);
  41   1         lcd_clr2();
  42   1         delay();
  43   1         WDT_CONTR=0x3f;
  44   1         while(1)
  45   1         {
  46   2       //        INI7705();
  47   2      //         AD7705_reset();
  48   2               CH1_init();
  49   2                       k=filter(0);
  50   2                       lcd_clr();
  51   2                       display_num(0);
  52   2                       Led=0;
  53   2                       for(i=0;i<100;i++)
  54   2                          for(j=0;j<500;j++);
  55   2                       Led=1;
C51 COMPILER V7.50   MAIN                                                                  05/28/2007 15:49:30 PAGE 2   

  56   2                       CH2_init();
  57   2                       k=filter(1);
  58   2                       lcd_clr();
  59   2                       display_num(1);
  60   2                       Led=0;
  61   2                       for(i=0;i<100;i++)
  62   2                          for(j=0;j<500;j++);
  63   2                       Led=1;
  64   2                       WDT_CONTR=0x3f; 
  65   2         }
  66   1      }
  67          
  68          uint filter(bit mode)
  69          {
  70   1         uint  sum = 0;
  71   1         for ( count=0;count<25;count++)
  72   1         {
  73   2            ReaddataChx=ReadDataCh1_Ch2(mode);
  74   2                if(ReaddataChx<10)
  75   2                    ReaddataChx=0;
  76   2            sum =sum+ReaddataChx;
  77   2            delay();
  78   2         }     
  79   1         x=(float)sum/25;
  80   1         y=x*0.038148;
  81   1         v=13.093289;
  82   1         z=v*y;
  83   1         return (uint)(z);
  84   1      }
  85          
  86          #ifdef countresult
              #define countresult
              void CountResult(bit mode)
              {
                 ReaddataChx=ReadDataCh1_Ch2(mode);
                 if(ReaddataChx<10)
                     ReaddataChx=0;
              //   sum=sum+ReaddataChx;
              }
              
              void CountChange(void)
              {
                 if(count==0)
                         x=sum1;
                 else if(count==1)
                         x=sum2; 
                 else if(count==2)
                         x=sum3; 
                 else if(count==3)
                         x=sum4; 
                 else if(count==4)
                         x=sum5; 
                 y=x*0.038148;
                 v=13.093289;
                 z=v*y;
                 if(count==0)
                         ak1=z;
                 else if(count==1)
                         ak2=z; 
                 else if(count==2)
                         ak3=z; 
                 else if(count==3)
C51 COMPILER V7.50   MAIN                                                                  05/28/2007 15:49:30 PAGE 3   

                         ak4=z; 
                 else if(count==4)
                         ak5=z; 
              }
              #endif
 123          
 124          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    392    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     58       2
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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