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

📄 08.lst

📁 是个简单的八路抢答器
💻 LST
字号:
C51 COMPILER V7.50   08                                                                    05/30/2008 22:38:37 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 08
OBJECT MODULE PLACED IN 08.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 08.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          code unsigned char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x86};
   3          unsigned char c;
   4          unsigned char time;
   5          unsigned char keynum;
   6           unsigned char i;
   7          sbit speak=P3^7;
   8          bit keyflag;
   9          bit key=1;
  10          bit b=1;
  11          
  12          void delay()
  13          {unsigned int m,n;
  14   1        for(m=0;m<2;m++)
  15   1         {
  16   2           for(n=0;n<200;n++);
  17   2              
  18   2                 }
  19   1        }
  20          
  21          void time0() interrupt 1 using 2
  22          {
  23   1       if(c==20)
  24   1       { c=1;
  25   2         if(time)
  26   2         {
  27   3          --time;
  28   3           }
  29   2         else
  30   2         { 
  31   3           time=0X00;
  32   3           keyflag=0;
  33   3           for(i=0;i<50;i++)
  34   3             {speak=~speak;
  35   4               delay();}
  36   3           
  37   3           TR0=0;
  38   3           }
  39   2          P1=seg[time/10];
  40   2          P0=seg[time%10];
  41   2        }
  42   1       else
  43   1       ++c;
  44   1       
  45   1        TH0=15536/256;//T0初值,50ms中断一次
  46   1        TL0=15536%256;
  47   1       }
  48          
  49          
  50          void int0() interrupt 0 using 2
  51          { 
  52   1          
  53   1         keyflag=1;
  54   1         b=0;
  55   1         time=30;
C51 COMPILER V7.50   08                                                                    05/30/2008 22:38:37 PAGE 2   

  56   1        for(i=0;i<50;i++)
  57   1             {speak=~speak;
  58   2               delay();}
  59   1        
  60   1       P1=seg[time/10];
  61   1       P0=seg[time%10];
  62   1        TR0=1;
  63   1       
  64   1        }
  65          
  66          
  67          
  68          void main()
  69          {
  70   1       unsigned char keystatus;
  71   1      
  72   1       speak=0;
  73   1       TCON=0X00;
  74   1       TMOD=0X01;
  75   1       TH0=15536/256;//T0初值,50ms中断一次
  76   1        TL0=15536%256;
  77   1       IE=0X83;
  78   1      
  79   1       while(1)
  80   1       {
  81   2        while(keyflag){
  82   3        P2=0Xff;
  83   3        keystatus=P2; 
  84   3        if(~keystatus)
  85   3        {
  86   4          for(i=0;i<50;i++)
  87   4             {speak=~speak;
  88   5               delay();}
  89   4         switch (keystatus){
  90   5           case 0xfe:keynum=1; break;
  91   5           case 0xfd:keynum=2; break;
  92   5           case 0xfb:keynum=3; break;
  93   5           case 0xf7:keynum=4; break;
  94   5           case 0xef:keynum=5; break;
  95   5           case 0xdf:keynum=6; break;
  96   5           case 0xbf:keynum=7; break;
  97   5           case 0x7f:keynum=8; break; 
  98   5           default : keynum=0;break;     
  99   5             }////switch
 100   4           if(keynum)
 101   4          { TR0=0;
 102   5            keyflag=0;
 103   5            
 104   5            P1=seg[keynum/10];
 105   5            P0=seg[keynum%10];
 106   5             }////////if(keynum)///////////////////
 107   4           }/////////if(~keystatus)////////////////
 108   3          }/////while(ketflag)
 109   2              while((key=1)&&(b))
 110   2      {
 111   3        P2=0Xff;
 112   3        keystatus=P2; 
 113   3        if(~keystatus)
 114   3        {
 115   4          for(i=0;i<50;i++)
 116   4             {speak=~speak;
 117   5               delay();}
C51 COMPILER V7.50   08                                                                    05/30/2008 22:38:37 PAGE 3   

 118   4         switch (keystatus){
 119   5           case 0xfe:keynum=1; break;
 120   5           case 0xfd:keynum=2; break;
 121   5           case 0xfb:keynum=3; break;
 122   5           case 0xf7:keynum=4; break;
 123   5           case 0xef:keynum=5; break;
 124   5           case 0xdf:keynum=6; break;
 125   5           case 0xbf:keynum=7; break;
 126   5           case 0x7f:keynum=8; break; 
 127   5           default : keynum=0;break;     
 128   5             }////switch
 129   4           if(keynum)
 130   4          { TR0=0;
 131   5            keyflag=0;
 132   5            
 133   5            P1=seg[10];
 134   5            P0=seg[keynum%10];
 135   5             }////////if(keynum)///////////////////
 136   4           }/////////if(~keystatus)////////////////
 137   3          }
 138   2        }////while(1)
 139   1       }/////mian
 140          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    504    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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