📄 xxgd12ci.lst
字号:
C51 COMPILER V6.20c XXGD12CI 01/16/2003 10:36:16 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE XXGD12CI
OBJECT MODULE PLACED IN Xxgd12ci.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Xxgd12ci.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "xxgd12ci.h"
2 #include "xxgmain.h"
3 #include "xxghal.h"
4
5 extern EPPFLAGS bEPPflags;
6
7 //---------------------------------
8 void outportcmd(unsigned char value)
9 {
10 1
11 1 // unsigned char xdata *ext_address;
12 1 // ext_address=D12_COMMAND;
13 1 // *ext_address = value; // write cycle
14 1 // *((INT8 xdata *)D12_command) = val;
15 1 //*/
16 1 //unsigned char xdata *exAddress;
17 1 // exAddress = nPort;
18 1 // *exAddress = nVal;
19 1
20 1 *((unsigned char xdata *)D12_COMMAND)=value;
21 1 }
22 void outportdata(unsigned char value)
23 {
24 1
25 1 // unsigned char xdata *ext_address;
26 1 // ext_address=D12_DATA;
27 1 // *ext_address = value;
28 1 *((unsigned char xdata *)D12_DATA)=value;
29 1 }
30
31 unsigned char inportb(void)
32 {
33 1
34 1 // unsigned char c;
35 1 // unsigned char xdata *ext_address;
36 1 // ext_address=(D12_DATA&0xff00);
37 1 // c = *ext_address ; // read cycle
38 1 // return c;
39 1 //return *((INT8 xdata *)D12_data);
40 1 //*/
41 1
42 1 // unsigned char xdata *ext_address;
43 1 // ext_address=D12_DATA;
44 1 // *ext_address = value;
45 1 return *((unsigned xdata *)D12_DATA);
46 1 }
47 //--------------------------
48 void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
49 {
50 1 if(bEPPflags.bits.in_isr == 0)
51 1 DISABLE;
52 1
53 1 outportcmd(0xD0);
54 1 if(bEnable)
55 1 bAddress |= 0x80;
C51 COMPILER V6.20c XXGD12CI 01/16/2003 10:36:16 PAGE 2
56 1 outportdata(bAddress);
57 1
58 1 if(bEPPflags.bits.in_isr == 0)
59 1 ENABLE;
60 1 }
61
62 void D12_SetEndpointEnable(unsigned char bEnable)
63 {
64 1 if(bEPPflags.bits.in_isr == 0)
65 1 DISABLE;
66 1
67 1 outportcmd(0xD8);
68 1 if(bEnable)
69 1 outportdata(1);
70 1 else
71 1 outportdata(0);
72 1
73 1 if(bEPPflags.bits.in_isr == 0)
74 1 ENABLE;
75 1 }
76
77 void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
78 {
79 1 if(bEPPflags.bits.in_isr == 0)
80 1 DISABLE;
81 1 outportcmd(0xF3);
82 1 outportdata(bConfig);
83 1 outportdata(bClkDiv);
84 1 if(bEPPflags.bits.in_isr == 0)
85 1 ENABLE;
86 1
87 1 }
88
89 void D12_SetDMA(unsigned char bMode)
90 {
91 1
92 1 if(bEPPflags.bits.in_isr == 0)
93 1 DISABLE;
94 1 outportcmd(0xFB);
95 1 outportdata(bMode);
96 1 if(bEPPflags.bits.in_isr == 0)
97 1 ENABLE;
98 1
99 1 }
100
101 //unsigned char D12_GetDMA(void)
102 //{
103 // outportcmd(0xFB);
104 // return(inportb());
105 //}
106 /*
107 unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
108 {
109 unsigned char c;
110
111 if(bEPPflags.bits.in_isr == 0)
112 DISABLE;
113
114 outportcmd(0x80 + bEndp);
115 c = inportb();
116
117 if(bEPPflags.bits.in_isr == 0)
C51 COMPILER V6.20c XXGD12CI 01/16/2003 10:36:16 PAGE 3
118 ENABLE;
119
120 return c;
121 }
122 */
123 void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
124 {
125 1 if(bEPPflags.bits.in_isr == 0)
126 1 DISABLE;
127 1
128 1 outportcmd(0x40 + bEndp);
129 1 outportdata(bStalled);
130 1
131 1 if(bEPPflags.bits.in_isr == 0)
132 1 ENABLE;
133 1 }
134
135
136
137 //void D12_SendResume(void)
138 //{
139 // outportcmd(0xF6);
140 //}
141
142
143 unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
144 {
145 1 unsigned char i;
146 1
147 1 if(bEPPflags.bits.in_isr == 0)
148 1 DISABLE;
149 1 //---------------------
150 1 outportcmd(endp); //选择端点
151 1 inportb(); //读入满/空状态
152 1
153 1 outportcmd(0xF0); //写缓冲区命令
154 1 outportdata(0);
155 1 outportdata(len);
156 1
157 1 for(i=0; i<len; i++)
158 1 outportdata(*(buf+i));
159 1
160 1 outportcmd(0xFA); //驶购冲区有效
161 1
162 1 //--------------------------------
163 1 if(bEPPflags.bits.in_isr == 0)
164 1 ENABLE;
165 1
166 1 return len;
167 1 }
168 void D12_AcknowledgeEndpoint(unsigned char endp)
169 {
170 1 outportcmd( endp); //选择端点
171 1 outportcmd(0xF1); //应答设置
172 1 if(endp == 0)
173 1 outportcmd(0xF2); //缓冲区清零
174 1 }
175 unsigned char D12_ReadInterruptRegister(void)
176 {
177 1 unsigned char b1;
178 1 unsigned int j;
179 1 j=0;
C51 COMPILER V6.20c XXGD12CI 01/16/2003 10:36:16 PAGE 4
180 1 //outportb(D12_COMMAND, 0xF4);
181 1 outportcmd(0xF4);
182 1 b1 = inportb();
183 1 j = inportb();
184 1 return b1;
185 1 //j = inportb();
186 1 //j <<= 8;
187 1 //j += b1;
188 1 //return j;
189 1 }
190
191 unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
192 {
193 1 //outportb(D12_COMMAND, 0x40 + bEndp);
194 1 outportcmd(0x40 + bEndp);
195 1 return inportb();
196 1 }
197 unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
198 {
199 1 unsigned char i, j;
200 1
201 1 if(bEPPflags.bits.in_isr == 0)
202 1 DISABLE;
203 1 //--------------------------------
204 1 outportcmd(endp); //选择端点
205 1 if((inportb() & D12_FULLEMPTY) == 0) { //如果缓冲区为空,则返回
206 2 if(bEPPflags.bits.in_isr == 0)
207 2 ENABLE;
208 2 return 0;
209 2 }
210 1
211 1 outportcmd(0xF0); //读缓冲区
212 1 j = inportb();
213 1 j = inportb();
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) = inportb();
220 1
221 1 outportcmd(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_SelectEndpoint(unsigned char bEndp)
230 {
231 1 unsigned char c;
232 1
233 1 if(bEPPflags.bits.in_isr == 0)
234 1 DISABLE;
235 1
236 1 outportcmd(bEndp);
237 1 c = inportb();
238 1
239 1 if(bEPPflags.bits.in_isr == 0)
240 1 ENABLE;
241 1
C51 COMPILER V6.20c XXGD12CI 01/16/2003 10:36:16 PAGE 5
242 1 return c;
243 1 }
244
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 503 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -