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

📄 max197.lst

📁 本程序是AD MAX197驱动程序。精度高。
💻 LST
字号:
C51 COMPILER V7.10   MAX197                                                                07/22/2007 15:42:47 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE MAX197
OBJECT MODULE PLACED IN max197.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE max197.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include  "reg52.h"
   2          #include  " ABSACC.h"
   3          
   4          #define   uchar  unsigned char 
   5          #define   uint   unsigned int
   6          #define   refvcc   2.5           // 定位基准电压
   7          #define   manpian  4096         // 
   8          #define  max197_data  P0
   9          #define  adch0  XBYTE[0x0200]
  10          
  11          uchar    max197_low8 , /* 地8位 */  max197_high4 ,/* 高四位*/  channel  , /* 通道*/ i , display_data[]   ;
  12          float    vi , ad_data ;
  13          int      Number ;  //= 0xfff    ;
  14          
  15          //sbit     max197_cs   =  P2^5 ;    //片选择
  16          sbit     max197_hben =  P2^7 ;    // 地8位和高四位的选择信号
  17          sbit     max197_int  =  P2^6 ;    // 数据转换完成中段信号, 使用的int0.
  18          //sbit     max197_wr   =  P3^6 ;    //max197读信号
  19          //sbit     max197_rd   =  P3^7 ;    // max197写信号
  20          
  21          
  22          unsigned char Status , Data ,Command , i  ;
  23          unsigned  char code max197 []   = "MAX197AD转换 " ;
  24          unsigned  char code shuru  []   = "输入电压:      V";
  25          #define LCD_Data  P1
  26          
  27          
  28          sbit    LCD_RS          =P3^2;
  29          sbit    LCD_E           =P3^0;
  30          sbit    LCD_WR          =P3^1;
  31          
  32          
  33           LCDBusyWait()                                                  //等待LCD就绪
  34          {
  35   1              unsigned char Status;
  36   1              LCD_RS=0;
  37   1              LCD_WR=1;
  38   1              LCD_Data=0xFF; 
  39   1      
  40   1              LCD_E=1;
  41   1              Status=LCD_Data;
  42   1              LCD_E=0;
  43   1              while(Status & 0x80)
  44   1              {
  45   2                      LCD_E=1;
  46   2                      Status=LCD_Data;
  47   2                      LCD_E=0;
  48   2              }
  49   1              LCD_WR=0;
  50   1              return Status;
  51   1      }
  52          
  53           WriteLCD_Data( unsigned char  Data )                   //向LCD写入一个字节的数据
  54          {
  55   1              LCDBusyWait();
C51 COMPILER V7.10   MAX197                                                                07/22/2007 15:42:47 PAGE 2   

  56   1              LCD_RS=1;
  57   1              LCD_Data = Data;
  58   1              LCD_E=1;
  59   1              LCD_E=0;
  60   1      }
  61          
  62           WriteLCD_Command( unsigned char Command )      //向LCD写入一个字节的命令
  63          {  
  64   1              LCDBusyWait();
  65   1              LCD_RS=0;
  66   1              LCD_Data=Command;
  67   1              LCD_E=1;
  68   1              LCD_E=0;
  69   1      }
  70          
  71          lcd_init ()
  72          {
  73   1      
  74   1              unsigned int  i;
  75   1              WriteLCD_Command(0x01);   //清屏
  76   1           for(i=0;i<2000;i++);
  77   1              WriteLCD_Command(0x30);   //功能设置8位界面,
  78   1           for(i=0;i<2000;i++);
  79   1              WriteLCD_Command(0x0C);   //显示开,光、光标关,反白显示
  80   1           for(i=0;i<2000;i++);
  81   1          WriteLCD_Command(0x06);       //DDRAM地址自加
  82   1                 for(i=0;i<2000;i++);
  83   1          WriteLCD_Command(0x81) ;
  84   1             for(i=0;i<2000;i++);
  85   1      
  86   1      }  
  87          
  88          lcd_init_display (  )
  89           {
  90   1        i  = 0 ;
  91   1        while ( max197  [i] != '\0')
  92   1         {
  93   2           Data = max197 [i] ;
  94   2               WriteLCD_Data(Data) ;
  95   2           i++ ;
  96   2         }
  97   1          WriteLCD_Command(0x88);
  98   1          i  = 0 ;
  99   1         while ( shuru [i] != '\0')
 100   1          {
 101   2            Data = shuru [i] ;
 102   2                WriteLCD_Data(Data) ;
 103   2            i++ ;
 104   2         }
 105   1      
 106   1      } 
 107          
 108            
 109          
 110          
 111              
 112           
 113          max197_data_lcddisplay ()   //   在lcd上面显示模拟电压的值.
 114          {
 115   1          WriteLCD_Command(0x8d);
 116   1          vi   = (ad_data  / 4096.0 ) * refvcc ;
 117   1          Number   =  vi *1000 ;
C51 COMPILER V7.10   MAX197                                                                07/22/2007 15:42:47 PAGE 3   

 118   1              if ( Number >=10000 )
 119   1              {
 120   2            WriteLCD_Data((Number /10000 ) + 0x30);                   //取出10位数字  
 121   2            WriteLCD_Data((Number % 10000 / 1000) + 0x30);            //取出个位数字
 122   2                WriteLCD_Data(0x2e); 
 123   2                WriteLCD_Data(Number % 1000 / 100 + 0x30);                    //取出.0位数字
 124   2                WriteLCD_Data(Number % 100/ 10 + 0x30);               //取出.00位
 125   2            WriteLCD_Data(Number % 10 + 0x30);                //取出.000位数
 126   2          }
 127   1              if ( Number < 10000 )
 128   1              { 
 129   2                WriteLCD_Data((Number /1000) + 0x30);
 130   2                WriteLCD_Data(0x2e);  
 131   2            WriteLCD_Data((Number % 1000 / 100) + 0x30);              //取出.0位数字
 132   2                WriteLCD_Data(Number % 100 / 10 + 0x30);                      //取出.00位数字
 133   2            WriteLCD_Data(Number % 10 + 0x30);               ////取出.000位数字
 134   2               }
 135   1      
 136   1      }
 137          
 138          
 139           
 140           void  intsvr  ( void )  interrupt 1
 141           { 
 142   1        
 143   1        //EX1  = 0 ;
 144   1        TR0  =  0;
 145   1        adch0  = 0x40 ;
 146   1        while ( max197_int !=0 )
 147   1         {
 148   2          max197_hben  = 0 ; 
 149   2         }
 150   1      
 151   1              max197_low8  = adch0 ;
 152   1          max197_hben  = 1 ;
 153   1          max197_high4 = adch0 ;
 154   1      
 155   1              ad_data =  max197_high4;
 156   1              ad_data =  ad_data  * 255 ; 
 157   1              ad_data =  ad_data+ max197_low8 ;//将高四位的数据前移8位在加上低位的数据.       
 158   1      //      ad_data  = 0xff ;
 159   1      
 160   1              max197_hben  = 1 ;
 161   1      //      EX1  = 1 ;
 162   1          TH0   = 0xff ;
 163   1          TL0   = 0xde ;
 164   1          TR0  = 1 ;
 165   1              
 166   1      
 167   1          }
 168                  
 169          main ()
 170          {
 171   1        uchar i , j ;
 172   1        lcd_init () ;
 173   1        lcd_init_display (  )  ;
 174   1       
 175   1        TMOD  = 0x01 ;
 176   1        TH0   = 0xff ;
 177   1        TL0   = 0xde ;
 178   1        ET0   = 1 ;
 179   1        TR0   = 1 ;   
C51 COMPILER V7.10   MAX197                                                                07/22/2007 15:42:47 PAGE 4   

 180   1        EA    =   1 ; 
 181   1        //EX1   = 1    ;                // 打开外部中
 182   1       // max197_int = 1 ;
 183   1      
 184   1       // ad_data  = 0xff ;
 185   1       
 186   1      
 187   1       // max197_data_lcddisplay () ;
 188   1        while (1)                                             // 等待外部中断。
 189   1        {
 190   2        
 191   2              max197_data_lcddisplay () ;
 192   2      //      for ( i = 0  ; i <255 ; i++ )
 193   2               // for ( j = 0 ; j <255 ; j++) ;
 194   2        }                
 195   1       
 196   1        }
*** WARNING C280 IN LINE 171 OF MAX197.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 171 OF MAX197.C: 'j': unreferenced local variable
 197          
 198          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    633    ----
   CONSTANT SIZE    =     31    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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