您的位置:首页单片机51单片机
内容搜索: 标题内容作者
     
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

51控制的MT8880双音频收发器的汇编程序

[日期:2008-05-07 ] [来源:东哥单片机学习网(www.picavr.com) 作者:佚名] [字体: (投递新闻)
        ORG    0000H

                        AJMP    MAIN

                                :

                                :

;********************

;*   8880 初始化     *

;********************

MAIN:            MOV    A,    #90H

                        MOV    P0,    A                ; 写 8880CRA

                        MOV    P0,    A                ; 写 8880CRA

                        MOV    A,    #98H

                        MOV    P0,    A                ; 写 8880CRA

                        MOV    A,    #90H

                        MOV    P0,    A                ; 写 8880CRB

                        MOV    A,    #94H

                        MOV    P0,    A                ; 写 8880CRA,8880 模式 1 为 DTMF,IRQ

                                :

                                :

;****************

;*   接收程序   *

;****************

                        MOV    R1,    #0

                        MOV    R0,    #10H

LOOP1:        MOV    A,    #0FFH

                   MOV    P0,    A

                        SETB    P0.7

                        SETB    P0.4

                        CLR    P0.5

                        SETB    P0.6

                        MOV    A,    P0            ; 读 8880 状态寄存器

                        JNB    ACC.2,    LOOP1

                        CLR    P0.4

                        MOV    A,    P0            ; 读 8880 接收数据寄存器

                        ANL    A,    #0FH            ; 屏蔽高四位

                        MOV    @R0,    A

                        INC    R0

                        INC    R1

                        CJNE    R1,    #07H,    LOOP1

                                :

                                :

;****************

;*   发码程序   *

;****************

                        MOV    R0,    #10H

                        MOV    R1,    #7

                        MOV    A,    #9DH            ; 写 8880CRA

                        MOV    P0,    A

                        MOV    A,    #90H

                        MOV    P0,    A                ; 写 8880CRB,8880 模式 2 为 TONE,DTMF,IRQ,BURST

LOOP2:        MOV    A,    @R0

                        ORL    A,    #0F0H

                        ANL    A,    #8FH

                         MOV    P0,    A                ; 发送数据

                        MOV    A,    #0FFH

                        MOV    P0,    A

                        SETB    P0.7

                        SETB    P0.4

                        CLR    P0.5

                        SETB    P0.6

LOOP3:        MOV    A,    P0                ; 读 8880 状态寄存器

                        JNB    ACC.1,    LOOP3

                        INC    R0

                        DJNZ    R1,    LOOP2

                                    :

                                    :

Note: 以上程序未经调试 , 请注意 CS 状态 .MT8880 的资料请参阅 

MT8880的收发程序(8051系列)

 

说明 : 单片机的 P0.0-P0.3 分别接入 8880 的 D0-D3; 单片机的 P0.4-P0.7 分别接 8880 的 RS0\CS\R/W\Ø2.( 其中 Ø2 是由时钟和 P0.7 共同控制的 )

 

                                ORG    0000H

                        AJMP    MAIN

                                :

                                :

;********************

;*   8880 初始化     *

;********************

MAIN:            MOV    A,    #90H

                        MOV    P0,    A                ; 写 8880CRA

                        MOV    P0,    A                ; 写 8880CRA

                        MOV    A,    #98H

                        MOV    P0,    A                ; 写 8880CRA

                        MOV    A,    #90H

                        MOV    P0,    A                ; 写 8880CRB

                        MOV    A,    #94H

                        MOV    P0,    A                ; 写 8880CRA,8880 模式 1 为 DTMF,IRQ

                                :

                                :

;****************

;*   接收程序   *

;****************

                        MOV    R1,    #0

                        MOV    R0,    #10H

LOOP1:        MOV    A,    #0FFH

                   MOV    P0,    A

                        SETB    P0.7

                        SETB    P0.4

                        CLR    P0.5

                        SETB    P0.6

                        MOV    A,    P0            ; 读 8880 状态寄存器

                        JNB    ACC.2,    LOOP1

                        CLR    P0.4

                        MOV    A,    P0            ; 读 8880 接收数据寄存器

                        ANL    A,    #0FH            ; 屏蔽高四位

                        MOV    @R0,    A

                        INC    R0

                        INC    R1

                        CJNE    R1,    #07H,    LOOP1

                                :

                                :

;****************

;*   发码程序   *

;****************

                        MOV    R0,    #10H

                        MOV    R1,    #7

                        MOV    A,    #9DH            ; 写 8880CRA

                        MOV    P0,    A

                        MOV    A,    #90H

                        MOV    P0,    A                ; 写 8880CRB,8880 模式 2 为 TONE,DTMF,IRQ,BURST

LOOP2:        MOV    A,    @R0

                        ORL    A,    #0F0H

                        ANL    A,    #8FH

                         MOV    P0,    A                ; 发送数据

                        MOV    A,    #0FFH

                        MOV    P0,    A

                        SETB    P0.7

                        SETB    P0.4

                        CLR    P0.5

                        SETB    P0.6

LOOP3:        MOV    A,    P0                ; 读 8880 状态寄存器

                        JNB    ACC.1,    LOOP3

                        INC    R0

                        DJNZ    R1,    LOOP2

                                    :

                                    :

Note: 以上程序未经调试 , 请注意 CS 状态

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告