共2条
1/1 1 跳转至页
ㄐ偶际?MT8880CE [求助]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
帮我看下接收时那里出错了,如有中文资料发一份中文的资料给我吖,我的EMAIL:lets3@163.com
答 1: [求助]MT8880初始化时序问题AVR控制谢谢!能否资料共享一下?qq286202869
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
帮我看下接收时那里出错了,如有中文资料发一份中文的资料给我吖,我的EMAIL:lets3@163.com
答 1: [求助]MT8880初始化时序问题AVR控制谢谢!能否资料共享一下?qq286202869
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |