📄 isr.lst
字号:
C51 COMPILER V7.06 ISR 08/17/2005 16:07:25 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN Isr.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Isr.c OPTIMIZE(2,SPEED) DEBUG OBJECTEXTEND
stmt level source
1 /*
2 //*************************************************************************
3
4 //*************************************************************************
5 */
6
7 #include <stdio.h>
8 #include <string.h>
9 #include <reg51.h> /* special function register declarations */
10 #include "isr.h"
11 #include "mainloop.h"
12 #include "proto.h"
13
14 /*
15 //*************************************************************************
16 // Public static data
17 //*************************************************************************
18 */
19
20 EPPFLAGS bEPPflags;
21 CONTROL_XFER ControlData;
22
23 /* ISR static vars */
24 unsigned char idata GenEpBuf[EP1_PACKET_SIZE];
25 unsigned char idata EpBuf[EP2_PACKET_SIZE];
26 IO_REQUEST idata ioRequest;
27
28 //厂商请求入口地址
29 code void (*VendorDeviceRequest[])(void) =
30 {
31 reserved,
32 reserved,
33 reserved,
34 reserved,
35 reserved,
36 reserved,
37 reserved,
38 reserved,
39 reserved,
40 reserved,
41 reserved,
42 reserved,
43 read_write_register,
44 reserved,
45 reserved,
46 reserved
47 };
48
49 //USB总线重新连接(先断开,再连接)子程序
50 void reconnect_USB(void)
51 {
52 1 unsigned long clk_cnt;
53 1 MCU_LED0 = 0;//亮LED显示(实际应用中可去掉)
54 1 MCU_LED1 = 0;//(实际应用中可去掉)
55 1
C51 COMPILER V7.06 ISR 08/17/2005 16:07:25 PAGE 2
56 1 D12SUSPD = 0;
57 1 disconnect_USB();
58 1 for (clk_cnt=0;clk_cnt<=0x9000;clk_cnt++) {}
59 1 connect_USB();
60 1
61 1 MCU_LED0 = 1;//灭LED显示(实际应用中可去掉)
62 1 MCU_LED1 = 1;//(实际应用中可去掉)
63 1 }
64
65 //断开USB总线连接
66 void disconnect_USB(void)
67 {
68 1 D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
69 1 }
70
71 //连接到USB总线
72 void connect_USB(void)
73 {
74 1 DISABLE;
75 1 bEPPflags.value = 0;
76 1 ENABLE;
77 1 D12_SetDMA(0x0);//设置D12工作模式
78 1 D12_SetMode(D12_NOLAZYCLOCK|D12_SOFTCONNECT, D12_SETTOONE | D12_CLOCK_12M);
79 1 }
80
81 //总线复位中断服务子程序
82 void bus_reset(void)
83 {
84 1 //可添加用户代码(进行检测到总线复位的操作)
85 1 }
86
87 //DMA操作结束中断服务子程序
88 void dma_eot(void)
89 {
90 1 //可添加用户代码(进行检测DMA操作结束的操作)
91 1 }
92
93 //端点1输出中断操作
94 void ep1_txdone(void)
95 {
96 1 D12_ReadLastTransactionStatus(3);//复位中断寄存器
97 1 //可添加用户代码(进行检测端点号3IN令牌的操作)
98 1 }
99
100 //端点1输入中断操作
101 void ep1_rxdone(void)
102 {
103 1 unsigned char len;
104 1 D12_ReadLastTransactionStatus(2);//复位中断寄存器
105 1 len = D12_ReadEndpoint(2, sizeof(GenEpBuf), GenEpBuf);//读取端点1接收数据
106 1 if (len != 0)
107 1 bEPPflags.bits.ep1_rxdone = 1;//标志端点1接收到数据
108 1 }
109
110 //端点2输出中断操作
111 void ep2_txdone(void)
112 {
113 1 D12_ReadLastTransactionStatus(5);//复位中断寄存器
114 1 //可添加用户代码(进行检测端点号5IN令牌的操作)
115 1 }
116
117 //端点2输入中断操作
C51 COMPILER V7.06 ISR 08/17/2005 16:07:25 PAGE 3
118 void ep2_rxdone(void)
119 {
120 1 unsigned char len;
121 1 D12_ReadLastTransactionStatus(4);//复位中断寄存器
122 1 len = D12_ReadEndpoint(4, 64, EpBuf);//读取端点2接收数据
123 1 //if (len != 0);
124 1 // bEPPflags.bits.ep2_rxdone = 1;//标志端点1接收到数据
125 1 }
126
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 183 ----
CONSTANT SIZE = 48 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 25 6
IDATA SIZE = 74 ----
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 + -