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

📄 second.lst

📁 《单片机c程序设计及应用实列》一书的源代
💻 LST
📖 第 1 页 / 共 2 页
字号:
 205   1      XC0028:
 206   1      #pragma endasm
 207   1      }
 208          
 209          void display(unsigned char i,unsigned char num)
 210          {
 211   1              if(num >= 0 && num <=9)
 212   1              {switch(i)
 213   2              { case 0:P2= LedSelect0 | num;  
 214   3              //LedSelect0的高四位为选择第0个数码管的逻辑,低四位则为数码管显示的数字。
 215   3              break;
 216   3                case 1:P2= LedSelect1 | num;
 217   3                        //LedSelect1的高四位为选择第1个数码管的逻辑,低四位则为数码管显示的数字。
 218   3                        break;
 219   3                case 2:P2= LedSelect2 | num;
 220   3                        //LedSelect2的高四位为选择第2个数码管的逻辑,低四位则为数码管显示的数字。
 221   3                        break;
 222   3                case 3:P2= LedSelect3 | num;
 223   3                        //LedSelect3的高四位为选择第3个数码管的逻辑,低四位则为数码管显示的数字。
 224   3                        break;
 225   3                case 4:P2= LedSelect4 | num;
 226   3                        //LedSelect4的高四位为选择第4个数码管的逻辑,低四位则为数码管显示的数字。
 227   3                        break;
 228   3                case 5:P2= LedSelect5 | num;
 229   3                        //LedSelect5的高四位为选择第5个数码管的逻辑,低四位则为数码管显示的数字。
 230   3                        break;
 231   3                default:break;
 232   3              }
 233   2              }
 234   1      }
 235          
 236          unsigned char keyscan()
 237          {
 238   1              PinDrvKey1=TRUE;
 239   1              if(PinScanKey1==TRUE)
 240   1                      PinLamp=FALSE;
 241   1              PinSpeaker=FALSE;
C51 COMPILER V6.23a  SECOND                                                                09/08/2003 17:00:53 PAGE 5   

 242   1              delay(DELAY_VALUE);
 243   1              PinLamp=TRUE;
 244   1              PinSpeaker=TRUE;
 245   1              return 1;
 246   1              if(PinScanKey2==TRUE)
 247   1                      PinLamp=FALSE;
 248   1              PinSpeaker=FALSE;
 249   1              delay(DELAY_VALUE);
 250   1              PinLamp=TRUE;
 251   1              PinSpeaker=TRUE;
 252   1              return 5;
 253   1              if(PinScanKey1==TRUE)
 254   1                      PinLamp=FALSE;
 255   1              PinSpeaker=FALSE;
 256   1              delay(DELAY_VALUE);
 257   1              PinLamp=TRUE;
 258   1              PinSpeaker=TRUE;
 259   1              return 9;
 260   1              if(PinScanKey1==TRUE)
 261   1                      PinLamp=FALSE;
 262   1              PinSpeaker=FALSE;
 263   1              delay(DELAY_VALUE);
 264   1              PinLamp=TRUE;
 265   1              PinSpeaker=TRUE;
 266   1              return 12;
 267   1              PinDrvKey1=FALSE;       //扫描第一列
 268   1              PinDrvKey2=TRUE;
 269   1              if(PinScanKey1==TRUE)
 270   1                      PinLamp=FALSE;
 271   1              PinSpeaker=FALSE;
 272   1              delay(DELAY_VALUE);
 273   1              PinLamp=TRUE;
 274   1              PinSpeaker=TRUE;
 275   1              return 2;
 276   1              if(PinScanKey2==TRUE)
 277   1                      PinLamp=FALSE;
 278   1              PinSpeaker=FALSE;
 279   1              delay(DELAY_VALUE);
 280   1              PinLamp=TRUE;
 281   1              PinSpeaker=TRUE;
 282   1              return 6;
 283   1              if(PinScanKey1==TRUE)
 284   1                      PinLamp=FALSE;
 285   1              PinSpeaker=FALSE;
 286   1              delay(DELAY_VALUE);
 287   1              PinLamp=TRUE;
 288   1              PinSpeaker=TRUE;
 289   1              return 0;
 290   1              if(PinScanKey1==TRUE)
 291   1                      PinLamp=FALSE;
 292   1              PinSpeaker=FALSE;
 293   1              delay(DELAY_VALUE);
 294   1              PinLamp=TRUE;
 295   1              PinSpeaker=TRUE;
 296   1              return 13;
 297   1              PinDrvKey2=FALSE;       //扫描第二列
 298   1              PinDrvKey3=TRUE;
 299   1              if(PinScanKey1==TRUE)
 300   1                      PinLamp=FALSE;
 301   1              PinSpeaker=FALSE;
 302   1              delay(DELAY_VALUE);
 303   1              PinLamp=TRUE;
C51 COMPILER V6.23a  SECOND                                                                09/08/2003 17:00:53 PAGE 6   

 304   1              PinSpeaker=TRUE;
 305   1              return 3;
 306   1              if(PinScanKey2==TRUE)
 307   1                      PinLamp=FALSE;
 308   1              PinSpeaker=FALSE;
 309   1              delay(DELAY_VALUE);
 310   1              PinLamp=TRUE;
 311   1              PinSpeaker=TRUE;
 312   1              return 7;
 313   1              if(PinScanKey1==TRUE)
 314   1                      PinLamp=FALSE;
 315   1              PinSpeaker=FALSE;
 316   1              delay(DELAY_VALUE);
 317   1              PinLamp=TRUE;
 318   1              PinSpeaker=TRUE;
 319   1              return 10;
 320   1              if(PinScanKey1==TRUE)
 321   1                      PinLamp=FALSE;
 322   1              PinSpeaker=FALSE;
 323   1              delay(DELAY_VALUE);
 324   1              PinLamp=TRUE;
 325   1              PinSpeaker=TRUE;
 326   1              return 14;
 327   1              PinDrvKey3=FALSE;       //扫描第三列
 328   1              PinDrvKey4=TRUE;
 329   1              if(PinScanKey1==TRUE)
 330   1                      PinLamp=FALSE;
 331   1              PinSpeaker=FALSE;
 332   1              delay(DELAY_VALUE);
 333   1              PinLamp=TRUE;
 334   1              PinSpeaker=TRUE;
 335   1              return 4;
 336   1              if(PinScanKey2==TRUE)
 337   1                      PinLamp=FALSE;
 338   1              PinSpeaker=FALSE;
 339   1              delay(DELAY_VALUE);
 340   1              PinLamp=TRUE;
 341   1              PinSpeaker=TRUE;
 342   1              return 8;
 343   1              if(PinScanKey1==TRUE)
 344   1                      PinLamp=FALSE;
 345   1              PinSpeaker=FALSE;
 346   1              delay(DELAY_VALUE);
 347   1              PinLamp=TRUE;
 348   1              PinSpeaker=TRUE;
 349   1              return 11;
 350   1              if(PinScanKey1==TRUE)
 351   1                      PinLamp=FALSE;
 352   1              PinSpeaker=FALSE;
 353   1              delay(DELAY_VALUE);
 354   1              PinLamp=TRUE;
 355   1              PinSpeaker=TRUE;
 356   1              return 15;
 357   1              PinDrvKey3=FALSE;       //扫描第四列
 358   1              return 16;
 359   1      }
 360          
 361          void updatee()
 362          {
 363   1              if(s00==9)      //如果10ms位需要进位,则进入语句
 364   1              {
 365   2                      s00=0;
C51 COMPILER V6.23a  SECOND                                                                09/08/2003 17:00:53 PAGE 7   

 366   2                      if(s01==9)      //如果100ms位需要进位,则进入语句
 367   2                      {
 368   3                              s01=0;
 369   3                              if(s0==9)       //如果1sec位需要进位,则进入语句
 370   3                              {
 371   4                                      s0=0;
 372   4                                      if(s1==5)       //如果10sec位需要进位,则进入语句
 373   4                                      {
 374   5                                              s1=0;
 375   5                                              if(m0==9)
 376   5                                              {m0=0;
 377   6                                              if(m1==5)m1=0;
 378   6                                              else m1+=1;
 379   6                                              }
 380   5                                              else m0+=1;
 381   5                                      }
 382   4                                      else s1+=1;
 383   4                              }
 384   3                              else s0+=1;
 385   3                      }
 386   2                      else s01+=1;
 387   2              }
 388   1              else s00+=1;
 389   1              display(0,s00);
 390   1              delay(DELAY_VALUE);
 391   1              display(1,s01);
 392   1              delay(DELAY_VALUE);
 393   1              display(2,s0);
 394   1              delay(DELAY_VALUE);
 395   1              display(3,s1);
 396   1              delay(DELAY_VALUE);
 397   1              display(4,m0);
 398   1              delay(DELAY_VALUE);
 399   1              display(5,m1);
 400   1              delay(DELAY_VALUE); //以上语句则在数码管上显示各个数字
 401   1              
 402   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    646    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       4
   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 + -