📄 usb_driver.lst
字号:
C51 COMPILER V7.20 USB_DRIVER 09/11/2008 22:15:07 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE USB_DRIVER
OBJECT MODULE PLACED IN usb_driver.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE usb_driver.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"usb_driver.h"
2 #include"port.h"
3 #include"d12_value.h"
4 #include"d12_command.h"
5 #include"epsetup.h"
6 #include"epmain.h"
7 #include"uar.h"
8 USB_FLAGS usb_flags;
9 INT_REG Interrupt_Register;
10 CONTROL_DATA_BUFF Control_Data;
11 LAST_STATUS Last_Status;
12
13
14
15 void init_usb(void)
16 {disp(0x00);
17 1 disconnect_usb(); //断开USB连接
18 1 del(1000); //延迟
19 1 set_addr_enable(0);
20 1 set_endpoint_enable(); //初始化USB芯片
21 1 usb_flags.value=0;
22 1 connect_usb(); //连接USB
23 1 }
24 void usb_int(void)
25 {
26 1 read_interrupt_register();
27 1 if(Interrupt_Register.value!=0)
28 1 {
29 2 if(Interrupt_Register.Status.bus_reset)
30 2 usb_flags.Status.bus_reset = 1; //USB总线复位标志
31 2 else if(Interrupt_Register.Status.DMA_EOT )
32 2 dma_eot(); //;DMA传输技术处理
33 2 else if(Interrupt_Register.Status.suspend_change)
34 2 usb_flags.Status.suspend = 1; //挂起改变标志置1
35 2 else if(Interrupt_Register.Status.control_out_port)// & D12_INT_ENDP0OUT)
36 2 endp0_out(); //控制端点接收数据处理
37 2 else if(Interrupt_Register.Status.control_in_port)// & D12_INT_ENDP0IN)
38 2 endp0_in(); //控制端点发送数据处理
39 2 else if(Interrupt_Register.Status.port_in_1)
40 2 ep1_in(); //端点 1发送数据处理
41 2 else if(Interrupt_Register.Status.port_out_1)
42 2 ep1_out(); //端点 1接收数据处理
43 2 else if(Interrupt_Register.Status.main_in_port)
44 2 ep2_in(); //端点 2发送数据处理
45 2 else if(Interrupt_Register.Status.main_out_port)
46 2 ep2_out(); //端点 2接收数据处理
47 2 }
48 1 }
49 void usb_serve(void)
50 {
51 1 if (usb_flags.Status.setup_packet&&(!usb_flags.Status.not_end))
52 1 { //Setup包处理
53 2 usb_flags.Status.setup_packet = 0;
54 2 call_c9(); //调用请求处理子程序
55 2
C51 COMPILER V7.20 USB_DRIVER 09/11/2008 22:15:07 PAGE 2
56 2 }//if setup_packet
57 1
58 1 if (usb_flags.Status.bus_reset) { //USB总线复位处理
59 2
60 2 usb_flags.value=0;
61 2 usb_bus_reset();
62 2 } // if bus reset
63 1
64 1 if (usb_flags.Status.suspend) { //D12挂起改变处理
65 2 usb_flags.Status.suspend= 0;
66 2 usb_bus_suspend();
67 2 } // if suspend change
68 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 230 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 36 ----
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 + -