📄 d12main.lst
字号:
C51 COMPILER V7.01 D12MAIN 11/14/2003 09:44:52 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE D12MAIN
OBJECT MODULE PLACED IN D12MAIN.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\c51.exe D12MAIN.C DB OE COMPACT ROM(LARGE)
stmt level source
1 //#pragma SYMBOLS
2 //#pragma OVERLAYABLE
3
4 #include"stdio.h"
5 #include"X52.H"
6 #include"HAL.H"
7 #include"D12CI.H"
8 #include"MAIN.H"
9 #include"USB100.H"
10 #include"string.h"
11 #include"hap9.h"
12 //#include"hal.h"
13 /***************************************************************************
14 * this program mainly checks the event flags and passes to appropriate *
15 * subroutine for further processing *
16 ****************************************************************************/
17 //extern void get_descriptor(void);
18 //extern void get_status(void);
19 extern IO_REQUEST idata ioRequest;
20 extern unsigned char idata EpBuf[EP2_PACKET_SIZE];
21 extern unsigned char ioSize, ioCount;
22
23 extern void read_write_register(void);
24 //extern unsigned char D12_WriteBuffer(unsigned char endp ,unsigned char *buf,unsigned char len);
25 CONTROL_XFER ControlData;
26 EPPFLAGS bEPPflags;
27 extern ClockTicks;
28 extern BOOL bNoRAM;
29
30 void on_exit(void);
31 //extern unsigned char WriteBuffer(unsigned char endp,unsigned char *buf,unsigned char len)
32
33
34 code void (*StandardDeviceRequest[])(void) =
35 {
36 get_status,
37 clear_feature,
38 reserved,
39 set_feature,
40 reserved,
41 set_address,
42 get_descriptor,
43 reserved,
44 get_configuration,
45 set_configuration,
46 get_interface,
47 set_interface,
48 reserved,
49 reserved,
50 reserved,
51 reserved
52 };
53
54 code void (*VendorDeviceRequest[])(void) =
55 {
C51 COMPILER V7.01 D12MAIN 11/14/2003 09:44:52 PAGE 2
56 reserved,
57 reserved,
58 reserved,
59 reserved,
60 reserved,
61 reserved,
62 reserved,
63 reserved,
64 reserved,
65 reserved,
66 reserved,
67 reserved,
68 read_write_register,
69 reserved,
70 reserved,
71 reserved
72 };
73
74 void init_port(void)
75 {
76 1 P0=0xFF;
77 1 P1=0xFF;
78 1 P2=0xFF;
79 1 P3=0xFF;
80 1 D12SUSPD=0; //p3.4 or T1
81 1 MCU_D12CS=0; //p1.6
82 1
83 1 }
84 void init_serial(void)
85 {
86 1 SCON = 0X52; /* SCON: SM0|SM1|SM2|REN|TB8|RB8|TI|RI */
87 1 PCON = 0X80 | PCON; /* PCON: SMOD | - | - | - | GF1|GF0|PD |IDL| */
88 1 TMOD = 0X20; /* TMOD: GATE|C/T|M1|M0|GATE|C/T|M1|M0 */
89 1 TCON = 0x69; /* TCON: TF1|TR1|TF0|TR0|IE1|IT1|IE0|IT0 */
90 1 TH1 = 0xF3; /*TH1=0xF3: */
91 1
92 1
93 1 }
94 /*void init_counter0(void)
95 {
96 TMOD &=0XF0;
97 TMOD |=0X06; // TMOD: GATE|C/T|M1|M0|GATE|C/T|M1|M0
98 TH0 = 0XFF;
99 TL0 = 0XFF;
100 ET0 = 1;
101 //PT0 = 0;
102 TR0 = 1;
103 }*/
104 void init_timer0(void)
105 {
106 1
107 1 TMOD &= 0XF0; /*Select Timer 1 */
108 1 TMOD |= 0X1;
109 1 TL0 = 0X0; /* value set by user */
110 1 TH0 = 0X0; /* value set by user */
111 1 ET0 = 0; /* IE.1允许定时器中断*/
112 1 TR0 = 1; /* TCON.4 start timer */
113 1 PT0 = 1; /*设置为高优先级*/
114 1 EA = 1; /*开总开关*/
115 1
116 1 }
117 void disconnect_USB(void)
C51 COMPILER V7.01 D12MAIN 11/14/2003 09:44:52 PAGE 3
118 {
119 1 // Initialize D12 configuration
120 1 //D12_SetMode(0x02 ,0x4B );
121 1 D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
122 1 }
123
124 void connect_USB(void)
125 {
126 1 // reset event flags
127 1
128 1 DISABLE;
129 1 bEPPflags.value = 0;
130 1 ENABLE;
131 1 // Initialize D12 configuration
132 1
133 1 //D12_SetMode(0x12 ,0x4B );
134 1 D12_SetMode(D12_NOLAZYCLOCK | D12_SOFTCONNECT,D12_SETTOONE | D12_CLOCK_12M );
135 1
136 1 }
137
138
139 void reconnect_USB(void)
140 {
141 1 unsigned long clk_cnt;
142 1
143 1 // Pull-down D12's SUSPEND pin
144 1 // Disable 74HCT123 pulse generation before disconnect
145 1 // Release D12's SUSPEND pin after receiving bus reset from host
146 1 D12SUSPD = 0;
147 1
148 1 disconnect_USB();
149 1
150 1 //for( clk_cnt=0;clk_cnt<50000;clk_cnt++){;}
151 1 if(clk_cnt<15000)
152 1 {
153 2 clk_cnt++;
154 2 }
155 1
156 1 // for( clk_cnt=0;clk_cnt<100;clk_cnt++);
157 1 connect_USB();
158 1
159 1 }
160
161
162
163 void stall_ep0(void)
164 {
165 1 D12_SetEndpointStatus(0,1);
166 1
167 1
168 1 D12_SetEndpointStatus(1,1);
169 1
170 1 }
171
172
173
174 void init_unconfig(void)
175 {
176 1 //unsigned char i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -