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

📄 cap02.lst

📁 基于AT89C2051单片机的数字电容表设计。里面有源代码、protues仿真图
💻 LST
字号:
C51 COMPILER V8.02   CAP02                                                                 05/02/2008 00:37:01 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CAP02
OBJECT MODULE PLACED IN cap02.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE cap02.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //#include <reg51.h>
   2          #include <REG2051.H>
   3          //#include <intrins.h>
   4          
   5          unsigned char i,j,n,t,DispBuf[4];
   6          unsigned int cap;
   7          unsigned char code
   8          BitTab[4]={0xbf,0xdf,0xef,0xf7};//位驱动码
   9          unsigned char code
  10          DispTab[11]={0xfe,0x70,0xed,0xf9,0x73,0xdb,0xdf,0xf0,0xff,0xfb,0x40};//字形码
  11          //sbit P1_2=P1^2;
  12          //sbit P3_6=P3^6;
  13          
  14          main()         //主程序
  15          {       TMOD=0x11;//定时器T0、T1均工作于定时方式1
  16   1              TH1=0xec;
  17   1              TL1=0x78;//T1定时时间为5ms
  18   1              IE=0X88; //开中断
  19   1              TR1=1;   //开定时器T1
  20   1              P1_2=0;             //电容放电
  21   1              for(;;);  //无限循环,定时中断返回点
  22   1      }
  23          
  24          Timer1() interrupt 3  //定时中断服务程序
  25          {       TH1=0xec;
  26   1              TL1=0x78;
  27   1              t=BitTab[j];    //取位值
  28   1              P1=P1|0x78;     //P1.3~P1.6送1
  29   1              P1=P1&t;        //P1.3-P1.6输出取出的位值
  30   1          if(j==0 && DispBuf[j]==0)t=DispTab[10];//最高位为0时,取空格字形码
  31   1          else
  32   1              {
  33   2           t=DispBuf[j];   //取出待显示的数
  34   2           t=DispTab[t];   //取字形码
  35   2          }
  36   1              P3=t;           //字型码由P3输出显示
  37   1              //      if(j==1) P1_0=1;else P1_0=0;//设置小数点
  38   1              j++;            //j作为数码管的计数器,取值0-3,显示程序通过它确认显示哪个数码管
  39   1              if(j==4) j=0;
  40   1              n++;
  41   1              if(n==48)       //每过48个中断测一次电容量
  42   1              {       
  43   2                      n=0;
  44   2                      TH0=0;
  45   2                      TL0=0;
  46   2              
  47   2                      P1_2=1;             //电容开始充电
  48   2                      TR0=1;              //开定时器T0
  49   2                     //for(i=0;i>10000;i++) {_nop_();_nop_();_nop_();}
  50   2                      while (AOUT == 0);
  51   2                     //for(;AOUT == 0;);    //判断充电电压达到参考电压否
  52   2                      TR0=0;              //充电电压达到参考电压,关定时器T0
  53   2                      P1_2=0;             //电容放电
  54   2                      cap=TL0|(TH0<<8);   //取定时器T0中的数值
  55   2                      cap=cap-3;          //修正误差
C51 COMPILER V8.02   CAP02                                                                 05/02/2008 00:37:01 PAGE 2   

  56   2                      if(cap>=10000)
  57   2                      {
  58   3                              DispBuf[3]=10;
  59   3                              DispBuf[2]=10;
  60   3                              DispBuf[1]=10;
  61   3                              DispBuf[0]=1;   //超量程,最高位显示1,其余各位不显示(灭)
  62   3                      }
  63   2                      if(cap<10000)        //不超量程,取各位数值
  64   2                      {
  65   3                              DispBuf[3]=cap%10;//取个位数
  66   3                              cap=cap/10;
  67   3                              DispBuf[2]=cap%10;//取十位数
  68   3                              cap=cap/10;
  69   3                              DispBuf[1]=cap%10;//取百位数
  70   3                              DispBuf[0]=cap/10;//取千位数
  71   3                      }
  72   2              }
  73   1      }


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