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