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

📄 main.lst

📁 PDIUSBD12 firmware USB communication C51 real timer and UART
💻 LST
📖 第 1 页 / 共 2 页
字号:
 245   2                      //printf("call stander request handler\n");
 246   2                      (* StandardDeviceRequest[req])();
 247   2              }
 248   1              else if(type==0x40){
 249   2                      //printf("call vendor request handler\n");
 250   2                      (*VendorDeviceRequest[req])();
 251   2              }else {
 252   2                      //printf("not stander request\n");
 253   2                      stall_ep0();
 254   2                      }
 255   1      }
 256          
 257          
 258          void delay(unsigned char delay_time)
 259          {
 260   1              for(;delay_time>0;delay_time--){}
 261   1      }
 262          
 263          
 264          void d12_disconnect_usb()
 265          {
 266   1              d12_set_mode(D12_NOLAZYCLOCK|D12_CLOCKRUNING,D12_CLKOUT_6M|D12_SETTOONE);
 267   1      }
 268          
 269          
 270          void d12_connect_usb()
 271          {
 272   1              DISABLE_ALL_INTERRUPT;
 273   1              flag.value=0;
 274   1              ENABLE_ALL_INTERRUPT; 
 275   1              d12_set_mode(D12_NOLAZYCLOCK|D12_CLOCKRUNING|D12_SOFTCONNECT,D12_CLKOUT_6M|D12_SETTOONE);
 276   1      }
 277          
 278          
 279          void d12_reconnect_usb()
 280          {
 281   1              d12_disconnect_usb();
 282   1              delay(500);
 283   1              d12_connect_usb();      
 284   1      }
 285          
 286          
 287          
 288          void init()
 289          {
 290   1              P0=0xff;
 291   1              P1=0xff;
 292   1              P2=0xff;
 293   1              P3=0xff;
 294   1              D12_SUSPD=0;
 295   1              /****************************/
 296   1              //设置串口波特率T1方式2自动装初值,双倍波特率,使用11.0592M晶振,波特率为9600bps;
 297   1              /****************************/
 298   1              TMOD=0x21;
 299   1              TH1=0xFA;
 300   1              TL1=0xFA;
 301   1              PCON=0x80;
 302   1              TR1=1;
 303   1              SCON=0x72;
C51 COMPILER V7.07   MAIN                                                                  06/04/2004 18:36:52 PAGE 6   

 304   1              /****************************/
 305   1              //设置d12触发的中断为电平触发,低中断优先级
 306   1              /****************************/
 307   1              IT0=0;
 308   1              ENABLE_EX0_INTERRUPT;
 309   1              PX0=0;
 310   1              //**************************/
 311   1              //设置定时器T0
 312   1              //**************************/
 313   1              TH0=0x4C;
 314   1              TL0=0x00;
 315   1              ET0=1;
 316   1              TR0=1;
 317   1              //*************************/
 318   1              //设置外部中断1
 319   1              //*************************/
 320   1              IT1=1;
 321   1              ENABLE_EX1_INTERRUPT;
 322   1              
 323   1      }
 324          
 325          d12_interrupt() interrupt 0     /*外部中断0服务子程序*/
 326          
 327          {
 328   1              DISABLE_ALL_INTERRUPT;
 329   1              d12_isr();
 330   1              ENABLE_ALL_INTERRUPT;
 331   1      }
 332          
 333          timer0_interrupt() interrupt 1
 334          {
 335   1              DISABLE_ALL_INTERRUPT;
 336   1              TL0=0x00;
 337   1              TH0=0x4C;
 338   1              flag.bits.timer=1;
 339   1              ENABLE_ALL_INTERRUPT;
 340   1              
 341   1      }
 342          
 343          ex1_interrupt() interrupt  2
 344          {
 345   1              DISABLE_ALL_INTERRUPT;
 346   1              flag.bits.showtime=1;
 347   1              ENABLE_ALL_INTERRUPT;
 348   1      }
 349          
 350          
 351          void serial_send_to_endp1()
 352          {
 353   1              extern unsigned char idata      s2u_len;
 354   1              unsigned char   c;
 355   1              c=SBUF;
 356   1              RI=0;
 357   1              if(c=='\n'){
 358   2                      if(s2u_len==0)
 359   2                              return; 
 360   2                      else{
 361   3                              d12_write_endpoint(3,serial_buf,s2u_len);
 362   3                              s2u_len=0;
 363   3                      }
 364   2              }
 365   1              else{
C51 COMPILER V7.07   MAIN                                                                  06/04/2004 18:36:52 PAGE 7   

 366   2                      serial_buf[s2u_len++]=c;
 367   2                      if(serial_buf[0]=='T'&serial_buf[1]==' '&serial_buf[2]=='W'&s2u_len==12)
 368   2                      {       time[0]=((serial_buf[4]-0x30)*10+(serial_buf[5]-0x30));
 369   3                              time[1]=((serial_buf[7]-0x30)*10+(serial_buf[8]-0x30));
 370   3                              time[2]=((serial_buf[10]-0x30)*10+(serial_buf[11]-0x30));
 371   3                              printf("serial set time command OK!\n");
 372   3                              s2u_len=0;
 373   3                      }
 374   2                      else if(serial_buf[0]=='T'&serial_buf[1]==' '&serial_buf[2]=='R'&s2u_len==3)
 375   2                      {       
 376   3                              flag.bits.showtime=1;
 377   3                              s2u_len=0;
 378   3                      }
 379   2                      else if(s2u_len<16)     return;
 380   2                      d12_write_endpoint(3,serial_buf,s2u_len);
 381   2                      s2u_len=0;
 382   2              }               
 383   1      }
 384          
 385          
 386          
 387          
 388          
 389          
 390          
 391          
 392          
 393          
 394          
 395          
 396          
 397          
 398          
 399          
 400          
 401          
 402          
 403          
 404          
 405          
 406          
 407          
 408          
 409          
 410          
 411          
 412          
 413          
 414          
 415          
 416          
 417          
 418          
 419          
 420          
 421          
 422          
 423          
 424          
 425          
 426          
 427          
C51 COMPILER V7.07   MAIN                                                                  06/04/2004 18:36:52 PAGE 8   

 428          
 429          
 430          
 431          
 432          
 433          
 434          
 435          
 436          
 437          
 438          
 439          
 440          
 441          
 442          
 443          
 444          
 445          
 446          
 447          
 448          
 449          
 450          
 451          
 452          
 453          
 454          
 455          
 456          
 457          
 458          
 459          
 460          
 461          
 462          
 463          
 464          
 465          
 466          
 467          
 468          
 469          
 470          
 471          
 472          
 473          
 474          
 475          
 476          
 477          
 478          
 479          
 480          
 481          
 482          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1209    ----
   CONSTANT SIZE    =    199    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.07   MAIN                                                                  06/04/2004 18:36:52 PAGE 9   

   DATA SIZE        =     33       4
   IDATA SIZE       =    117    ----
   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 + -