liwenxin201
驱动牛犊
驱动牛犊
  • 注册日期2002-11-14
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望23点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1295回复:3

D12 读中断寄存器

楼主#
更多 发布于:2003-02-19 11:01
读中断寄存器具体过程?

最新喜欢:

dacongtoudacong...
chengjian_hui
驱动小牛
驱动小牛
  • 注册日期2002-09-29
  • 最后登录2003-09-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-19 14:39
具体过程就是当上位机对D12有操作命令的话,D12就产生一个中断信号,通过单片机的外部中断,进入中断程序,然后就读中断寄存器,根据得到的值判断上位机的具体操作。
majingsong
驱动牛犊
驱动牛犊
  • 注册日期2002-04-02
  • 最后登录2007-05-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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

dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-20 11:10
下面是我用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

 


请问你用的是不是d12?如果是的话,枚举过程中收到主机命令80 06 00 02 00 00 FF 00后,回传全部描述符是怎么回传的那?分三次传输的么?具体步骤如何阿?
游客

返回顶部