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