sos(help me)(有关pbl 38710的问题)
我最近用到了一块芯片-pbl38710
可是我却遇到了问题,就是在设置他的c1c2=10(即电话的振铃状态)后,当来铃后在电话振铃是摘机他却不按我的程序跳转,而是跳到不知道什么状态了,自然也就不能通话,但是在电话振铃间隙摘机却没有如此的问题,不知有谁用过这块芯片的,可否能为我指点一些。
以下是我的来铃后的振铃程序。
RING1: CLR F ;本地有电话来,F是我的一个硬件开关,低电平时是把通话线路打开
CLR VR ;VR是38710的一个脚,如果该脚上出现一定频率的信号则电话振铃
MOV R7,#010H ;以下这一段是产生一定频率的信号使电话政令
DL5: SETB C1
CLR C2
MOV R4,#03H
DL6: MOV R6,#050H
DL7: MOV R5,#07H
DL10: MOV R3,#0FFH
DL8: JB Y_DET,NEXT2 ;主叫方摘机则振铃结束。
JNB DET,TONGHUA1 ;被叫方摘机则进入通话状态,DET是被叫摘机指示,低电平有效
DJNZ R3,DL8
DJNZ R5,DL10
DL9: CPL VR
DJNZ R6,DL7
DJNZ R4,DL6
CLR C1
SETB C2
MOV R4,#04H ;这是振铃间隙的延时程序段
WA4: MOV R6,#050H
WA5: MOV R5,#07H
WA7: MOV R3,#0FFH
WA6: JB Y_DET,NEXT2
JNB DET,TONGHUA1 ;被叫方摘机则进入通话状态
DJNZ R3,WA6
DJNZ R5,WA7
DJNZ R6,WA5
DJNZ R4,WA4
DJNZ R7,DL5 ;若R7为0时还本地还没有接则结束
AJMP NEXT2
TONGHUA1:SETB C2 ;设置C1C2=01也就是是电话进入通话状态。
CLR C1
CLR VR
JIAN2: ACALL YANSHI
JB DET,NEXT2
AJMP JIAN2
NEXT2: CLR Y_DET
SETB F
RET
在我的上一段程序中,在我的第一个JNB DET,TONGHUA期间摘机他不能正常的跳转,而在第二个JNB DET,TONGHUA期间却可以正常的跳转。
这是为什么?
我想不通,哪位大虾救救我把!!
问题点数:100、回复次数:7Top
1 楼setcdq9801(蓝鸽@我是你.net)回复于 2002-06-11 19:16:10 得分 20
有点不明白Y_net起什么作用?Top
2 楼ckc(火)回复于 2002-06-11 21:18:04 得分 30
开始还以为是不是干扰的问题。看了一下你的程序,感觉在这两种情况下你的机器状态是不同的。
看一下wA4前面3行,即使被叫方没有摘机你都设置了c1c2=01,
所以,被叫方在振铃和非振铃的情况下摘机c1c2是不一样的。
我没用过这芯片,不过看了你的程序,你要编程让VR产生高低变化来振铃,那么,为什么不在c1c2=01的时候试试振铃呢?
我想你可以在dl5处设置一下c1c2=01试试Top
3 楼swsg(倾城一哭)回复于 2002-06-12 09:07:08 得分 0
这个芯片只有在C1C2=10时才可以让电话振铃,C1C2=01时使电话处于通话状态。
如果在DL5处设置C1C2=01则即使VR脚的电平高低变化也电话也不能振铃。
我的两处C1C2不同是为了使电话在有电话来时让电话响一段时间停一段时间。Top
4 楼ckc(火)回复于 2002-06-12 12:31:39 得分 40
没看到什么明显的问题。
问一下,为什么开始的时候要设置clr f?是不是应该在tonghua1中再打开这个开关?
再问一下,next2为什么要clr y_det?你是用的51吧,clr y_det之后,下次如何读y_det状态?Top
5 楼swsg(倾城一哭)回复于 2002-06-12 15:47:51 得分 0
这个只是我的子程序,Y_DET的值是在我的通信双机通信程序中设置的,这一行在这里可以不要(涉及到y_det的那一行你都可以不考虑),clr f在tonghua1中打开这也是可以的,我试过了都是没有用的,程序还是一样的出错。Top
6 楼setcdq9801(蓝鸽@我是你.net)回复于 2002-06-12 21:49:01 得分 10
c1c2为01的时候,应该是什么状态
我是指那个芯片Top
7 楼swsg(倾城一哭)回复于 2002-06-13 09:52:03 得分 0
就是啊,就是振铃状态。Top




