1 / 35

第 5 章 MCS-5l 的串行接口

第 5 章 MCS-5l 的串行接口. 5.1 串行通信的基本概念 5.2 MCS-51 串行口的结构 5.3 串行口的工作方式 5.4 串行口的应用举例 5.5 标准串行通信接口 RS-232C. 退出. 5.1 串行通信的基本概念. 5.1.1 并行通信与串行通信。 5.1.2 串行通信方式 串行通信有三种方式:单工通信、半双工通信和全双工通信。 5.1.3 串行通信的同步方式. 1 、 异步通信. 2 、 同步通信. 5.1.4 波特率. 5.2 MCS-51 串行口的结构.

joelle
Download Presentation

第 5 章 MCS-5l 的串行接口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第5章 MCS-5l的串行接口 • 5.1 串行通信的基本概念 • 5.2 MCS-51串行口的结构 • 5.3 串行口的工作方式 • 5.4 串行口的应用举例 • 5.5 标准串行通信接口RS-232C 退出

  2. 5.1 串行通信的基本概念 • 5.1.1 并行通信与串行通信。 • 5.1.2 串行通信方式 • 串行通信有三种方式:单工通信、半双工通信和全双工通信。 • 5.1.3 串行通信的同步方式

  3. 1、 异步通信

  4. 2、 同步通信 5.1.4 波特率

  5. 5.2 MCS-51串行口的结构 • 5.2.1 MCS-51串行口的构成 • MCS-51单片机串行口控制寄存器有两个;特殊功能寄存器SCON(98H)利PCON(87H),可以用软件改变两者的内容来控制串行口的工作方式和波特率。

  6. 5.2.2 串行口控制寄存器SCON • 串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等。其位格式为:

  7. SM0、SM1:串行口工作方式控制位,两位对应四种工作方式,如表7-1所示(fosc是晶振频率)。SM0、SM1:串行口工作方式控制位,两位对应四种工作方式,如表7-1所示(fosc是晶振频率)。

  8. 5.2.3 特殊功能寄存器PCON和波特率的选择 电源控制寄存器PCON中只有一位SMOD与串行口工作有关,它的位格式为: SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不提高一倍。单片机复位时,SMOD=0。

  9. 1、方式0的波特率 工作方式0时,移位脉冲由机器周期的第6个状态周期S6给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。因此,波特率是固定的,为振荡频率的1/12,不受PCON寄存器中SMOD的影响。用公式表示为: 工作方式0的波特率=fosc/12

  10. 2、方式2的波特率 工作方式2时,移位脉冲由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中的SMOD位的值,当SMOD=0时,波特率为fosc的1/64;当SMOD=1时,波特率为fosc的1/32,用公式表示为; 工作方式2波特率=(2SMOD/64)×fosc

  11. 5.3 串行口的工作方式 • 5.3.1 工作方式0 串行扩展为并行方式

  12. 工作方式0发送时序

  13. 串行扩展为并行方式

  14. 工作方式0接收时序

  15. 5.4 串行口的应用举例 【例5-1】有两台8031单片机相距很近,直接将它们的串行口相连,1#机的TXD接2#机的RXD,2#机的TXD接1#机的RXD,二机的GND相连。二机的晶振频率均为11.0592MHZ,通信的波特率为4800bps。现将第一台8031单片机片内RAM40H~5FH单元内的数据,串行发送到第二台8031单片机片内RAM60H~7FH单元中。

  16. 发送与接收的参考程序如下:1#单片机发送程序:发送与接收的参考程序如下:1#单片机发送程序: • ORG 1000H • TX:MOV TMOD , #02H • MOV TH1 , #0FAH • MOV TL1 , #0FAH • MOV SCON , #80H ; • 设定工作方式2 • MOV PCON, #00H ; • 波特率为fosc/64 • SETB TR0

  17. MOV R0 , #40H;设发送数据的地址指针 • MOV R2 , #20H;设发送数据长度 • LOOP:MOV A , @R0;取发送数据送A • MOV C , PSW.0 • MOV TB8 , C;奇偶位送TB8 • MOV SBUF , A;启动发送 • WAIT:JBC TI , LL1;判发送中断标志 • SJMP WAIT

  18. LL1:INC R0 • DJNZ R2 , LOOP • RET • 2#单片机接收程序: • ORG 1000H • RX:MOV TMOD , #02H • MOV TH1 , #0FAH • MOV TL1 , #0FAH • MOV SCON , #90H;设定工作方式2,并允许接收

  19. MOV PCON , #00H • SETB TR0 • MOV R0 , #60H • MOV R2 , #20H • LOOP: JBC RI , MM1;等待接收数据 • SJMP LOOP • MM1: MOV A , SBUF;读入一帧数据 • JB PSW.0 , PP1;判接收端奇偶 • JB RB8 , ERROR ;判发送端奇偶 • SJMP RIGHT

  20. PP1:JNB RB8 , ERROR;接收出错 • RIGHT: MOV @R0 , A;接收正确 • INC R0 • DJNZ R2 , LOOP • ERROR: SETB PSW.5;置出错标志 • RET

  21. 【例5-2】甲乙两机进行串行通信,将甲机片外RAM中1000H单元开始的32个数据发送到乙机的片外RAM 1000H开始的单元中。二机的晶振频率均为11.0592MHZ,通信的波特率为1200bps。 设甲、乙机串行口均工作在方式1,根据发送和接收的波特率,设置定时器T1工作在方式2,当SMOD=0,则计数初值为E8H。甲机发送子程序流程图如图7-7(a)所示,乙机接收子程序流程图如图7-7(b)所示。

  22. 参考程序如下: • (1)甲机发送子程序: • ORG 1000H • TTTT: MOV TMOD , #20H • MOV TH1 , #0E8H • MOV TL1 , #0E8H • SETB TR1 • MOV SCON , #50H • MOV 87H , #00H

  23. ENTER:MOV DPH , #10H MOV DPL , #00H MOV R4 , #20H MOV R5 , #00H TX1: MOV A , #04H MOV SBUF , A WAIT1:JBC TI , RX1 SJMP WAIT1 RX1: JBC RI , NEXT1 SJMP RX1

  24. NEXT1: MOV A , SBUF • CJNE A , #00H , TX1 • TX2: MOV A , R4 • MOV SBUF , A • ADD A , R5 • MOV R5 , A • WAIT2: JBC TI , TX3 • SJMP WAIT2 • TX3: MOVX A , @DPTR • MOV SBUF , A • ADD A , R5 • MOV R5 , A • INC DPTR

  25. WAIT3:JBC TI , NEXT2 SJMP WAIT3 NEXT2:DJNZ R4 , TX3 MOV A , R5 MOV SBUF , A WAIT4:JBC TI , RX_11H SJMP WAIT4 RX_11H:JBC RI , IF_11H SJMP RX_11H IF_11H:MOV A , SBUF CJNE A , #11H , ENTER RET

  26. (2)乙机接收子程序: • ORG 1000H • RRRR: MOV TMOD , #20H • MOV TH1 , #0E8H • MOV TL1 , #0E8H • SETB TR1 • MOV SCON , #50H • MOV 87H, #00H • ENTER: MOV DPH , #10H • MOV DPL , #00H • MOV R5 , #00H

  27. RX1:JBC RI , IF_04H • SJMP RX1 • IF_04H: MOV A , SBUF • CJNE A , #04H , TX_FFH • MOV A , #00H • MOV SBUF , A • WAIT1: JBC TI , RX2 • SJMP WAIT1 • LJMP RX2 • TX_FFH: MOV A , #0FFH • MOV SBUF , A

  28. WAIT2:JBC TI , LL1 SJMP WAIT2 LL1: LJMP ENTER RX2: JBC RI , LL2 SJMP RX2 LL2: MOV A , SBUF MOV R4 , A MOV R5 , A RX3: JBC RI , LL3 SJMP RX3

  29. LL3:MOV A , SBUF • MOVX @DPTR , A • INC DPTR • ADD A , R5 • MOV R5 , A • DJNZ R4 , RX3 • RX4:JBC RI , LL4 • SJMP RX4 • LL4:MOV A , SBUF • MOV 30H , R5 • CJNE A, 30H , T_ERR

  30. T_RIGHT:MOV A , #11H MOV SBUF , A WAIT3:JBC TI , EN SJMP WAIT3 T_ERR:MOV A , #0F0H MOV SBUF , A WAIT4:JBC TI , AGAIN SJMP WAIT4 AGAIN:LJMP ENTER EN:RET

  31. 5.5 标准串行通信接口RS-232C • 5.5.1接口信号 • 5.5.2 RS-232C接口的典型应用 • 5.5.3 RS-232C接口电平调整

More Related