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

📄 msn.lst

📁 AD采样测量电压.rar
💻 LST
字号:
C51 COMPILER V7.50   MSN                                                                   03/25/2010 16:51:24 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MSN
OBJECT MODULE PLACED IN msn.OBJ
COMPILER INVOKED BY: D:\Program Files\C51\BIN\C51.EXE msn.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>//数码管动态显示电压值0V~1.33V(不知道什么原因,电压再大就又从0开始)
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          
   5          sbit beeper=P2^0;
   6          sbit led=P1^3;
   7          sbit SEGSEL1 = P1^4;
   8          sbit SEGSEL2 = P1^5;
   9          sbit SEGSEL3 = P1^6;
  10          sbit SEGSEL4 = P1^7;
  11          sbit ADCCS = P2^4;
  12          sbit ADCOUT = P2^3;
  13          sbit SCLK = P2^6;
  14          
  15          //共阴数码管段码 
  16          uchar code dat[]={
  17          0x3f,0x06,0x5b,0x4f,0x66,0x6d,//0,1,2,3,4,5
  18          0x7d,0x07,0x7f,0x6f,0x77,0x7c,//6,7,8,9,a,b
  19          0x39,0x5e,0x79,0x71   //c,d,e,f
  20          };
  21          //带有小数点的段码      
  22          uchar code dat1[]={
  23          0xbf,0x86,0xdb,0xcf,0xe6,0xed,//0,1,2,3,4,5
  24          0xfd,0x87,0xff,0xef,0xf7,0xfc,//6,7,8,9,a,b
  25          0xb9,0xde,0xf9,0xf1   //c,d,e,f
  26          };      
  27          
  28          
  29          void delay(uint);
  30          void delay1();
  31          void init();
  32          void display(uint);
  33          uchar adc();
  34          
  35          
  36          void main(void)
  37          {
  38   1              int j,q=0;
  39   1              float p ,m,n;
  40   1              int   a,b,c,d,e,f  ;
  41   1              init();
  42   1      
  43   1              while(1)
  44   1              {
  45   2      //              led=1;
  46   2              q=adc();
  47   2      //              P0=q;
  48   2      
  49   2      //电压数据处理
  50   2                      p=(q*1.35)/256;
  51   2                      m=p;n=p ;
  52   2                      a=(int)(p/10);
  53   2                      b=((int)p)%10;
  54   2                      c=((int)(m*10))%10;
  55   2                      d=((int)(n*100))%10;
C51 COMPILER V7.50   MSN                                                                   03/25/2010 16:51:24 PAGE 2   

  56   2                      e=((int)(n*1000))%10;
  57   2                      f=e+10*d+100*c+1000*b;
  58   2      //      显示数据;
  59   2                      for(j = 0; j < 50; j++)
  60   2                      {
  61   3                              display(f);
  62   3                      }
  63   2                      
  64   2              }
  65   1      }
  66          
  67          void init()
  68          {
  69   1              P0=0;//对P0口初始化
  70   1              P1=0;//对P1口初始化,关led灯,关数码管
  71   1              beeper=0;//关蜂鸣器
  72   1      }
  73          
  74          //延时z ms时间
  75          void delay(uint z)
  76          {
  77   1              uint x,y;
  78   1              for(x=0;x<z;x++)
  79   1                      for(y=0;y<1000;y++);
  80   1      }
  81          
  82          //延时14us时间
  83          void delay1()
  84          {
  85   1              uint m;
  86   1              for(m=0;m<4;m++);       
  87   1      }
  88          
  89          //四位数码管显示
  90          void display(uint n)
  91          {
  92   1              uint ge=0,shi=0,bai=0,qian=0;
  93   1              qian=n/1000;
  94   1              bai=n%1000/100;
  95   1              shi=n%100/10;
  96   1              ge=n%10;
  97   1              //显示个位数据
  98   1              SEGSEL1 = 0;
  99   1              SEGSEL2 = 0;
 100   1              SEGSEL3 = 0;
 101   1              SEGSEL4 = 1;
 102   1              P0=dat[ge];
 103   1              delay(2);
 104   1              //显示十位数据
 105   1              SEGSEL1 = 0;
 106   1              SEGSEL2 = 0;
 107   1              SEGSEL4 = 0;
 108   1              SEGSEL3 = 1;
 109   1              P0=dat[shi];
 110   1              delay(2);
 111   1              //显示百位数据
 112   1              SEGSEL1 = 0;
 113   1              SEGSEL3 = 0;
 114   1              SEGSEL4 = 0;
 115   1              SEGSEL2 = 1;
 116   1              P0=dat[bai];
 117   1              delay(2);
C51 COMPILER V7.50   MSN                                                                   03/25/2010 16:51:24 PAGE 3   

 118   1              //显示千位数据
 119   1              SEGSEL2 = 0;
 120   1              SEGSEL3 = 0;
 121   1              SEGSEL4 = 0;
 122   1              SEGSEL1 = 1;
 123   1              P0=dat1[qian];
 124   1              delay(2);
 125   1      }
 126          
 127          //AD转换过程
 128          uchar adc(void)
 129          {
 130   1              uchar rbyte,i;
 131   1              //置IO口为高,输入状态
 132   1              ADCOUT = 1;
 133   1              SCLK = 0;
 134   1              //启动转换
 135   1              ADCCS = 0;
 136   1              delay1();
 137   1              for(i = 0; i < 8; i++)
 138   1              {
 139   2                      if(ADCOUT) rbyte += 1;
 140   2                      rbyte <<= 1;
 141   2                      SCLK = 1;
 142   2                      delay1();
 143   2                      SCLK = 0;
 144   2              }
 145   1              //开始下次转换
 146   1              ADCCS = 1;
 147   1              return(rbyte);
 148   1      }


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