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

📄 ad0832.lst

📁 ADC0832 转换程序的结果显示
💻 LST
字号:
C51 COMPILER V8.08   AD0832                                                                05/22/2009 21:58:14 PAGE 1   


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

line level    source

   1            #include<reg52.h>
   2          #include<intrins.h>
   3          float dat1,result;
   4          sbit ADDI=P3^5;
   5          sbit ADCLK=P3^6;
   6          sbit ADCS=P3^7;
   7          unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
   8          int ge,yi,er,san;
   9          /*
  10          unsigned char yi;
  11          unsigned char er;
  12          unsigned char san;       */
  13          unsigned long int temp;
  14          
  15              unsigned char k;
  16              unsigned char m;
  17              unsigned char n;
  18              unsigned char ndat;
  19              unsigned char dat;
  20                  
  21          void delay()
  22          {
  23   1       unsigned char i;
  24   1       unsigned char j;
  25   1       
  26   1       for(i=0;i<=200;i++)
  27   1       for(j=0;j<=20;j++);
  28   1       
  29   1      }
  30          void display()
  31          {       
  32   1               temp=result*1000.0;
  33   1                       temp=temp*4.99;
  34   1               temp=temp/255.0;
  35   1      
  36   1          
  37   1          ge=temp/1000;
  38   1          yi=temp/100%10;
  39   1          er=temp%100/10;
  40   1          san=temp%10;
  41   1         P2=0x08;
  42   1         P0=table[ge];
  43   1         delay();
  44   1         P2=0x04;
  45   1         P0=table[yi];
  46   1         delay();
  47   1         P2=0x02;
  48   1         P0=table[er];
  49   1         delay();
  50   1         P2=0x01;
  51   1         P0=table[san];
  52   1         delay();
  53   1        
  54   1      
  55   1      }
C51 COMPILER V8.08   AD0832                                                                05/22/2009 21:58:14 PAGE 2   

  56          
  57           ADC0832(unsigned char channel)  //AD转换,返回结果
  58          {       
  59   1               dat=ndat=0;
  60   1      
  61   1          if(channel==0)channel=0;//通道号10,只对CH0进行单通道转换
  62   1          if(channel==1)channel=1;//通道号11,只对CH2进行单通道转换
  63   1          ADDI=1;//在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号
  64   1          ADCLK=0;//拉低CLK端
  65   1          _nop_();
  66   1          _nop_();
  67   1          ADCS=0;//拉低CS端,使能ADC0832,
  68   1          _nop_();
  69   1          _nop_();
  70   1          ADCLK=1;//拉高CLK端
  71   1          _nop_();
  72   1          _nop_();
  73   1          ADCLK=0;//拉低CLK端,形成下降沿1
  74   1          _nop_();
  75   1          _nop_();
  76   1          ADCLK=1;//拉高CLK端
  77   1          ADDI=channel&0x01;//在第2个脉冲下沉之前DI端应输入第1位通道选择数据
  78   1          _nop_();
  79   1          _nop_();
  80   1          ADCLK=0;//拉低CLK端,形成下降沿2
  81   1          _nop_();
  82   1          _nop_();
  83   1          ADCLK=1;//拉高CLK端
  84   1          ADDI=channel&0x02;//在第3个脉冲下沉之前DI端应输入第2位通道选择数据
  85   1          _nop_();
  86   1          _nop_();
  87   1          ADCLK=0;//拉低CLK端,形成下降沿3
  88   1          _nop_();
  89   1          _nop_();
  90   1              ADDI=1;
  91   1          for(m=0;m<8;m++)
  92   1            {   dat<<=1;
  93   2              ADCLK=1;//收数据
  94   2              _nop_();
  95   2              _nop_();
  96   2              ADCLK=0;//形成一次时钟脉冲
  97   2              dat|=ADDI;
  98   2                      _nop_();
  99   2              _nop_();
 100   2              
 101   2              
 102   2            } 
 103   1       
 104   1          for(m=0;m<8;m++)
 105   1           {
 106   2              k=0;
 107   2              k|=ADDI;//收数据
 108   2              k<<=7;
 109   2              ndat|=k;
 110   2              if(m<7) 
 111   2              ndat>>=1; 
 112   2                      ADCLK=1;
 113   2              _nop_();
 114   2              _nop_();
 115   2              ADCLK=0;//形成第12-19次下降沿
 116   2              
 117   2                      _nop_();
C51 COMPILER V8.08   AD0832                                                                05/22/2009 21:58:14 PAGE 3   

 118   2              _nop_();
 119   2           }
 120   1           
 121   1          ADCS=1;//拉低CS端
 122   1          ADCLK=0;//拉低CLK端
 123   1          ADDI=1;//拉高数据端,回到初始状态
 124   1         result=(dat+ndat)/2.0;
 125   1        //  return(result);            //return ad k
 126   1      }
 127          void main()
 128          {
 129   1      while(1)
 130   1         {
 131   2          ADC0832(0);
 132   2          display();
 133   2         }
 134   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    469    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     25    ----
   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 + -