📄 d12ci.lst
字号:
C51 COMPILER V7.06 D12CI 08/17/2005 16:07:25 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE D12CI
OBJECT MODULE PLACED IN D12ci.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D12ci.c OPTIMIZE(2,SPEED) DEBUG OBJECTEXTEND
stmt level source
1 /*
2 //*************************************************************************
3 //
4 // ZLGMCU
5 // www.zlgmcu.com
6 // File Name: D12ci.C
7 // Revision: 0.2(2002-04-08)
8 // Author: Liu Ying Bin
9 // Use library: USB51S.LIB
10 // Note: USB51S.LIB不带DMA控制功能
11 //*************************************************************************
12 */
13 #include <reg51.h> /* special function register declarations */
14
15 #include "mainloop.h"
16 #include "isr.h"
17 #include "d12ci.h"
18 #include "absacc.h"
19
20 extern EPPFLAGS bEPPflags;
21
22 #define D12_COMMAND XBYTE[0x7003] //right
23 #define D12_DATA XBYTE[0x7002]
24
25 //test for cpld
26 //#define D12_COMMAND XBYTE[0x4001]
27 //#define D12_DATA XBYTE[0x4000]
28
29
30 void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
31 {
32 1 if(bEPPflags.bits.in_isr == 0)
33 1 DISABLE;
34 1
35 1 D12_COMMAND = 0xD0;
36 1
37 1 if(bEnable)
38 1 bAddress |= 0x80;
39 1 D12_DATA = bAddress;
40 1
41 1 if(bEPPflags.bits.in_isr == 0)
42 1 ENABLE;
43 1 }
44
45 void D12_SetEndpointEnable(unsigned char bEnable)
46 {
47 1 if(bEPPflags.bits.in_isr == 0)
48 1 DISABLE;
49 1
50 1 D12_COMMAND = 0xD8;
51 1 if(bEnable)
52 1 D12_DATA = 1;
53 1 else
54 1 D12_DATA = 0;
55 1
C51 COMPILER V7.06 D12CI 08/17/2005 16:07:25 PAGE 2
56 1 if(bEPPflags.bits.in_isr == 0)
57 1 ENABLE;
58 1 }
59
60 void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
61 {
62 1 if(bEPPflags.bits.in_isr == 0)
63 1 DISABLE;
64 1
65 1 D12_COMMAND = 0xF3;
66 1 D12_DATA = bConfig;
67 1 D12_DATA = bClkDiv;
68 1
69 1 if(bEPPflags.bits.in_isr == 0)
70 1 ENABLE;
71 1 }
72
73 void D12_SetDMA(unsigned char bMode)
74 {
75 1 if(bEPPflags.bits.in_isr == 0)
76 1 DISABLE;
77 1
78 1 D12_COMMAND = 0xFB;
79 1 D12_DATA = bMode;
80 1
81 1 if(bEPPflags.bits.in_isr == 0)
82 1 ENABLE;
83 1 }
84
85 unsigned short D12_ReadInterruptRegister(void)
86 {
87 1 unsigned char b1;
88 1 unsigned int j;
89 1
90 1 D12_COMMAND = 0xF4;
91 1 b1 = D12_DATA;
92 1 j = D12_DATA;
93 1
94 1 j <<= 8;
95 1 j += b1;
96 1
97 1 return j;
98 1 }
99
100 unsigned char D12_SelectEndpoint(unsigned char bEndp)
101 {
102 1 unsigned char c;
103 1
104 1 if(bEPPflags.bits.in_isr == 0)
105 1 DISABLE;
106 1
107 1 D12_COMMAND = bEndp;
108 1 c = D12_DATA;
109 1
110 1 if(bEPPflags.bits.in_isr == 0)
111 1 ENABLE;
112 1
113 1 return c;
114 1 }
115
116 unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
117 {
C51 COMPILER V7.06 D12CI 08/17/2005 16:07:25 PAGE 3
118 1 D12_COMMAND = 0x40 + bEndp;
119 1 return D12_DATA;
120 1 }
121
122 /*
123 unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
124 {
125 unsigned char c;
126
127 if(bEPPflags.bits.in_isr == 0)
128 DISABLE;
129
130 D12_COMMAND = 0x40 + bEndp;
131 c = D12_DATA;
132
133 if(bEPPflags.bits.in_isr == 0)
134 ENABLE;
135
136 return c;
137 }
138 */
139
140 void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
141 {
142 1 if(bEPPflags.bits.in_isr == 0)
143 1 DISABLE;
144 1
145 1 D12_COMMAND = 0x40 + bEndp;
146 1 D12_DATA = bStalled;
147 1
148 1 if(bEPPflags.bits.in_isr == 0)
149 1 ENABLE;
150 1 }
151
152 void D12_SendResume(void)
153 {
154 1 D12_COMMAND = 0xF6;
155 1 }
156
157 unsigned short D12_ReadCurrentFrameNumber(void)
158 {
159 1 unsigned short i,j;
160 1
161 1 if(bEPPflags.bits.in_isr == 0)
162 1 DISABLE;
163 1
164 1 D12_COMMAND = 0xF5;
165 1 i = D12_DATA;
166 1 j = D12_DATA;
167 1
168 1 i += (j<<8);
169 1
170 1 if(bEPPflags.bits.in_isr == 0)
171 1 ENABLE;
172 1
173 1 return i;
174 1 }
175
176 /*
177 unsigned short D12_ReadChipID(void)
178 {
179 unsigned short i,j;
C51 COMPILER V7.06 D12CI 08/17/2005 16:07:25 PAGE 4
180
181 if(bEPPflags.bits.in_isr == 0)
182 DISABLE;
183
184 outportb(portbase+D12_COMMAND, 0xFD);
185 i=inportb(portbase+D12_DATA);
186 j=inportb(portbase+D12_DATA);
187 i += (j<<8);
188
189 if(bEPPflags.bits.in_isr == 0)
190 ENABLE;
191
192 return i;
193 }
194 */
195
196 unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
197 {
198 1 unsigned char i, j;
199 1
200 1 if(bEPPflags.bits.in_isr == 0)
201 1 DISABLE;
202 1
203 1 D12_COMMAND = endp;
204 1 i=D12_DATA;
205 1 if((i & D12_FULLEMPTY) == 0) {
206 2 if(bEPPflags.bits.in_isr == 0)
207 2 ENABLE;
208 2 return 0;
209 2 }
210 1
211 1 D12_COMMAND = 0xF0;
212 1 j = D12_DATA;
213 1 j = D12_DATA;
214 1
215 1 if(j > len)
216 1 j = len;
217 1
218 1 for(i=0; i<j; i++)
219 1 *(buf+i) = D12_DATA;
220 1
221 1 D12_COMMAND = 0xF2;
222 1
223 1 if(bEPPflags.bits.in_isr == 0)
224 1 ENABLE;
225 1
226 1 return j;
227 1 }
228
229 unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
230 {
231 1 unsigned char i;
232 1
233 1 if(bEPPflags.bits.in_isr == 0)
234 1 DISABLE;
235 1
236 1 D12_COMMAND = endp;
237 1 D12_DATA;
238 1
239 1 D12_COMMAND = 0xF0;
240 1 D12_DATA = 0;
241 1 D12_DATA = len;
C51 COMPILER V7.06 D12CI 08/17/2005 16:07:25 PAGE 5
242 1
243 1 for(i=0; i<len; i++)
244 1 D12_DATA = *(buf+i);
245 1
246 1 D12_COMMAND = 0xFA;
247 1
248 1 if(bEPPflags.bits.in_isr == 0)
249 1 ENABLE;
250 1
251 1 return len;
252 1 }
253
254 void D12_AcknowledgeEndpoint(unsigned char endp)
255 {
256 1 D12_COMMAND = endp;
257 1 D12_COMMAND = 0xF1;
258 1 if(endp == 0)
259 1 D12_COMMAND = 0xF2;
260 1 }
261
262
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 730 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 32
IDATA SIZE = ---- ----
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 + -