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

📄 kmain.lst

📁 USB固件程序源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 206      =1  Interrupt Vectors:
 207      =1  Interrupt Address = (Number * 8) + 3
 208      =1  ------------------------------------------------*/
 209      =1  #define IE0_VECTOR	0  /* 0x03 External Interrupt 0 */
 210      =1  #define TF0_VECTOR	1  /* 0x0B Timer 0 */
 211      =1  #define IE1_VECTOR	2  /* 0x13 External Interrupt 1 */
 212      =1  #define TF1_VECTOR	3  /* 0x1B Timer 1 */
 213      =1  #define SIO_VECTOR	4  /* 0x23 Serial port */
C51 COMPILER V6.20c  KMAIN                                                                 10/31/2002 21:55:46 PAGE 6   

 214      =1  
 215      =1  #define TF2_VECTOR	5  /* 0x2B Timer 2 */
 216      =1  #define EX2_VECTOR	5  /* 0x2B External Interrupt 2 */
 217      =1  
 218      =1  /*------------------------------------------------
 219      =1  ------------------------------------------------*/
 220      =1  #endif
 221      =1  
 222      =1  
   5          
   6          #include "khal.h"
   1      =1  #include <At89x52.h>
   1      =2  /*--------------------------------------------------------------------------
   2      =2  AT89X52.H
   3      =2  
   4      =2  Header file for the low voltage Flash Atmel AT89C52 and AT89LV52.
   5      =2  Copyright (c) 1995-1996 Keil Software, Inc.  All rights reserved.
   6      =2  --------------------------------------------------------------------------*/
   7      =2  
   8      =2  #ifndef AT89X52_HEADER_FILE
           =2 #define AT89X52_HEADER_FILE 1
           =2 
           =2 /*------------------------------------------------
           =2 Byte Registers
           =2 ------------------------------------------------*/
           =2 sfr P0      = 0x80;
           =2 sfr SP      = 0x81;
           =2 sfr DPL     = 0x82;
           =2 sfr DPH     = 0x83;
           =2 sfr PCON    = 0x87;
           =2 sfr TCON    = 0x88;
           =2 sfr TMOD    = 0x89;
           =2 sfr TL0     = 0x8A;
           =2 sfr TL1     = 0x8B;
           =2 sfr TH0     = 0x8C;
           =2 sfr TH1     = 0x8D;
           =2 sfr P1      = 0x90;
           =2 sfr SCON    = 0x98;
           =2 sfr SBUF    = 0x99;
           =2 sfr P2      = 0xA0;
           =2 sfr IE      = 0xA8;
           =2 sfr P3      = 0xB0;
           =2 sfr IP      = 0xB8;
           =2 sfr T2CON   = 0xC8;
           =2 sfr T2MOD   = 0xC9;
           =2 sfr RCAP2L  = 0xCA;
           =2 sfr RCAP2H  = 0xCB;
           =2 sfr TL2     = 0xCC;
           =2 sfr TH2     = 0xCD;
           =2 sfr PSW     = 0xD0;
           =2 sfr ACC     = 0xE0;
           =2 sfr B       = 0xF0;
           =2 
           =2 /*------------------------------------------------
           =2 P0 Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit P0_0 = 0x80;
           =2 sbit P0_1 = 0x81;
           =2 sbit P0_2 = 0x82;
           =2 sbit P0_3 = 0x83;
           =2 sbit P0_4 = 0x84;
           =2 sbit P0_5 = 0x85;
C51 COMPILER V6.20c  KMAIN                                                                 10/31/2002 21:55:46 PAGE 7   

           =2 sbit P0_6 = 0x86;
           =2 sbit P0_7 = 0x87;
           =2 
           =2 /*------------------------------------------------
           =2 PCON Bit Values
           =2 ------------------------------------------------*/
           =2 #define IDL_    0x01
           =2 
           =2 #define STOP_   0x02
           =2 #define PD_     0x02    /* Alternate definition */
           =2 
           =2 #define GF0_    0x04
           =2 #define GF1_    0x08
           =2 #define SMOD_   0x80
           =2 
           =2 /*------------------------------------------------
           =2 TCON Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit IT0  = 0x88;
           =2 sbit IE0  = 0x89;
           =2 sbit IT1  = 0x8A;
           =2 sbit IE1  = 0x8B;
           =2 sbit TR0  = 0x8C;
           =2 sbit TF0  = 0x8D;
           =2 sbit TR1  = 0x8E;
           =2 sbit TF1  = 0x8F;
           =2 
           =2 /*------------------------------------------------
           =2 TMOD Bit Values
           =2 ------------------------------------------------*/
           =2 #define T0_M0_   0x01
           =2 #define T0_M1_   0x02
           =2 #define T0_CT_   0x04
           =2 #define T0_GATE_ 0x08
           =2 #define T1_M0_   0x10
           =2 #define T1_M1_   0x20
           =2 #define T1_CT_   0x40
           =2 #define T1_GATE_ 0x80
           =2 
           =2 #define T1_MASK_ 0xF0
           =2 #define T0_MASK_ 0x0F
           =2 
           =2 /*------------------------------------------------
           =2 P1 Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit P1_0 = 0x90;
           =2 sbit P1_1 = 0x91;
           =2 sbit P1_2 = 0x92;
           =2 sbit P1_3 = 0x93;
           =2 sbit P1_4 = 0x94;
           =2 sbit P1_5 = 0x95;
           =2 sbit P1_6 = 0x96;
           =2 sbit P1_7 = 0x97;
           =2 
           =2 sbit T2   = 0x90;       /* External input to Timer/Counter 2, clock out */
           =2 sbit T2EX = 0x91;       /* Timer/Counter 2 capture/reload trigger & dir ctl */
           =2 
           =2 /*------------------------------------------------
           =2 SCON Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit RI   = 0x98;
           =2 sbit TI   = 0x99;
C51 COMPILER V6.20c  KMAIN                                                                 10/31/2002 21:55:46 PAGE 8   

           =2 sbit RB8  = 0x9A;
           =2 sbit TB8  = 0x9B;
           =2 sbit REN  = 0x9C;
           =2 sbit SM2  = 0x9D;
           =2 sbit SM1  = 0x9E;
           =2 sbit SM0  = 0x9F;
           =2 
           =2 /*------------------------------------------------
           =2 P2 Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit P2_0 = 0xA0;
           =2 sbit P2_1 = 0xA1;
           =2 sbit P2_2 = 0xA2;
           =2 sbit P2_3 = 0xA3;
           =2 sbit P2_4 = 0xA4;
           =2 sbit P2_5 = 0xA5;
           =2 sbit P2_6 = 0xA6;
           =2 sbit P2_7 = 0xA7;
           =2 
           =2 /*------------------------------------------------
           =2 IE Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit EX0  = 0xA8;       /* 1=Enable External interrupt 0 */
           =2 sbit ET0  = 0xA9;       /* 1=Enable Timer 0 interrupt */
           =2 sbit EX1  = 0xAA;       /* 1=Enable External interrupt 1 */
           =2 sbit ET1  = 0xAB;       /* 1=Enable Timer 1 interrupt */
           =2 sbit ES   = 0xAC;       /* 1=Enable Serial port interrupt */
           =2 sbit ET2  = 0xAD;       /* 1=Enable Timer 2 interrupt */
           =2 
           =2 sbit EA   = 0xAF;       /* 0=Disable all interrupts */
           =2 
           =2 /*------------------------------------------------
           =2 P3 Bit Registers (Mnemonics & Ports)
           =2 ------------------------------------------------*/
           =2 sbit P3_0 = 0xB0;
           =2 sbit P3_1 = 0xB1;
           =2 sbit P3_2 = 0xB2;
           =2 sbit P3_3 = 0xB3;
           =2 sbit P3_4 = 0xB4;
           =2 sbit P3_5 = 0xB5;
           =2 sbit P3_6 = 0xB6;
           =2 sbit P3_7 = 0xB7;
           =2 
           =2 sbit RXD  = 0xB0;       /* Serial data input */
           =2 sbit TXD  = 0xB1;       /* Serial data output */
           =2 sbit INT0 = 0xB2;       /* External interrupt 0 */
           =2 sbit INT1 = 0xB3;       /* External interrupt 1 */
           =2 sbit T0   = 0xB4;       /* Timer 0 external input */
           =2 sbit T1   = 0xB5;       /* Timer 1 external input */
           =2 sbit WR   = 0xB6;       /* External data memory write strobe */
           =2 sbit RD   = 0xB7;       /* External data memory read strobe */
           =2 
           =2 /*------------------------------------------------
           =2 IP Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit PX0  = 0xB8;
           =2 sbit PT0  = 0xB9;
           =2 sbit PX1  = 0xBA;
           =2 sbit PT1  = 0xBB;
           =2 sbit PS   = 0xBC;
           =2 sbit PT2  = 0xBD;
           =2 
C51 COMPILER V6.20c  KMAIN                                                                 10/31/2002 21:55:46 PAGE 9   

           =2 /*------------------------------------------------
           =2 T2CON Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit CP_RL2= 0xC8;      /* 0=Reload, 1=Capture select */
           =2 sbit C_T2 = 0xC9;       /* 0=Timer, 1=Counter */
           =2 sbit TR2  = 0xCA;       /* 0=Stop timer, 1=Start timer */
           =2 sbit EXEN2= 0xCB;       /* Timer 2 external enable */
           =2 sbit TCLK = 0xCC;       /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
           =2 sbit RCLK = 0xCD;       /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
           =2 sbit EXF2 = 0xCE;       /* Timer 2 external flag */
           =2 sbit TF2  = 0xCF;       /* Timer 2 overflow flag */
           =2 
           =2 /*------------------------------------------------
           =2 T2MOD Bit Values
           =2 ------------------------------------------------*/
           =2 #define DCEN_   0x01    /* 1=Timer 2 can be configured as up/down counter */
           =2 #define T2OE_   0x02    /* Timer 2 output enable */
           =2 
           =2 /*------------------------------------------------
           =2 PSW Bit Registers
           =2 ------------------------------------------------*/
           =2 sbit P    = 0xD0;
           =2 sbit FL   = 0xD1;
           =2 sbit OV   = 0xD2;
           =2 sbit RS0  = 0xD3;
           =2 sbit RS1  = 0xD4;
           =2 sbit F0   = 0xD5;
           =2 sbit AC   = 0xD6;
           =2 sbit CY   = 0xD7;
           =2 
           =2 /*------------------------------------------------
           =2 Interrupt Vectors:
           =2 Interrupt Address = (Number * 8) + 3
           =2 ------------------------------------------------*/
           =2 #define IE0_VECTOR	0  /* 0x03 External Interrupt 0 */
           =2 #define TF0_VECTOR	1  /* 0x0B Timer 0 */
           =2 #define IE1_VECTOR	2  /* 0x13 External Interrupt 1 */
           =2 #define TF1_VECTOR	3  /* 0x1B Timer 1 */
           =2 #define SIO_VECTOR	4  /* 0x23 Serial port */
           =2 
           =2 #define TF2_VECTOR	5  /* 0x2B Timer 2 */
           =2 #define EX2_VECTOR	5  /* 0x2B External Interrupt 2 */
           =2 
           =2 /*------------------------------------------------
           =2 ------------------------------------------------*/
           =2 #endif
 221      =2  
 222      =2  
   2      =1  	
   3      =1  #define EPP_PORT  P1
   4      =1  #define DATA_BUS  P0
   5      =1  
   6      =1  sbit MCU_SWM0     = P1^0;
   7      =1  sbit MCU_SWM1     = P1^1;
   8      =1  sbit MCU_LED0	  = P1^2;
   9      =1  sbit MCU_LED1	  = P1^3;
  10      =1  
  11      =1  sbit MCU_D12CS	  = P1^6;
  12      =1  sbit MCU_D12RST   = P1^7;
  13      =1  
  14      =1  sbit D12SUSPD	  = P3^3;
  15      =1  
