********************************************************************
****** 《圈圈棠阃鎁SB》之 USB鼠标 ******
****** AT89S52 CPU ******
****** 建立日期:Mar 28 2010 ******
****** 建立时洌?8:45:47 ******
****** 作者:电脑圈圈 ******
****** 欢迎访问作者的 ******
****** USB专区:http://group.**/93/ ******
****** BLOG1:http://www.**/blog/computer00 ******
****** BLOG2:http://computer00.21ic.org ******
****** 请按K1-K8分鸾胁馐? ******
****** K1:獗曜笠? K2:光标右移 K3:光标上?K4:光标下移 ******
****** K5:滚窒鹿? K6:滚轮上滚 K7:蟊曜蠹?K8:鼠标右键 ******
********************************************************************
Your D12 chip's ID is: 0x1012. ID is correct! Congratulations!
断开USB连印?
连接USB。
0x40 USB总线复位。
0x80 USB总线挂稹?
0xC0 USB总线挂起。
USB总线复位。
0x80 USB总线挂起。
0xC0 USB总线挂起。
USB总线复位。
0x01 USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x00 0x01 0x01 0x02
0x40 USB总线复位。
0x01 USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x00 0x01 0x01 0x02
0x40 USB总线复位。
0x01 USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x00 0x01 0x01 0x02
0x80 USB总线挂起。
这就是结果
我加上了看中断的
if(D12GetIntPin()==0) //如果有中断发生
{
D12WriteCommand(READ_INTERRUPT_REGISTER); //写读中断寄存器的命令
InterruptSource=D12ReadByte(); //读回第一字节的中断寄存器
#ifdef DEBUG0
PrintHex(InterruptSource);
#endif
if(InterruptSource&0x80)UsbBusSuspend(); //总线挂起中断处理
if(InterruptSource&0x40)UsbBusReset(); //总线复位中断处理
if(InterruptSource&0x01)UsbEp0Out(); //端点0输出中断处理
if(InterruptSource&0x02)UsbEp0In(); //端点0输入中断处理
if(InterruptSource&0x04)UsbEp1Out(); //端点1输出中断处理
if(InterruptSource&0x08)UsbEp1In(); //端点1输入中断处理
if(InterruptSource&0x10)UsbEp2Out(); //端点2输出中断处理
if(InterruptSource&0x20)UsbEp2In(); //端点2输入中断处理
}
求助中 |