导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]MT8880CE接收问题?[lets3]

 *第43135篇: [求助]MT8880CE接收问题?

  
楼 主:lets3 2006年9月8日10:53
 [求助]MT8880CE接收问题?
我是新手,大家帮我看看.使用AT89C51 24M晶振
MTport equ p1 ;p10~P17/RW,RS,@2,CS,D0~D3 ;MT8880CE
CS bit p1.3
a2 bit p1.2
 org 0000h
 ajmp main
 org 0040h
main: mov sp,#58h
 lcall delay1    ;100mS
 lcall delay1
 lcall delay1
 lcall INI_MT8880CE

 mov 10H,#6
 mov 11H,#10
 mov 12H,#5
 lcall send_MT        ;发送OK了,可以打公司的分机
here: ;lcall rece_MT     ;收不到DTMF
 ajmp here

INI_MT8880CE: 
 mov a,#07H   ;0111
 mov MTport,a  ;读 XXXX
 clr a2
 mov a,#06H   ;0110
 mov MTport,a  ;写CRA
 clr a2
 mov MTport,a
 clr a2
 mov a,#86H   ;1000 0110
 mov MTport,a  ;使能CRB
 clr a2
 mov a,#06H   ;0000 0110
 mov MTport,a  ;写CRB 0000
 clr a2
 mov a,#07H
 mov MTport,a  ;读状态标志,清除标志位
 clr a2
 ret

send_MT:
 MOV     R0,#10H   ;发送数据缓冲首地址
 MOV     R1,#3
 MOV     A,#96H             ; 写 8880CRA,使能B,DTMF
 MOV     MTport,A
 clr a2
 MOV     A,#06H   ;BURST模式,允许双音频
 MOV     MTport,A                ; 写 8880CRB,8880 模式 2 为 TONE,DTMF,BURST
 clr a2
LOOP2: MOV     A,@R0
 SWAP a   ;数据换到高位
 ORL     A,#0FH   ;XXXX 1111 屏低4位,有1出1
 ANL     A,#0F4H   ;XXXX 0100 有0出0  写发送寄存器
 MOV     MTport,A                ; 发送数据
 clr a2
; MOV     A,#0FFH
; MOV     MTport,A  ;输出1111 1111准备读状态字
LOOP3: mov MTport,#0F7H
 clr a2
 MOV     A,MTport                ; 读 8880 状态寄存器3
 JNB     ACC.5,LOOP3
 INC     R0
 DJNZ    R1,LOOP2
 ret
;=================================
;接收子程式
;dtmf模式,接收信号,不允许发送
;=================================
rece_MT:
 mov r1,#0
 MOV     R0,#10H   ;接收到数据缓冲首地址
 mov MTport,#0c6H  ;out,DTMF,使能CRB
 clr a2
 mov MTport,#06H  ; BURST    普通双音频
 clr a2
LOOP1: MOV     A,#0FFH
 MOV     MTport,A  ;输出1111 1111,准备读取数据
 mov MTport,#07H  ;准备读状态
 clr a2
 MOV     A,MTport             ; 读 8880 状态寄存器
 JNB     ACC.6,LOOP1  ;判收满位,是否为1
 mov     MTport,#0F5H  ;读收到的数据
 clr a2
 MOV     A,MTport             ; 读 8880 接收数据寄存器
 ANL     A,#0F0H             ; 屏蔽低四位,非MT收到的数据
 SWAP a   ;高位数据移到低位
 MOV     @R0,A   ;收到后输出LCM显示
 cpl p3.7


 INC     R0
 INC     R1
 CJNE    R1,#07H,LOOP1  
 ret
;****************************************
;DELAY子程式,使用到R6,R7,24M一机器周期0.5us,DJNZ 2周期
;延时时间约为R6*R7*2*0.5us=0.005秒
;****************************************
DELAY1:   ;24M时0.05秒
 MOV R6,#200
DELAY2: MOV R7,#255
 DJNZ R7,$
 DJNZ R6,DELAY2
DELAY:   ;24M时0.005秒
 MOV R6,#20
DELAY3: MOV R7,#248 
 DJNZ R7,$
 DJNZ R6,DELAY3
 RET
;=====================================
;0.2S
;
;=====================================
DELAY0:
 lcall DELAY1
 lcall DELAY1
 lcall DELAY1
 lcall DELAY1
 ret
end

帮我看下接收时那里出错了,如有中文资料发一份中文的资料给我吖,
搞好了,以上程式没问题,只是IC坏了.现在收发都OK了

  
2楼:lets3 2006年9月11日09:35
 [求助]搞好了
程式没问题,是IC坏了,现在收发都成功了

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:嵌入是交流QQ群 欢迎加入 11048324

[下一篇主题]:现在做80386EX 的开发板,谁能告诉我个386的反汇编HEX文件的软件啊