AD2:MOV R0,#54H III:MOV A,R5 ;R5=采样通道 MOV DPTR,#8000H ;采样地址 MOVX @DPTR,A ;选通采样通道,启动A/D转换 MOV DPTR,#8001H LOOP:MOVX A,@DPTR JB ACC.7,LOOP ;等待A/D转换结束 MOV DPTR,#8001H ; MOVX A,@DPTR ;读出高位采样数据 ANL A,#0FH ;屏蔽掉前4位,留下后4位作为A/D转换高4位(共12位) MOVX @R0,A ;存放采样数据高4位 INC R0 MOV DPTR,#8000H ; MOVX A,@DPTR ;读出低8位采样数据 MOVX @R0,A ;存放采样数据低8位 RET 我找到原因了,问题就是这段程序,它是采样程序里A/D转换一个子程序,问题在于这几句: MOV DPTR,#8000H ;采样地址 MOVX @DPTR,A ;选通采样通道,启动A/D转换 MOV DPTR,#8001H 它也类似于片外的一个RAM啊,怎么会影响USB通讯呢?楼上说的速度跟不上我调试过了,不是速度问题;如果说中断受到影响,这几句不会对中断影响吧!
|