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

📄 endall.lst

📁 用0809 和单片机开发的一个电要表的程序为共阳数码管显示
💻 LST
字号:
C51 COMPILER V7.06   ENDALL                                                                01/09/2008 23:50:13 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ENDALL
OBJECT MODULE PLACED IN endall.OBJ
COMPILER INVOKED BY: D:\Xp\KEIL\C51\BIN\C51.EXE endall.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          
   3          
   4          unsigned char dispcode[]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}
             -;
   5          unsigned char L0=0;
   6          unsigned char L1=0;
   7          unsigned char L2=0;
   8          unsigned char L3=0;
   9          unsigned char T0count=0;
  10          bit flag=0;
  11          
  12          /*************************************
  13                  程序及中断初始化
  14          ************************************/
  15          void    mcu_int(void)
  16                  {
  17   1                      TMOD=0x1D;      //T1为16位计时器模式,T0为16位计数器模式
  18   1      
  19   1                      TH1=0x3C;
  20   1                      TL1=0xB0;       //初值,产生50ms中断
  21   1                      TH0=0x00;
  22   1                      TL0=0x00;       //计数初值
  23   1      
  24   1                      EA=1;   //开放所有中断
  25   1                      ET1=1;  //允许T1中断
  26   1                      ET0=1;  //允许T0中断
  27   1                      
  28   1                      TR0=1;
  29   1                      TR1=1;  //开始定时/计数
  30   1              }
  31          
  32          void delay(int j)               
  33            {
  34   1            while (j!=0)
  35   1              {  
  36   2                              unsigned char i;
  37   2                      for(i=100;i>0;i--);
  38   2                              j--;
  39   2                      }
  40   1          
  41   1      }
  42          /***********************************
  43                  数码管显示
  44          ***********************************/
  45          void    show(void)
  46                  {
  47   1                      P2=0x01;P0=dispcode[L0];                        //L1为个位显示数字0x01,0x02,0x04,0x08
  48   1                      delay(1);    
  49   1              P2=0x02;P0=dispcode[L1];
  50   1              delay(1);   
  51   1              P2=0x04;P0=dispcode[L2];
  52   1              delay(1);
  53   1              P2=0x08;P0=dispcode[L3];
  54   1              delay(1); 
C51 COMPILER V7.06   ENDALL                                                                01/09/2008 23:50:13 PAGE 2   

  55   1              }
  56          
  57          
  58          /*****************************
  59                  对计得的数进行处理,返回FX及显示关键字LX
  60          ****************************/
  61          unsigned long int FX;
  62          void    process()
  63                  {
  64   1                      FX=T0count*65536+TH0*256+TL0;
  65   1      
  66   1                      if(FX>3500&&FX<=8000)           //以下两个 if语句 为修正所测频率
  67   1                      {
  68   2                              FX=FX-1;
  69   2                      }
  70   1      
  71   1              if(FX>8000&&FX<=12000)
  72   1                      {
  73   2                                       FX=FX-1.3;                     
  74   2                      }
  75   1                      if(FX>9999)
  76   1                      FX=FX/1000;
  77   1                  L0=(FX%10)/1;               //L1为个位显示的数字值//
  78   1              L1=(FX%100)/10;           //L2为十位显示的数字值//        
  79   1                  L2=(FX%1000)/100;         //L3为百位显示的数字值//        
  80   1              L3=(FX%10000)/1000;       //L4为千位显示的数字值//       
  81   1                      
  82   1              }
  83          main()
  84                  {
  85   1                      mcu_int();
  86   1                      while(1)
  87   1                              {
  88   2      
  89   2                                      if(flag==1)
  90   2                                              {
  91   3                                                      process();
  92   3                                                      TH0=0x00;
  93   3                                                      TL0=0x00;
  94   3                                                      flag=0;
  95   3                                              }
  96   2                                      show();
  97   2      /*
  98   2              P2=0x01;P0=dispcode[10];
  99   2                              delay(2); 
 100   2              P2=0x02;P0=dispcode[11];
 101   2                              delay(2); 
 102   2              P2=0x04;P0=dispcode[12];
 103   2                              delay(2); 
 104   2              P2=0x08;P0=dispcode[13];
 105   2                              delay(2); 
 106   2      */
 107   2                              }
 108   1              }
 109          
 110          void Timer0() interrupt 1 using 0
 111                  {
 112   1                      TH0=0x00;
 113   1                      TL0=0x00;
 114   1                      T0count++;      
 115   1              }
 116          unsigned char Time_50ms;
C51 COMPILER V7.06   ENDALL                                                                01/09/2008 23:50:13 PAGE 3   

 117          void Timer1() interrupt 3 using 1
 118                  {
 119   1                      TH1=0x3C;
 120   1                      TL1=0xB0;
 121   1                      Time_50ms++;
 122   1                      if(Time_50ms==20)
 123   1                              {
 124   2                                      Time_50ms=0;
 125   2                                      flag=1;
 126   2      //      P2=0x01;P0=dispcode[10];
 127   2                              }
 128   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    524    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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