阅读:1295回复:3
D12 读中断寄存器
读中断寄存器具体过程?
|
|
最新喜欢:![]() |
沙发#
发布于:2003-02-19 14:39
具体过程就是当上位机对D12有操作命令的话,D12就产生一个中断信号,通过单片机的外部中断,进入中断程序,然后就读中断寄存器,根据得到的值判断上位机的具体操作。
|
|
板凳#
发布于:2003-02-19 22:45
下面是我用51单片机的中断处理程序,供参考
; ////////////读中断寄存器命令 USB_RD_INT EQU 0F4H USB_CMD_ADD EQU 8203H USB_DATA_ADD EQU 8202H ;-----------------------------------+ ; USB controller interrupt | ;-----------------------------------+ I_INT1: CLR EA PUSH PSW PUSH DPH PUSH DPL PUSH ACC CLR RS1 SETB RS0 MOV DPTR, #USB_CMD_ADD MOV A, #USB_RD_INT MOVX @DPTR, A MOV DPTR, #USB_DATA_ADD MOVX A, @DPTR PUSH ACC MOVX A, @DPTR JNB ACC.0, INT1_J1 LCALL DMA_EOT INT1_J1: POP ACC JNB ACC.6, INT1_J2 PUSH ACC SETB USB_BUSRST ; 总线复位 POP ACC SJMP INT1_J3 INT1_J2: JNB ACC.7, INT1_J3 PUSH ACC ; 挂起改变 SETB USB_SUSCHG POP ACC INT1_J3: JNB ACC.1, INT1_J4 PUSH ACC LCALL EP0_TXDONE ; 端点0发送中断 POP ACC INT1_J4: JNB ACC.0, INT1_J5 PUSH ACC LCALL EP0_RXDONE ; 端点0接收中断 POP ACC INT1_J5: JNB ACC.2, INT1_J6 PUSH ACC LCALL EP1_RXDONE ; 端点1接收中断 POP ACC INT1_J6: JNB ACC.3, INT1_J7 PUSH ACC LCALL EP1_TXDONE ; 端点1发送中断 POP ACC INT1_J7: JNB ACC.4, INT1_J8 PUSH ACC LCALL EP2_RXDONE ; 端点2接收中断 POP ACC INT1_J8: JNB ACC.5, INT1_RET LCALL EP2_TXDONE ; 端点2发送中断 INT1_RET: SETB EX1 POP ACC POP DPL POP DPH POP PSW SETB EA RETI |
|
地板#
发布于:2003-02-20 11:10
下面是我用51单片机的中断处理程序,供参考 请问你用的是不是d12?如果是的话,枚举过程中收到主机命令80 06 00 02 00 00 FF 00后,回传全部描述符是怎么回传的那?分三次传输的么?具体步骤如何阿? |
|