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

📄 usb_main.lst

📁 USB9602 source code for C 8051
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 1   


DOS C51 COMPILER V5.50, COMPILATION OF MODULE USB_MAIN
OBJECT MODULE PLACED IN USB_MAIN.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE USB_MAIN.C DEBUG OE SB CODE RF(USB_9602.REG) 

stmt level    source

   1          /************************************************************************/
   2          /* PSI  1999							                          St醔l Robert */
   3          /*                                                                      */
   4          /*			               ADuC812 12MHz                                   */
   5          /* USB_MAIN.c (Test ovladacu pro USBN9602 )                  19.10.1999 */
   6          /************************************************************************/
   7          
   8          /* !!! Pozor Predpoklada se adresace typu int Hi Lo pro promenne !!! */
   9          
  10          #pragma CODE DEBUG SYMBOLS LISTINCLUDE
  11          #pragma REGISTERBANK (0)
  12          
  13          #include <reg52.h>
   1      =1  /*--------------------------------------------------------------------------
   2      =1  REG52.H
   3      =1  
   4      =1  Header file for 8052.
   5      =1  Copyright (c) 1988-1997 Keil Elektronik GmbH and Keil Software, Inc.
   6      =1  All rights reserved.
   7      =1  --------------------------------------------------------------------------*/
   8      =1  
   9      =1  /*  BYTE Registers  */
  10      =1  sfr P0    = 0x80;
  11      =1  sfr P1    = 0x90;
  12      =1  sfr P2    = 0xA0;
  13      =1  sfr P3    = 0xB0;
  14      =1  sfr PSW   = 0xD0;
  15      =1  sfr ACC   = 0xE0;
  16      =1  sfr B     = 0xF0;
  17      =1  sfr SP    = 0x81;
  18      =1  sfr DPL   = 0x82;
  19      =1  sfr DPH   = 0x83;
  20      =1  sfr PCON  = 0x87;
  21      =1  sfr TCON  = 0x88;
  22      =1  sfr TMOD  = 0x89;
  23      =1  sfr TL0   = 0x8A;
  24      =1  sfr TL1   = 0x8B;
  25      =1  sfr TH0   = 0x8C;
  26      =1  sfr TH1   = 0x8D;
  27      =1  sfr IE    = 0xA8;
  28      =1  sfr IP    = 0xB8;
  29      =1  sfr SCON  = 0x98;
  30      =1  sfr SBUF  = 0x99;
  31      =1  
  32      =1  /*  8052 Extensions  */
  33      =1  sfr T2CON = 0xC8;
  34      =1  sfr RCAP2L = 0xCA;
  35      =1  sfr RCAP2H = 0xCB;
  36      =1  sfr TL2   = 0xCC;
  37      =1  sfr TH2   = 0xCD;
  38      =1  
  39      =1  
  40      =1  /*  BIT Registers  */
  41      =1  /*  PSW  */
  42      =1  sbit CY    = 0xD7;
  43      =1  sbit AC    = 0xD6;
  44      =1  sbit F0    = 0xD5;
  45      =1  sbit RS1   = 0xD4;
  46      =1  sbit RS0   = 0xD3;
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 2   

  47      =1  sbit OV    = 0xD2;
  48      =1  sbit P     = 0xD0;
  49      =1  
  50      =1  /*  TCON  */
  51      =1  sbit TF1   = 0x8F;
  52      =1  sbit TR1   = 0x8E;
  53      =1  sbit TF0   = 0x8D;
  54      =1  sbit TR0   = 0x8C;
  55      =1  sbit IE1   = 0x8B;
  56      =1  sbit IT1   = 0x8A;
  57      =1  sbit IE0   = 0x89;
  58      =1  sbit IT0   = 0x88;
  59      =1  
  60      =1  /*  IE  */
  61      =1  sbit EA    = 0xAF;
  62      =1  sbit ES    = 0xAC;
  63      =1  sbit ET1   = 0xAB;
  64      =1  sbit EX1   = 0xAA;
  65      =1  sbit ET0   = 0xA9;
  66      =1  sbit EX0   = 0xA8;
  67      =1  
  68      =1  /*  IP  */
  69      =1  sbit PS    = 0xBC;
  70      =1  sbit PT1   = 0xBB;
  71      =1  sbit PX1   = 0xBA;
  72      =1  sbit PT0   = 0xB9;
  73      =1  sbit PX0   = 0xB8;
  74      =1  
  75      =1  /*  P3  */
  76      =1  sbit RD    = 0xB7;
  77      =1  sbit WR    = 0xB6;
  78      =1  sbit T1    = 0xB5;
  79      =1  sbit T0    = 0xB4;
  80      =1  sbit INT1  = 0xB3;
  81      =1  sbit INT0  = 0xB2;
  82      =1  sbit TXD   = 0xB1;
  83      =1  sbit RXD   = 0xB0;
  84      =1  
  85      =1  /*  SCON  */
  86      =1  sbit SM0   = 0x9F;
  87      =1  sbit SM1   = 0x9E;
  88      =1  sbit SM2   = 0x9D;
  89      =1  sbit REN   = 0x9C;
  90      =1  sbit TB8   = 0x9B;
  91      =1  sbit RB8   = 0x9A;
  92      =1  sbit TI    = 0x99;
  93      =1  sbit RI    = 0x98;
  94      =1  
  95      =1  /*  8052 Extensions  */
  96      =1  /*  IE  */
  97      =1  sbit ET2   = 0xAD;
  98      =1  
  99      =1  /*  IP  */
 100      =1  sbit PT2   = 0xBD;
 101      =1  
 102      =1  /*  P1  */
 103      =1  sbit T2EX  = 0x91;
 104      =1  sbit T2    = 0x90;
 105      =1               
 106      =1  /*  T2CON  */
 107      =1  sbit TF2   = 0xCF;
 108      =1  sbit EXF2  = 0xCE;
 109      =1  sbit RCLK  = 0xCD;
 110      =1  sbit TCLK  = 0xCC;
 111      =1  sbit EXEN2 = 0xCB;
 112      =1  sbit TR2   = 0xCA;
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 3   

 113      =1  sbit C_T2  = 0xC9;
 114      =1  sbit CP_RL2= 0xC8;
  14          #include <stdio.h>
   1      =1  /*--------------------------------------------------------------------------
   2      =1  STDIO.H
   3      =1  
   4      =1  Prototypes for standard I/O functions.
   5      =1  Copyright (c) 1988-1997 Keil Elektronik GmbH and Keil Software, Inc.
   6      =1  All rights reserved.
   7      =1  --------------------------------------------------------------------------*/
   8      =1  
   9      =1  #ifndef EOF
  10      =1   #define EOF -1
  11      =1  #endif
  12      =1  
  13      =1  #ifndef NULL
  14      =1   #define NULL ((void *) 0)
  15      =1  #endif
  16      =1  
  17      =1  #ifndef _SIZE_T
  18      =1   #define _SIZE_T
  19      =1   typedef unsigned int size_t;
  20      =1  #endif
  21      =1  
  22      =1  #pragma SAVE
  23      =1  #pragma REGPARMS
  24      =1  //extern char _getkey (void);  
  25      =1  //extern char getchar (void);  
  26      =1  extern char ungetchar (char);
  27      =1  extern char putchar (char);
  28      =1  //extern int printf   (const char *, ...); 
  29      =1  extern int sprintf  (char *, const char *, ...);
  30      =1  extern int vprintf  (const char *, char *);
  31      =1  extern int vsprintf (char *, const char *, char *);
  32      =1  extern char *gets (char *, int n);
  33      =1  extern int scanf (const char *, ...);
  34      =1  extern int sscanf (char *, const char *, ...);
  35      =1  extern int puts (const char *);
  36      =1  
  37      =1  #pragma RESTORE
  15          #include <absacc.h>
   1      =1  /*--------------------------------------------------------------------------
   2      =1  ABSACC.H
   3      =1  
   4      =1  Direct access to 8051 memory areas.
   5      =1  Copyright (c) 1988-1997 Keil Elektronik GmbH and Keil Software, Inc.
   6      =1  All rights reserved.
   7      =1  --------------------------------------------------------------------------*/
   8      =1  
   9      =1  #define CBYTE ((unsigned char volatile code  *) 0)
  10      =1  #define DBYTE ((unsigned char volatile data  *) 0)
  11      =1  #define PBYTE ((unsigned char volatile pdata *) 0)
  12      =1  #define XBYTE ((unsigned char volatile xdata *) 0)
  13      =1  
  14      =1  #define CWORD ((unsigned int volatile code  *) 0)
  15      =1  #define DWORD ((unsigned int volatile data  *) 0)
  16      =1  #define PWORD ((unsigned int volatile pdata *) 0)
  17      =1  #define XWORD ((unsigned int volatile xdata *) 0)
  16          #include "USB_9602.H"
   1      =1  /************************************************************************/
   2      =1  /* PSI  1999							                          St醔l Robert */
   3      =1  /*                                                                      */
   4      =1  /*			               ADuC812 12MHz                                   */
   5      =1  /* USB_9602.h (Ovladace pro USBN9602 )                       19.10.1999 */
   6      =1  /************************************************************************/
   7      =1  
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 4   

   8      =1  #ifndef __USB_9602_H
   9      =1  #define __USB_9602_H
  10      =1  
  11      =1  extern void init_usb(void);      /* Inicializace USB*/
  12      =1  
  13      =1  #endif
  14      =1  
  17          #include "serialr.H"
   1      =1  /* PSI					                    St醔l Robrt */
   2      =1  /*                                                                      */
   3      =1  /* SerialR.h (Funkce pro komunikaci po SCI)                 23.06.1998  */
   4      =1  /************************************************************************/
   5      =1  
   6      =1  /* 	- Zakladni funkce pro SCI */
   7      =1  /*    - Nutno prilinkovat k cecku jako "SerialR.obj" */
   8      =1  
   9      =1  /* #ifndef ! __SERIALR_H */
  10      =1  /*  #define __SERIALR_H */
  11      =1  
  12      =1  extern char getkeyR (void);   		 				/* Precte znak z bafru; Je-li bafr prazdny vraci nedefinovany znak */
  13      =1  extern char getCharR(void);              			/* Precte znak z bafru; Je-li prazdny ceka */
  14      =1  extern unsigned int  getWordR(void);            /* Precte 2 znaky z bafru; Je-li prazdny ceka */
  15      =1  extern void putkeyR (unsigned char c);   			/* Ceka na volnoulinku, pak naplni Sbaf */
  16      =1  extern void putWordR(int i);             			/* Ceka na volnoulinku, pak vysle 2B */
  17      =1  
  18      =1  
  19      =1  extern void init_Bafr(void);     					/* Inicializace vstupniho bafru znaku */
  20      =1  extern void Tim_out_Int(void);						/* Funkce pro obsluhu time_outu */
  21      =1  extern char in_Rx (void);								/* Vraci pocet znaku ve vstupnim bafru */
  22      =1  extern void serial_int ();             			/* Rutina preruseni; Testuje linku, */
  23      =1  																/*  prijma znaky po SCI nutno dat do C jako funkci */
  24      =1  
  25      =1  extern char LinkFlg;										/* Priznak volne vysilaci linky */
  26      =1  extern char RxCount;                   			/* Pocet znaku v prijmacim bafru */
  27      =1  
  28      =1  /* Nutna inicializace seriove linky */
  29      =1  /*	" serial_init (int Baud)              " */
  30      =1  /* "  { PCON  = 0x00;     SCON  = 0x53;  " */			/* mode 1: 8-bit UART, enable receiver   */
  31      =1  /* "    TCON  = 0x49;     TMOD |= 0x20;  " */			/* timer 1 mode 2: 8-Bit reload          */
  32      =1  /* "    TH1   = 0xfc;              		  " */			/* 0xf3 reload value 2400 baud           */
  33      =1  /* "    init_Bafr();      ES    = 1;  	  " */			/* enable serial port interrupt          */
  34      =1  /* "    EA	  = 1; }							  " */	
  35      =1  
  36      =1  /* #endif */
  18          #include "USB_Main.H"
   1      =1  /* PSI		                        	                     St醔l Robrt */
   2      =1  /*                                                                      */
   3      =1  /* USB_Main.h ('h' pro test usb)                            18.11.1999  */
   4      =1  /************************************************************************/
   5      =1  
   6      =1  #ifndef __USB_MAIN_H
   7      =1  #define __USB_MAIN_H
   8      =1  
   9      =1  
  10      =1  #define  VER_konst_1    1
  11      =1  #define  VER_konst_2    0
  12      =1  #define  VER_konst_3    0
  13      =1  #define  VER_konst_4    1
  14      =1  #define	JmenoWH        "USB_Tst "   /* Prikaz WH kdo je ? */
  15      =1  
  16      =1  #endif
  19          
  20          bit  CisloB;
  21          unsigned char PrikLo,PrikHi;
  22          unsigned char pomLo,pomHi;
  23          unsigned int PrikInt;
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 5   

  24          
  25          /************ Zasobnik pro seriak ****************/
  26          xdata unsigned char PoleCh[200];
  27          xdata unsigned char PointCh;
  28          
  29          /***************** beepre ************************/
  30          
  31          sbit beepr = P1^7;         /* repro */
  32          
  33          void beep(unsigned char frek,unsigned char delka)   /* Podprogram Beep */
  34          {                                                   /* Kratce Pipne */
  35   1      unsigned char bi,bq;
  36   1      
  37   1        for (bi=0;bi<delka;bi++)                   /* frek .. frekvence */
  38   1         {                                         /* delka .. delka tonu */
  39   2          beepr = 1; for(bq=0;bq<frek;bq++);
  40   2          beepr = 0; for(bq=0;bq<frek;bq++);
  41   2         }
  42   1      }
  43          
  44          /*********** seriovakomunikace *******************/
  45          
  46          void serial (void) interrupt 4 using 2 	/* Prerusovaci rutina pro seriak */
  47          {
  48   1        serial_int();
  49   1      }
  50          
  51          void serial_init (void)              	   /* Nutna inicializace seriove linky */
  52          { PCON  = 0x00;     SCON  = 0x52;  			   /*(0x53) mode 1: 8-bit UART, enable receiver   */
  53   1        TCON  = 0x69;     TMOD  = 0x20;  			   /* timer 1 mode 2: 8-Bit reload          */
  54   1        TH1   = 0xFC;              		  			   /* 0xf3 reload value 2400 baud           */
  55   1        init_Bafr();      ES    = 1;  	  			   /* enable serial port interrupt          */
  56   1        EA	  = 1;
  57   1        TR0  = 1;
  58   1      }
  59          
  60          void _printfR(char *s)						   /* Vysle string na seriovoulinku */
  61          {
  62   1      char i;
  63   1        i=0;
  64   1        while(s[i]) putkeyR(s[i++]);
  65   1      }
  66          
  67          void getLInt(unsigned char *Uk)		      /* Precte long int a ulozi jej ne misto pointru */
  68          {
  69   1      unsigned char i,d;
  70   1        Uk=Uk+3;
  71   1        for(i=0;i<4;i++)
  72   1         {
  73   2          d=getCharR();
  74   2          *Uk=d;					Uk--;

⌨️ 快捷键说明

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