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

📄 wanneng.lst

📁 用4*4按键和数码管做的计算器
💻 LST
字号:
C51 COMPILER V7.06   WANNENG                                                               12/21/2007 19:20:04 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE WANNENG
OBJECT MODULE PLACED IN wanneng.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE wanneng.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          #include<keyscan.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          uchar key;
   6          uchar code disp[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
   7          uchar code disp_dot[11]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xc0};
   8          unsigned long dat1=0,dat2=0,dat3=0;
   9          //////////////////////
  10          
  11          int0()interrupt 0 using 0
  12           {      uchar temp;  
  13   1          EA=0;  //关中断
  14   1               
  15   1              switch(keyaction())             
  16   1               {
  17   2              case 0:  { dat1=dat1*10+0; dat3=dat1;  }        break;
  18   2                       
  19   2      
  20   2                               
  21   2              case 1:   {dat1=dat1*10+1; dat3=dat1; }     break;
  22   2                        
  23   2      
  24   2                               
  25   2              case 2:   {dat1=dat1*10+2;dat3=dat1;}           break;
  26   2                       
  27   2      
  28   2                               
  29   2              case 3:   {dat1=dat1*10+3;dat3=dat1;}       break;
  30   2                        
  31   2      
  32   2                         
  33   2              case 4:   {dat1=dat1*10+4;dat3=dat1;}       break;
  34   2                       
  35   2                              
  36   2              case 5:   {dat1=dat1*10+5;dat3=dat1;}           break;
  37   2                        
  38   2      
  39   2                               
  40   2              case 6:   {dat1=dat1*10+6;dat3=dat1;}       break;
  41   2                        
  42   2      
  43   2                              
  44   2              case 7:   {dat1=dat1*10+7;dat3=dat1;}       break;
  45   2                       
  46   2      
  47   2                              
  48   2              case 8:   {dat1=dat1*10+8;dat3=dat1;}       break;
  49   2                       
  50   2      
  51   2                              
  52   2              case 9:  { dat1=dat1*10+9;dat3=dat1;}       break;
  53   2                       
  54   2      
  55   2                              
C51 COMPILER V7.06   WANNENG                                                               12/21/2007 19:20:04 PAGE 2   

  56   2               case 'c':      {dat1=0;dat2=0;dat3=0;break;}
  57   2               case '#':  break;                                                                                  
  58   2      
  59   2               case '+': {dat3=0;dat2=dat1;dat1=0;temp='+';dat3=dat2;}        break;
  60   2               case '-': {dat3=0;dat2=dat1;dat1=0;temp='-';dat3=dat2;}        break;
  61   2               case '*': {dat3=0;dat2=dat1;dat1=0;temp='*';dat3=dat2;}        break;
  62   2               case '/': {dat3=0;dat2=dat1;dat1=0;temp='/';dat3=dat2;}        break;
  63   2               case '=': { dat3=0;
  64   3                          switch(temp)
  65   3                                    {case '+':dat3=dat2+dat1;break;
  66   4                                     case '-':dat3=dat2-dat1;break;
  67   4                                         case '*':dat3=dat2*dat1;break;
  68   4                                         case '/':dat3=dat2/dat1;break;
  69   4                                         }
  70   3      
  71   3                                      }  break;
  72   2      
  73   2                }
  74   1      
  75   1              EA=1;   //开中断
  76   1      
  77   1       
  78   1       }
  79          
  80          
  81            /*
  82          display_4(uint dat, uchar i)
  83          {
  84              P0=0;
  85              P0=disp[dat/1000]; //4位
  86                  P2=3+4*i;
  87                  Delay1ms(2);
  88                  P0=0;
  89              P0=disp[dat/100%10]; //3位
  90                  P2=2+4*i;
  91                  Delay1ms(2);
  92                  P0=0;
  93              P0=disp[dat/10%10]; //2位
  94                  P2=1+4*i;
  95                  Delay1ms(2);
  96                  P0=0;                    
  97              P0=disp[dat%10]; //1位
  98                  P2=0+4*i;
  99                  Delay1ms(2);
 100          }  */
 101          display_8(long dat)             ///定义八位数12345678
 102            { P0=0;
 103   1          P0=disp[dat/10000000]; //8位
 104   1              P2=7;
 105   1              Delay1ms(1);
 106   1              P0=0;
 107   1          P0=disp[dat/1000000%10]; //7位
 108   1              P2=6;
 109   1              Delay1ms(1);
 110   1              P0=0;
 111   1          P0=disp[dat/100000%10]; //6位
 112   1              P2=5;
 113   1              Delay1ms(1);
 114   1              P0=0;                    
 115   1          P0=disp[dat/10000%10]; //5位
 116   1              P2=4;
 117   1              Delay1ms(1);
C51 COMPILER V7.06   WANNENG                                                               12/21/2007 19:20:04 PAGE 3   

 118   1              P0=0;
 119   1          P0=disp[dat/1000%10]; //4位
 120   1              P2=3;
 121   1              Delay1ms(1);
 122   1              P0=0;
 123   1          P0=disp[dat/100%10]; //3位
 124   1              P2=2;
 125   1              Delay1ms(1);
 126   1              P0=0;
 127   1          P0=disp[dat/10%10]; //2位
 128   1              P2=1;
 129   1              Delay1ms(1);
 130   1              P0=0;                    
 131   1          P0=disp[dat%10]; //1位
 132   1              P2=0;
 133   1              Delay1ms(1);
 134   1        } 
 135             
 136            
 137             
 138             
 139             
 140          
 141          main()
 142          {  
 143   1                EA=1; /*开中断*/
 144   1                IT0=1;
 145   1            EX0=1;
 146   1          /*允许外部中断1*/
 147   1                P1=0xf0;
 148   1          
 149   1               while(1)
 150   1              {  P1=0xf0;
 151   2      //       display_4(key,0);      ///第0块显示屏
 152   2      //       display_4(1234,1);  /// 第一块显示屏
 153   2               display_8(dat3);
 154   2              
 155   2      
 156   2                
 157   2         }
 158   1      
 159   1      
 160   1              
 161   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1304    ----
   CONSTANT SIZE    =     22    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13       5
   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 + -