📄 usb_main.lst
字号:
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 + -