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

📄 shumaguan4.lst

📁 串行口的设计
💻 LST
📖 第 1 页 / 共 3 页
字号:
 318   4                              }
 319   3              
 320   3                              if(kvalue1==0xe0) //确定是第几列
 321   3                              row=0;
 322   3                              else if(kvalue1==0xd0)
 323   3                                      row=1;
 324   3                                      else if(kvalue1==0xb0)
 325   3                                              row=2;
 326   3                                              else  if(kvalue1==0x70)
 327   3                                                       row=3;
 328   3                                                       else 
 329   3                                                       return 0;
 330   3                              P1=0xf0;
 331   3                              return keypadvalue[line][row];
 332   3                      }
 333   2              
 334   2              
 335   2              }
 336   1              P1=0xf0; 
 337   1              return 0;
 338   1      }       
 339          
 340          /**********************************************************************
 341          **函数功能:在数码管上显示数据                                                                           **
 342          **参数:整型数                                                                                                           **
 343          **返回:无                                                                                                                       **
 344          **********************************************************************/
 345          void display(int disnum)
 346          {
 347   1              int ge,shi,bai,qian,i,j;
 348   1              int num[5]={0,0,0,0,10};
 349   1              if(disnum<=9999)
 350   1              {
 351   2                      ge=disnum%10;
 352   2                      shi=(disnum%100)/10;
 353   2                      bai=(disnum/100)%10;
 354   2                      qian=disnum/1000;
 355   2                      num[0]=ge;
 356   2                      num[1]=shi;
 357   2                      num[2]=bai;
 358   2                      num[3]=qian;
 359   2                      if(qian!=0)
 360   2                      {
 361   3                              for(i=0;i<4;i++)
 362   3                              {
 363   4                                      
 364   4                                      P2=num_tab1[i];            //先送位码
 365   4                                      P0=num_tab2[num[i]];   //再送段码
C51 COMPILER V8.02   SHUMAGUAN4                                                            12/01/2006 21:14:03 PAGE 7   

 366   4                                      delay(1);
 367   4                              }
 368   3                      }
 369   2                      else
 370   2                      {
 371   3                              if(bai!=0)
 372   3                              {
 373   4                                      for(i=0;i<3;i++)
 374   4                                      {
 375   5                                              
 376   5                                              P2=num_tab1[i];
 377   5                                              P0=num_tab2[num[i]];
 378   5                                              delay(1);
 379   5                                      }
 380   4                              }
 381   3                              else
 382   3                              {
 383   4                                      if(shi!=0)
 384   4                                      {
 385   5                                              for(i=0;i<2;i++)
 386   5                                              {
 387   6                                                      
 388   6                                                      P2=num_tab1[i];
 389   6                                                      P0=num_tab2[num[i]];
 390   6                                                      delay(1);
 391   6                                              }
 392   5                                      }       
 393   4                                      else
 394   4                                      {
 395   5                                              for(i=0;i<1;i++)
 396   5                                              {
 397   6                                                      for(j=0;j<4;j++)
 398   6                                                      {
 399   7                                                              if(j==0)
 400   7                                                              {
 401   8                                                                      
 402   8                                                                      P2=num_tab1[j];
 403   8                                                                      P0=num_tab2[num[i]];
 404   8                                                                      delay(1);
 405   8                                                              }
 406   7                                                              else
 407   7                                                              {
 408   8                                                                      
 409   8                                                                      P2=num_tab1[j];
 410   8                                                                      P0=num_tab2[num[4]];
 411   8                                                                      delay(1);
 412   8                                                              }
 413   7                                                      }
 414   6                                              }
 415   5                                      }
 416   4                              }
 417   3                      }
 418   2              }
 419   1              else
 420   1              ;
 421   1      }
 422          /**********************************************************************
 423          **函数功能:延时时间                                                                                             **
 424          **参数:整型数                                                                                                           **
 425          **返回:无                                                                                                                       **
 426          **********************************************************************/ 
 427          void delay(unsigned int time)
C51 COMPILER V8.02   SHUMAGUAN4                                                            12/01/2006 21:14:03 PAGE 8   

 428          {
 429   1              int i;
 430   1              int k;
 431   1              for(i=0;i<time;i++)
 432   1              for(k=0;k<100;k++);
 433   1      }
 434          
 435          /**********************************************************************
 436          **函数功能:串口接收中断中断函数,接收数据                                                       **
 437          **参数:无                                                                                                                       **
 438          **返回:无                                                                                                                       **
 439          **********************************************************************/ 
 440          void Int_Rx(void) interrupt 4 using 2                                                   
 441          
 442          {
 443   1              
 444   1                      if(RI)
 445   1                      {
 446   2                              RI=0;
 447   2                              flag=1;
 448   2                              keyvalue=SBUF;
 449   2                      
 450   2      
 451   2                      }
 452   1                      if(TI)
 453   1                      {
 454   2                              TI=0;
 455   2                              if(*TX232!='\0')
 456   2                              {
 457   3                                      TX232++;
 458   3                                      SBUF=*TX232;
 459   3                              }
 460   2      
 461   2                      }
 462   1      
 463   1                      
 464   1              
 465   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1151    ----
   CONSTANT SIZE    =    111    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14      27
   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 + -