串行口

串行口控制寄存器


SM0SM1定义串行口工作方式

发送标志位软件查询,串口不停的发送数据#58H

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN:

MOV SP,#60H

MOV TMOD,#20H ;设置T1为方式2

MOV TH1,#0FDH ;

MOV TL1,#0FDH

MOV SCON,#50H

MOV PCON,#00H

SETB TR1

LOOP:

MOV SBUF,#58H

WAIT:

JBC TI,LOOP

AJMP WAIT

END

运行结果


我们会看到传输的数据较多,增加个延时再看看效果

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN:

MOV SP,#60H

MOV TMOD,#20H ;设置T1为方式2

MOV TH1,#0FDH ;

MOV TL1,#0FDH

MOV SCON,#50H

MOV PCON,#00H

SETB TR1

LOOP:

CALL DELAY

MOV SBUF,#58H

WAIT:

JBC TI,LOOP

AJMP WAIT

 
 

DELAY:

    MOV R0,#0FFH

    D2:

        MOV R1,#0FFH

        D1:

            MOV R2,#0FH

            D0:

            DJNZ R2,D0

        DJNZ R1,D1

    DJNZ R0,D2

    RET

 
 

END

运行效果如下


 
 

中断方式实现接收数据反发送回去

ORG 0000H

LJMP MAIN

ORG 0030H

LJMP INTA

ORG 0100H

MAIN:

MOV SP,#60H

MOV TMOD,#20H ;设置T1为方式2

MOV TH1,#0FDH ;

MOV TL1,#0FDH

MOV SCON,#50H

MOV PCON,#00H

    SETB ES

    SETB EA

SETB TR1

SJMP $

 
 

INTA:

CLR RI

    CLR ES

    MOV A,SBUF

    MOV SBUF,A

    WAIT:

        JNB TI,WAIT

    CLR TI

    SETB ES

RETI

 
 

END

运行效果如下图所示

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注