📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 03/04/2008 13:50:52 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "CHAP_9.H"
2 #include "d12.h"
3 #include "uart.h"
4 #include "ini.h"
5 #include "mytype.h"
6 #include "ISR.H"
7 #define USB_INT P3_2
8 extern EPPFLAGS bEPPflags;
9 CONTROL_XFER ControlData;
10
11 code void (*StandardDeviceRequest[])(void) =
12 {
13 get_status,
14 clear_feature,
15 reserved,
16 set_feature,
17 reserved,
18 set_address,
19 get_descriptor,
20 reserved,
21 get_configuration,
22 set_configuration,
23 get_interface,
24 set_interface,
25 reserved,
26 reserved,
27 reserved,
28 reserved
29 };
30 //用户厂商请求
31 code void (*VendorDeviceRequest[])(void) =
32 {
33 reserved,
34 reserved,
35 reserved,
36 reserved,
37 reserved,
38 reserved,
39 reserved,
40 reserved,
41 reserved,
42 reserved,
43 reserved,
44 reserved,
45 reserved,
46 reserved,
47 reserved,
48 reserved
49 };
50 /*void help_devreq(unsigned char typ, unsigned char req)
51 {
52 typ >>= 5;
53
54 if(typ == USB_STANDARD_REQUEST) {
55 }
C51 COMPILER V8.02 MAIN 03/04/2008 13:50:52 PAGE 2
56 else {
57 if(bEPPflags.bits.verbose)
58 printf("Request Type = %s, bRequest = 0x%bx.\n", _NAME_USB_REQUEST_TYPE[typ],
59 req);
60 }
61 }*/
62 //请求处理子程序
63 void control_handler()
64 {
65 1 unsigned char type, req;
66 1
67 1 type = ControlData.DeviceRequest.bmRequestType & USB_REQUEST_TYPE_MASK;
68 1 req = ControlData.DeviceRequest.bRequest & USB_REQUEST_MASK;
69 1 Prints("\r\nbmRequestType=");
70 1 PrintShortIntHex(ControlData.DeviceRequest.bmRequestType);
71 1 Prints("\r\nbRequest=");
72 1 PrintShortIntHex(ControlData.DeviceRequest.bRequest);
73 1
74 1 //help_devreq(type, req); //显示设备请求
75 1
76 1 if (type == USB_STANDARD_REQUEST)
77 1 (*StandardDeviceRequest[req])();//调用标准请求
78 1 else if (type == USB_VENDOR_REQUEST)
79 1 (*VendorDeviceRequest[req])();//调用厂商请求
80 1 else
81 1 stall_ep0();
82 1 }
83
84 void main(void)
85 {
86 1
87 1 InitUART(); //串口初始化
88 1 Printc(0x0c); //清屏
89 1 Printc(0x0c);
90 1 Prints("系统启动.\r\n");
91 1 disconnect_usb(); //断开USB连接
92 1 delay(1000); //延迟
93 1 init_usb(); //初始化USB芯片
94 1 bEPPflags.value = 0;
95 1 connect_usb(); //连接USB
96 1 while(1)
97 1 {
98 2 if(!USB_INT)
99 2 {
100 3 Prints("interrupt");
101 3 fn_usb_isr();
102 3 }
103 2 if(bEPPflags.bits.setup_packet)
104 2 {
105 3 bEPPflags.bits.setup_packet=0;
106 3 control_handler();
107 3
108 3 }
109 2 if(bEPPflags.bits.bus_reset)
110 2 {
111 3 EA=0;
112 3 bEPPflags.bits.bus_reset=0;
113 3 EA=1;
114 3 }
115 2 if(bEPPflags.bits.suspend)
116 2 {
117 3 EA=0;
C51 COMPILER V8.02 MAIN 03/04/2008 13:50:52 PAGE 3
118 3 bEPPflags.bits.suspend=0;
119 3 EA=1;
120 3
121 3 }
122 2 }
123 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 219 ----
CONSTANT SIZE = 147 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 31 2
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 + -