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

📄 3.lst

📁 有线 无线 双模式八路抢答器 使用无线收发模块 编码解码芯片
💻 LST
字号:
C51 COMPILER V7.06   3                                                                     05/12/2006 21:18:54 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 3
OBJECT MODULE PLACED IN 3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3.c

stmt level    source

   1                                  /**********************************/
   2                                  /*有线/无线双模式多功能八路抢答器 */
   3                                  /*    设计:陈金玉 吴振铨         */
   4                                  /*     广东工业大学信息工程学院   */
   5                                  /*         04应用电子2班          */
   6                                  /*         2006年4月25日          */
   7                                  /**********************************/
   8          #include"reg51.h"
   9          unsigned char i;//显示抢答路数
  10          int k ,s;
  11          sbit set=P3^7;
  12          sbit beeper=P3^6;
  13          sbit time=P3^4;
  14          sbit en5027=P3^3;
  15          sbit dp=P0^6;
  16          sbit w1=P2^7;
  17          sbit w2=P2^6;
  18          sbit w3=P2^5;
  19          sbit w4=P2^4;
  20          unsigned char code table[]={
  21                  0xC0,/*0*/
  22                  0xF9,/*1*/
  23                  0xA4,/*2*/
  24                  0xB0,/*3*/
  25                  0x99,/*4*/
  26                  0x92,/*5*/
  27                  0x82,/*6*/
  28                  0xF8,/*7*/
  29                  0x80,/*8*/
  30                  0x90,/*9*/};
  31          void init(void);
  32          void t0init(void);
  33          void mode1(void);//有线模式
  34          void mode2(void);//无线模式
  35          unsigned char mode1readkeys(void);
  36          unsigned char mode2readkeys(void);
  37          void display1(void);
  38          void display2(void);
  39          void displaytime(int k);
  40          time0()interrupt 1 using 1//T0中断服务程序(50ms)
  41          { unsigned char a;
  42   1        a++;
  43   1        TH0=-50000/256;
  44   1        TL0=-50000%256;
  45   1        if(a>20)
  46   1           { 
  47   2             a=0;
  48   2             k++;
  49   2            }
  50   1               if(k>99)
  51   1               k=0;
  52   1      }
  53          
  54          void t0init(void)//T0初始化
  55          {TMOD=0x61;
C51 COMPILER V7.06   3                                                                     05/12/2006 21:18:54 PAGE 2   

  56   1      TH0=-50000/256;
  57   1      TL0=-50000%256;
  58   1      TH1=-10;
  59   1      TH0=-10;
  60   1      EA=1;
  61   1      ET0=1;
  62   1      TR0=1;
  63   1      
  64   1      }
  65          void delay(void)//延时
  66          {
  67   1      for(s=0;s<700;s++)
  68   1      ;
  69   1      }
  70          void displaytime(int k)//LED显示时间
  71          {unsigned char n,m;
  72   1       w3=0;
  73   1       n=k%10;
  74   1       P0=table[n];
  75   1       delay();
  76   1       delay();
  77   1       w3=1;
  78   1       delay();
  79   1       w4=0;
  80   1       m=k/10;
  81   1       P0=table[m];
  82   1       delay();
  83   1       delay();
  84   1       w4=1;
  85   1      delay();
  86   1      }
  87          void clock(void)//
  88          {  w1=1;
  89   1         w2=1;
  90   1        t0init();
  91   1        displaytime( k);
  92   1       }
  93          void main(void)
  94          {
  95   1      
  96   1        init();
  97   1        if(set==1)//默认为有线模式
  98   1           mode2();
  99   1        else
 100   1           mode1();
 101   1      }
 102          
 103          void init(void)//初始化
 104          {
 105   1      en5027=1;
 106   1      set=0;
 107   1      P2=0xF0;
 108   1      P0=0xFF;
 109   1      P1=0xFF;
 110   1      w1=1;
 111   1      w2=1;
 112   1      w3=1;
 113   1      w4=1;
 114   1      i=0;
 115   1      }
 116          /*unsigned char mode1readkeys(void)
 117          {
C51 COMPILER V7.06   3                                                                     05/12/2006 21:18:54 PAGE 3   

 118            unsigned char j;
 119            int k;
 120            P1=0xFE;
 121            for(j=0;j<3;j++)
 122             {
 123               if((P1&0xF0)!=0xF0)
 124                          {
 125                         switch (P1)
 126                               {
 127                            case 0xEE:
 128                            i=1;
 129                            break;
 130                        case 0xDE:
 131                            i=2;
 132                            break; 
 133                        case 0xBE:
 134                            i=3;
 135                            break;
 136                        case 0xED:
 137                            i=4;
 138                            break;
 139                        case 0xDD:
 140                        i=8;
 141                            break;
 142                        case 0xBD:
 143                            i=7;
 144                            break;
 145                        case 0xEB:
 146                            i=6;
 147                            break;
 148                        case 0xDB:
 149                            i=5;
 150                            break;
 151                        default:
 152                        return 0;
 153                        break;
 154                       }
 155                     return i;
 156                   }
 157                   k=P1;
 158                   k=~k;
 159                   k=k<<1;
 160                   k=~k;
 161               P1=k;
 162             }
 163          }*/
 164          unsigned char mode1readkeys(void)//模式1读取按键
 165          {
 166   1        P1=0xFE;
 167   1           if((P1&0xFE)!=0xFE)
 168   1                      {
 169   2                     switch (P1)
 170   2                           {
 171   3                        case 0xEE:
 172   3                        i=1;
 173   3                        break;
 174   3                    case 0xDE:
 175   3                        i=2;
 176   3                        break; 
 177   3                    case 0xBE:
 178   3                        i=3;
 179   3                    break;
C51 COMPILER V7.06   3                                                                     05/12/2006 21:18:54 PAGE 4   

 180   3                    default:
 181   3                    return 0;
 182   3                    break;
 183   3                   }
 184   2                 return i;
 185   2               }
 186   1         P1=0xFD;
 187   1           if((P1&0xFD)!=0xFD)
 188   1                      {
 189   2                     switch (P1)
 190   2                           {
 191   3                        case 0xED:
 192   3                        i=4;
 193   3                        break;
 194   3                    case 0xDD:
 195   3                        i=8;
 196   3                        break; 
 197   3                    case 0xBD:
 198   3                        i=7;
 199   3                    break;
 200   3                    default:
 201   3                    return 0;
 202   3                    break;
 203   3                   }
 204   2                 return i;
 205   2               }
 206   1           P1=0xFB;
 207   1           if((P1&0xFB)!=0xFB)
 208   1                      {
 209   2                     switch (P1)
 210   2                           {
 211   3                        case 0xEB:
 212   3                        i=6;
 213   3                        break;
 214   3                    case 0xDB:
 215   3                        i=5;
 216   3                        break; 
 217   3                    default:
 218   3                    return 0;
 219   3                    break;
 220   3                   }
 221   2                 return i;
 222   2               }
 223   1       
 224   1      }
 225          unsigned char mode2readkeys(void)//模式2读取按键
 226          {
 227   1        unsigned char n;
 228   1        n=P2;
 229   1        n=(n&0x0F);
 230   1        i=n;
 231   1        return i;
 232   1      }
 233          void display1(void)
 234          {
 235   1       w1=0;
 236   1       P0=table[i];
 237   1      }
 238          void display2(void)
 239          {
 240   1       w2=0;
 241   1       P0=table[i];
C51 COMPILER V7.06   3                                                                     05/12/2006 21:18:54 PAGE 5   

 242   1      }
 243          void mode1(void)//模式1
 244          {
 245   1       w1=0;
 246   1       dp=0;
 247   1       i=0;
 248   1       time=0;
 249   1         if(time==1)
 250   1             while(1)
 251   1                        {
 252   2                       
 253   2                     clock();
 254   2                         }
 255   1       while(i==0||i>8)
 256   1            { 
 257   2             mode1readkeys();
 258   2                 }
 259   1       P1=0xFF;
 260   1       beeper=0;
 261   1       display1();
 262   1       beeper=0;
 263   1        while(1)
 264   1         {
 265   2          unsigned int t;
 266   2          for(t=0;t<20000;t++)
 267   2             {
 268   3              if(t>15000)
 269   3                  beeper=1;
 270   3               else
 271   3                beeper=0;
 272   3               }
 273   2           }
 274   1      }
 275          void mode2(void)//模式2
 276          {
 277   1       en5027=0;//打开无线接收
 278   1       w2=0;
 279   1       dp=0;                                                                                                    
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                    
 280   1       i=0;
 281   1       time=0;
 282   1         if(time==1)
 283   1             while(1)
 284   1                        {
 285   2                       
 286   2                     clock();
C51 COMPILER V7.06   3                                                                     05/12/2006 21:18:54 PAGE 6   

 287   2                         }
 288   1       while(!(i==1||i==2||i==4||i==8))
 289   1            { 
 290   2             mode2readkeys();
 291   2                 }
 292   1       P1=0xFF;
 293   1       beeper=0;
 294   1       if(i==4)
 295   1          i=3;
 296   1       if(i==8)
 297   1          i=4;
 298   1       display2();
 299   1       beeper=0;
 300   1       en5027=1;//关闭无线接收
 301   1       while(1)
 302   1         {
 303   2           unsigned int t;
 304   2          for(t=0;t<20000;t++)
 305   2              {
 306   3              if(t>15000)
 307   3                  beeper=1;
 308   3               else
 309   3                beeper=0;
 310   3               }
 311   2           }
 312   1       }
 313          
 314          
 315          
 316          
 317          
 318          


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