C51 COMPILER V6.20c  KMAIN                                                                 10/31/2002 21:55:46 PAGE 10  

  16      =1  #define DISABLE		EA=0
  17      =1  #define ENABLE		EA=1
  18      =1  
   7          #include "kmain.h"
   1      =1  /*
   2      =1     //*************************************************************************
   3      =1     // basic #defines
   4      =1     //*************************************************************************
   5      =1     */
   6      =1  #define MAX_ENDPOINTS      (unsigned char)0x3
   7      =1  
   8      =1  //#define EP0_TX_FIFO_SIZE   16
   9      =1  //#define EP0_RX_FIFO_SIZE   16
  10      =1  #define EP0_PACKET_SIZE    16
  11      =1  
  12      =1  //#define EP1_TX_FIFO_SIZE   4
  13      =1  //#define EP1_RX_FIFO_SIZE   4
  14      =1  #define EP1_PACKET_SIZE    4
  15      =1  
  16      =1  //#define EP2_TX_FIFO_SIZE   64
  17      =1  //#define EP2_RX_FIFO_SIZE   64
  18      =1  #define EP2_PACKET_SIZE    64
  19      =1  
  20      =1  
  21      =1  #define USB_IDLE           0
  22      =1  #define USB_TRANSMIT       1
  23      =1  #define USB_RECEIVE        2
  24      =1  
  25      =1  #define USB_CLASS_CODE_TEST_CLASS_DEVICE                    0xdc
  26      =1  #define USB_SUBCLASS_CODE_TEST_CLASS_D12                    0xA0
  27      =1  #define USB_PROTOCOL_CODE_TEST_CLASS_D12                    0xB0
  28      =1  
  29      =1  /*
  30      =1     //*************************************************************************
  31      =1     // masks
  32      =1     //*************************************************************************
  33      =1  */
  34      =1  
  35      =1  #define USB_RECIPIENT            (unsigned char)0x1F
  36      =1  #define USB_RECIPIENT_DEVICE     (unsigned char)0x00
  37      =1  #define USB_RECIPIENT_INTERFACE  (unsigned char)0x01
  38      =1  #define USB_RECIPIENT_ENDPOINT   (unsigned char)0x02
  39      =1  
  40      =1  #define USB_REQUEST_TYPE_MASK    (unsigned char)0x60
  41      =1  #define USB_STANDARD_REQUEST     (unsigned char)0x00
  42      =1  //#define USB_CLASS_REQUEST        (unsigned char)0x20

⌨️ 快捷键说明

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