📄 u_keyboard.lst
字号:
C51 COMPILER V7.50 U_KEYBOARD 04/16/2007 15:22:52 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE U_KEYBOARD
OBJECT MODULE PLACED IN .\Obj\U_KeyBoard.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE U_KeyBoard.c LARGE OPTIMIZE(2,SPEED) BROWSE MODP2 PRINT(.\Obj\U_KeyBoard.ls
-t) OBJECT(.\Obj\U_KeyBoard.obj)
line level source
1
2 //#include<conio.h>
3 #include "..\..\DRIVER\inc\includes.h"
4 #include "mainloop.h"
5 #include "usb100.h"
6 #include "chap_9.h"
7 #include "protodma.h"
8 #include "mainloop.h"
9
10 sfr CKCON = 0X8F;
11
12 sbit MCU_SWM0 = P3^4;
13 sbit MCU_SWM1 = P3^5;
14 sbit MCU_LED0 = P3^6;
15 sbit MCU_LED1 = P3^7;
16
17 sbit MCU_A0 = P2^0;
18
19 // sbit MCU_D12CS = P1^6;
20 sbit MCU_D12RST = P2^1;
21
22
23 sbit D12SUSPD = P3^3;
24
25
26 /*
27 //*************************************************************************
28 // USB protocol function pointer arrays
29 //*************************************************************************
30 */
31 void fn_usb_isr();
32
33 //USB标准请求
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 //用户厂商请求
C51 COMPILER V7.50 U_KEYBOARD 04/16/2007 15:22:52 PAGE 2
55 code void (*VendorDeviceRequest[])(void) =
56 {
57 reserved,
58 reserved,
59 reserved,
60 reserved,
61 reserved,
62 reserved,
63 reserved,
64 reserved,
65 reserved,
66 reserved,
67 reserved,
68 reserved,
69 read_write_register,
70 reserved,
71 reserved,
72 reserved
73 };
74
75 //类设备请求。
76 code void (* ClassFunctionTable[])(void)=
77 {
78 reserved,
79 GetReport,
80 GetIdle,
81 GetProtocol,
82 reserved,
83 reserved,
84 reserved,
85 reserved,
86 reserved,
87 SetReport,
88 SetIdle,
89 SetProtocol
90 };
91
92 /*
93 //*************************************************************************
94 // Public static data
95 //*************************************************************************
96 */
97
98 extern EPPFLAGS bEPPflags;
99 extern unsigned long ClockTicks;
100 extern unsigned char GenEpBuf[];
101 extern IO_REQUEST idata ioRequest;
102
103 extern unsigned char ioSize, ioCount;
104 extern unsigned char idata EpBuf[];
105
106 CONTROL_XFER ControlData;
107 BOOL bNoRAM;
108
109 //定时器0初始化程序
110 //定时器用来定时检测按键状态
111 void init_timer0(void)
112 {
113 1 TMOD &= 0XF0; /* clear Timer 0 */
114 1 TMOD |= 0X1;
115 1 TL0 = 0X0; /* value set by user */
116 1 TH0 = 0X0; /* value set by user */
C51 COMPILER V7.50 U_KEYBOARD 04/16/2007 15:22:52 PAGE 3
117 1 // ET0 = 1; /* IE.1*/
118 1 TR0 = 1; /* TCON.4 start timer */
119 1 PT0 = 0;
120 1
121 1 EA = 1;
122 1 }
123
124 //中断设置
125 void init_special_interrupts(void)
126 {
127 1 IT0 = 0;
128 1 EX0 = 1;
129 1 // ES = 1;
130 1 PX0 = 1;
131 1
132 1 EA =1;
133 1 }
134
135 //I/O口初始化程序
136 void init_port()
137 {
138 1 P0 = 0xFF;
139 1 P1 = 0xFF;
140 1 P2 = 0xFF;
141 1 P3 = 0xFF;
142 1 // MCU_D12CS = 0x0;
143 1 D12SUSPD = 0;
144 1 }
145
146
147 void FlashLed(uchar uci)
148 {
149 1 if(uci == 0)
150 1 {
151 2 LedOn(LED1);
152 2 }
153 1 else if(uci == 1)
154 1 {
155 2 LedOff(LED1);
156 2 // LedOn(LED2);
157 2 }
158 1 else if(uci == 2)
159 1 {
160 2 LedOn(LED1);
161 2 // LedOn(LED2);
162 2 }
163 1 else if(uci == 3)
164 1 {
165 2 LedOff(LED1);
166 2 // LedOff(LED2);
167 2 }
168 1 else
169 1 {
170 2
171 2 }
172 1 }
173
174 /*
175 void TransferPS2DataToUSB(uchar *ucMouseDataBuff)
176 {
177 uchar ucMouseX;
178 char ucMouseY;
C51 COMPILER V7.50 U_KEYBOARD 04/16/2007 15:22:52 PAGE 4
179 uchar ucMouseStatus;
180
181 ucMouseX = ucMouseDataBuff[1];
182 ucMouseY = ucMouseDataBuff[2];
183 ucMouseStatus = ucMouseDataBuff[0];
184
185 if((ucMouseStatus & 0x80) || (ucMouseStatus & 0x40))
186 {
187 ucMouseX = 0;
188 ucMouseY = 0;
189 ucMouseStatus = 0;
190 return;
191
192 }
193 if(ucMouseStatus & 0x10)
194 {
195 ucMouseDataBuff[1] = (ucMouseX>>1)|0x80;
196 }
197 else
198 {
199 ucMouseDataBuff[1] = ucMouseX;
200 }
201
202 if(ucMouseStatus & 0x20)
203 {
204 ucMouseDataBuff[2] = -((ucMouseY>>1)|0x80);
205 }
206 else
207 {
208 ucMouseDataBuff[2] = -ucMouseY;
209 }
210
211 ucMouseDataBuff[0] = ucMouseStatus & 0x07;
212 }
213 */
214
215 void TestUsbMain(void)
216 {
217 1 uint uiChipCode;
218 1 uchar ucKeyboardDataBuff[8];
219 1 ulong ulDelayCount;
220 1 uchar ucStatusMac=0;
221 1 uchar ucLedFlashCount;
222 1
223 1 #ifdef ConnectPS2Device
224 1 uint uiPS2ReturnData;
225 1 #endif
226 1
227 1 init_port();//初始化I/O口
228 1
229 1 init_timer0();//初始化定时器0
230 1 init_special_interrupts();//设置中断
231 1
232 1 Open_Serial(COM_1,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
233 1
234 1 ComShowString(1, "开始进行测试") ;
235 1 for(ulDelayCount=0; ulDelayCount<0x1ff; ulDelayCount++)
236 1 {
237 2 ;
238 2 }
239 1 ComShowString(1, "开始进行测试") ;
240 1 // InitMouse();
C51 COMPILER V7.50 U_KEYBOARD 04/16/2007 15:22:52 PAGE 5
241 1
242 1
243 1 // MCU_D12CS = 0x1;
244 1 // MCU_D12CS = 0x0;
245 1
246 1 uiChipCode = D12_ReadChipID();
247 1 ComShowString(1,"读取的芯片字为");// 读取到的字为1012
248 1 ComSendText(1,&uiChipCode,2);
249 1
250 1 if(MCU_SWM0 == 0 && MCU_SWM1 == 0)
251 1 {
252 2 MCU_D12RST = 0;//DMA设置
253 2 MCU_D12RST = 1;
254 2 D12_SetDMA(0x0);
255 2 }
256 1
257 1 bEPPflags.value = 0;
258 1 reconnect_USB();//重新连接USB
259 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -