我现在用STC10F08XE单片机通过CH372进行通信,做了好几天的初始化,就是不成功,这个单片机是1个时钟周期为一个机器周期,按照PDF资料上的延时做的,在测试CH372是否正常的时候发现读到的数据老是00H,请大家指导我一下,看看程序哪是不是还有啥问题,谢谢。程序代码如下: CH372_INIT: CLR PSEN ;选中CH372 MOV DPTR,#CH372_CMD_PORT ;命令口地址 MOV A,#CHECK_EXIST MOVX @DPTR,A ;测试CH375是否正常工作 MOV R7,#6 ;延时3微秒 CALL DELAY3 DEC DPL ;数据口地址 MOV A,#55H MOVX @DPTR,A ;写入测试数据 MOV R7,#6 ;延时3微秒 CALL DELAY3 CPL A MOV R6,A ;取反数据 MOV R7,#2 CALL DELAY3 MOVX A,@DPTR ;返回数据应该是测试数据取反 XRL A,R6 JZ CH372_INIT_OK ;测试通过 MOV DPTR,#CH372_CMD_PORT ;命令口地址 MOV A,#RESET_ALL MOV R7,#50H ;多次重复发命令 CH372_INIT_HR: MOVX @DPTR,A ;执行硬件复位 DJNZ R7,CH372_INIT_HR MOV R7,#0B8H ;下边延时40ms CH372_INIT_D2: MOV A,#1 CH372_INIT_D1: DJNZ ACC,CH372_INIT_D1 DJNZ R7,CH372_INIT_D2 SJMP CH372_INIT ;再次测试 CH375_INIT_OK: CLR ONLED ;测试成功则灭灯 RET DELAY3: DJNZ R7,DELAY3 RET
检查一下总线地址设置的对不对,CH375有没有正常的工作,25脚电压应该为低,26脚电压应该为高,晶振是否起振。上电之后先延时50ms 在操作。
您好 CH372是20脚的哦,您说的25脚和26是啥呢?如果说现在不初始化CH372,那些个I/O口的电平情况是高电平还是低电平啊?
你说的CH375哦,我说的是372,按照PDF上的时序老是初始化不了。也不知道哪的问题。哎
那你边如果有示波器的话,那看下你发出去的数据是不是你写的数据,按照你上面的程序应该是没有问题的,但是需要你确认下你的地址是否正确。
哦 那如果硬件有问题,也会出现初始化不成功了?我现只发送一个命令CHECK_EXIST命令,用万用表量D0-D7全都为高电平,我也量了片选是对的。实在想不到还有哪有问题拉。
只有硬件问题才会导致初始化不成功,所以我让你查下你的硬件连线包括你发送数据是否已经发送出来等等来调试你的硬件上面有没有什么问题。
恩 收到 用万用表可以测试芯片的好坏么?现在最大的问题就是没有示波器。可不可以通过引脚的电平来判断是不是硬件哪有问题?谢谢
这个不是很好判断,因为需要看下你时序上面有没有问题,看了你的汇编代码,程序上面没什么问题,估计就是出现在你的硬件上面
软件上边?我是按照CH372上边的延时做的,现在晶振到是好着里,引脚两端的电压为VCC/2左右,如果我只发一个测试芯片好坏的命令(CHECK_EXIST),然后我不读CH372返回的数据,最后在测的D0~D7都为高点平。
我刚才用串口返回了下读来的数据老是00H,难道是时序的问题?
先把说明书看透了,主要应该是时序的问题,硬件检测是简单的