| 
 
| DSP用的是TMS320VC5402<br />主机用的是51<br />能够读出HPIC的值,但读出的HPID和HPIA指向的地址的值对不上号!!<br /><br />请问对HPIA进行访问的时候HCNTL0为1, HCNTL1为0,还是HCNTL0为0, HCNTL1为1(我在不同资料上看到着两种情况),请高手指点<br /><br />大家帮帮忙啊~我做了一个多月了,通信都没有调通,再十天就要交论文了,女生还真不该选个理工科来读,毕不到业了555555555555555555555          如果也有做这方面的朋友,我们交流一下吧,我的邮箱是<a href="mailto:qxxqxq@163.com">qxxqxq@163.com</a><br />以下是程序:大家帮忙看看,指点一下<br />;读HPIC,写HPIA,读HPID<br /><br />        ORG 0h<br />        LJMP MAIN<br />        ORG 30h<br />MAIN:   LCALL INIT   ;初始化<br />        LCALL HC_C   ;访问HPIC<br />        LCALL HA_C   ;访问HPIA<br />        LCALL HD_C   ;访问HPID<br />        LJMP MAIN<br /><br />INIT:   NOP<br />        MOV R1,#0H<br />        MOV R2,#0H<br />        CLR HCS<br />        SETB HDS1<br />        SETB HDS2<br />        MOV P0,#0FFH<br />        RET<br />;*********************读HPIC*************************;<br />HC_C:   NOP<br />        CLR HCNTL1<br />        CLR HCNTL0     <br />        CLR HBIL       <br />     ;读高八位:<br />        LCALL R_DRV<br />        MOV R1,P0<br />        NOP<br />        NOP<br />        SETB HDS1<br />        SETB HBIL<br />      ;读低八位:<br />        LCALL R_DRV<br />        MOV R2,P0<br />        NOP<br />        NOP<br />        SETB HDS1<br />        RET<br />;************************写HPIA******************************/<br />HA_C:   NOP<br />        CLR HCNTL1<br />        SETB HCNTL0<br />        CLR HBIL   <br />        MOV P0,#00H<br />        LCALL W_DRV<br />        NOP<br />        NOP<br />        SETB HDS2<br />        SETB HBIL<br />        MOV P0,#055H<br />        LCALL W_DRV  ;准备读地址为0x1055的数据<br />        NOP<br />        NOP<br />        NOP<br />        SETB HDS2<br />MANG:   JNB HRDY,MANG   ;判断DSP内部传输是否完成<br />        RET<br /><br />;******************读HPID*************************/<br />HD_C:   NOP<br />        SETB HCNTL1<br />        SETB HCNTL0<br />        CLR HBIL<br />        ;读高八位:<br />        LCALL R_DRV<br />        MOV R1,P0;<br />        NOP<br />        NOP<br />        SETB HDS1<br />        SETB HBIL<br />        ;读低八位:<br />        LCALL R_DRV<br />        MOV R2,P0;<br />        NOP<br />        NOP<br />        SETB HDS1<br />        LJMP LOOP<br />;******************************读数据时,HDS1的下降沿锁存信号*************************<br />R_DRV:   JNB HRDY,R_DRV<br />         SETB HRW<br />         NOP<br />         NOP<br />         CLR HDS1<br />         NOP<br />         NOP<br />         NOP<br />         NOP<br />         RET<br />;****************************写数据时,HDS2的下降沿锁存信号**************************<br />W_DRV:   JNB HRDY,W_DRV<br />         NOP<br />         NOP<br />         CLR HRW<br />         NOP<br />         NOP<br />         NOP<br />         CLR HDS2<br />         NOP<br />         NOP<br />         NOP<br />         RET<br />LOOP:    NOP<br />         NOP<br />         LJMP LOOP<br />         END | 
 |