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

📄 电压表.lst

📁 假期培训时编写的一个电压表
💻 LST
字号:
C51 COMPILER V8.05a   电压表                                                               07/30/2008 09:28:15 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 电压表
OBJECT MODULE PLACED IN 电压表.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE 电压表.c DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>           //52系列单片机定义文件
   2          #include<intrins.h>         //调用_nop_();延时函数用
   3          #define uchar unsigned char           //无符号字符
   4          #define uint unsigned int                //无符号整数
   5          sbit ALE=P2^3;
   6          sbit START=P2^4;
   7          sbit OE=P2^5;
   8          sbit EOC=P3^7;
   9          sbit DOT=P1^7;
  10          sbit AO=P2^6;
  11          sbit BO=P2^7;
  12          sbit CO=P3^5;
  13          sbit DO=P3^6;
  14          uchar code xs_7[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
  15          uchar code saomiao[4]={0xfe,0xfd,0xfb,0xf7};
  16          uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  17          uint data dis[5]={0x00,0x00,0x00,0x00,0x00};
  18          //
  19          //
  20          /**************1ms延时子函数*************/
  21          delay1ms(uint t)
  22          {
  23   1              uint i,j;
  24   1              for(i=0;i<t;i++)
  25   1              for(j=0;j<120;j++);   
  26   1      }
  27          //
  28          //
  29          /***********显示扫描子函数************/
  30          scan()
  31          {
  32   1              uchar k,n;
  33   1              int h;
  34   1              dis[3]=0x00;
  35   1              for(n=0;n<8;n++)
  36   1              {
  37   2                      dis[2]=ad_data[n]/51;
  38   2                      dis[4]=ad_data[n]%51;
  39   2                      dis[4]=dis[4]*10;
  40   2                      dis[1]=dis[4]/51;
  41   2                      dis[4]=dis[4]%51;
  42   2                      dis[4]=dis[4]*10;
  43   2                      dis[0]=dis[4]/51;
  44   2                      for(h=0;h<255;h++)
  45   2                      {
  46   3                              for(k=0;k<4;k++)
  47   3                              {
  48   4                                      P1=xs_7[dis[k]];
  49   4                                      if(k==2) {DOT=1;}
  50   4                                      P3=saomiao[k];delay1ms(1);P3=0xff;
  51   4                              }
  52   3                      }
  53   2                      dis[3]++;
  54   2              }  
  55   1      }  
C51 COMPILER V8.05a   电压表                                                               07/30/2008 09:28:15 PAGE 2   

  56          /*************通道选择********************/
  57          tongdao(uchar m)
  58          { 
  59   1              uchar k;
  60   1              int h;
  61   1              dis[3]=m;                    //通道
  62   1              dis[2]=ad_data[m]/51;       //通道数据
  63   1              dis[4]=ad_data[m]%51;
  64   1              dis[4]=dis[4]*10;
  65   1              dis[1]=dis[4]/51;
  66   1              dis[4]=dis[4]%51;
  67   1              dis[4]=dis[4]*10;
  68   1              dis[0]=dis[4]/51;
  69   1              if(dis[2]>3&&dis[1]>5)
  70   1              {
  71   2                      AO=1;
  72   2                      BO=1;
  73   2              }
  74   1              for(h=0;h<255;h++)
  75   1              {
  76   2                      for(k=0;k<4;k++)
  77   2                      {
  78   3                              P1=xs_7[dis[k]];
  79   3                              if(k==2) 
  80   3                              {
  81   4                                      DOT=1;
  82   4                              }
  83   3                              P3=saomiao[k];
  84   3                              delay1ms(1);
  85   3                              P3=0xff;
  86   3                      }
  87   2              }
  88   1      }
  89          
  90          
  91          /***********0809AD转换子函数*************/
  92          test()
  93          {
  94   1              uchar m;
  95   1              uchar s=0x00;
  96   1              P2=s;
  97   1              for(m=0;m<8;m++)
  98   1              {
  99   2                      ALE=1;
 100   2                      _nop_();
 101   2                      _nop_();
 102   2                      ALE=0;
 103   2                      START=1;
 104   2                      _nop_();
 105   2                      _nop_();
 106   2                      START=0;
 107   2                      _nop_();
 108   2                      _nop_();
 109   2                      _nop_();
 110   2                      _nop_();
 111   2                      while(EOC==0);
 112   2                      OE=1;
 113   2                      ad_data[m]=P0;
 114   2                      OE=0;
 115   2                      s++;
 116   2                      P2=s;
 117   2              }
C51 COMPILER V8.05a   电压表                                                               07/30/2008 09:28:15 PAGE 3   

 118   1              P2=0x00;
 119   1      }
 120          
 121          /***********主函数***********/
 122          main()
 123          {
 124   1              uchar i,j,n;
 125   1              int t=0;
 126   1              j=0;n=0;
 127   1              P0=0xff;
 128   1              P2=0x00;
 129   1              P1=0xff;
 130   1              P3=0xff;
 131   1              for(;;)
 132   1              {
 133   2                      test();
 134   2                      if(j==0)
 135   2                      { 
 136   3                              i=DO;                   /*p3^6*/
 137   3                              if(i==0) 
 138   3                              {
 139   4                                      tongdao(n);
 140   4                                      n++;
 141   4                              }
 142   3                              if(n>7) 
 143   3                              n=0;
 144   3                              tongdao(n);
 145   3                      }
 146   2                      else 
 147   2                      scan();
 148   2              
 149   2              }
 150   1              
 151   1              
 152   1      }
 153          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    496    ----
   CONSTANT SIZE    =     15    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18       9
   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 + -