1 / 26

基本概念 RS-232 接口 MCS-51 的串行接口 单片机与单片机之间的通信 编成练习

基本概念 RS-232 接口 MCS-51 的串行接口 单片机与单片机之间的通信 编成练习. 第 章 串行口通信技术. Single Chip Microcomputer. 本章内容. 实训 8 单片机之间的双机通信. 1 .实训目的 (1) 复习掌握定时器的功能和编程使用。 (2) 理解串行通信与并行通信的两种方式。 (3) 掌握串行通信的重要指标:字符帧和波特率。 (4 )初步了解 MCS-51 单片机串行口的使用方法。. 单片机间经常需要互相传递信息--通信. 2 .实训引入. 3 .实训程序. 乙机接收及显示程序参考如下:

gavan
Download Presentation

基本概念 RS-232 接口 MCS-51 的串行接口 单片机与单片机之间的通信 编成练习

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. 基本概念 RS-232接口 MCS-51的串行接口 单片机与单片机之间的通信 编成练习 第章串行口通信技术 Single Chip Microcomputer 本章内容

  2. 实训8单片机之间的双机通信 1.实训目的 (1) 复习掌握定时器的功能和编程使用。 (2) 理解串行通信与并行通信的两种方式。 (3) 掌握串行通信的重要指标:字符帧和波特率。 (4)初步了解MCS-51单片机串行口的使用方法。 单片机间经常需要互相传递信息--通信. 2.实训引入

  3. 3.实训程序 乙机接收及显示程序参考如下: MOV TMOD,#20H MOV TL1,#0F4H MOV TH1,#0F4H SETB TR1 MOV SCON,#40H MOV R0,#20H MOV R7,#08H SETB REN WAIT: JBC RI,READ AJMP WAIT READ: MOV A,SBUF MOV @R0,A INC R0 DJNZ R7,WAIT DISP: LCALL DISPLAY SJMP DISP 甲机发送程序参考如下: MOV TMOD,#20H MOV TL1,#0F4H MOV TH1,#0F4H SETB TR1 MOV SCON,#40H MOV R0,#20H MOV R7,#08H START:MOV A,@R0 MOV SBUF,A WAIT: JBC TI,CONT AJMP WAIT CONT: INC R0 DJNZ R7,START SJMP $

  4. 4. 实训分析与总结 分析程序可以看出,通信双方都有对单片机定时器的编程(注意发送、接收程序的前4条指令),而且双方对定时器的编程完全相同。这说明,MCS-51单片机在进行串行通信时,是与定时器的工作有关的。定时器用来设定串行通信数据的传输速度。在串行通信中,传输速度是用波特率来表征的,有关波特率与定时器的关系以及编程在8.3.3节介绍。

  5. 发送 计算机1 GND 计算机2 GND 计算机1 GND 计算机2 GND 接收 并行通信 串行通信 什么是串行通信? • 串行通信和并行通信 并行通信:数据的各位同时传送; 串行通信:数据一位一位顺序传送。

  6. A站 B站 单工通信 发送器 接收器 ( a ) 发 发 发 收 收 收 收 发 A站 B站 A站 B站 ( b ) ( c ) 串行通信的分类:异步(Asynchronous Communication) 同步(Synchronous Communication) 串行通信制式:单工(a)、半双工(b)和全双工(c) (simplex half duplex full duplex)

  7. MCS-51的串行接口 • 概述 • 有一个可编程全双工串行通信接口(UART) (Universal Asychronous Receiver/Transmitter) • 管脚:TXD(P3.1)、RXD(P3.0) • 可同时发送、接收数据(Transmit/Receive) • 有四种工作方式,帧格式有8、10、11位。 • 波特率(Baud rate)可设置 波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。

  8. MCS-51串行接口的结构

  9. MCS-51串行接口寄存器 • SBUF——串行口数据缓冲器 • 共两个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。 • SCON——串行口控制寄存器 • PCON——电源及波特率选择寄存器

  10. SM0 9FH SM1 9EH SM2 9DH 9CH REN TB8 9BH 9AH RB8 TI 99H 98H RI 接收中断标志 工作方式选择 发送中断标志 多机通信控制位 允许串行接收位 接收数据的第9位 发送数据的第9位 控制寄存器SCON

  11. SM0 SM1 工作方式 功能 波特率 0 0 方式0 8位同步移位寄存器 fosc/12 0 1 方式1 10位UART 可变 1 0 方式2 11位UART fosc/64或fosc/32 1 1 方式3 11位UART 可变 串行方式的定义 例:设串行口工作在方式1,允许接收,则指令为: MOV SCON,#01010000B

  12. SMOD × × × GF1 GF0 PD IDL 电源及波特率选择寄存器PCON 87H 串行通信只用该位,为1时,波特率×2;为0时不变。

  13. 串行口四种工作方式应用比较 波特率的设定可参见表8.2,实际无需计算。 • 方式的选择由SM1、SM0实现。

  14. 方式0 在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。 方式0用于扩展I/O口输出

  15. 方式0用于扩展I/O口输入

  16. 方式1 串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。 10位的帧格式

  17. 方式2 串行口为11位UART,传送波特率与SMOD有关。发送或接收的一帧数据中包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验)和1位停止位1。 11位的帧格式

  18. 方式3 方式3为波特率可变的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。

  19. 在方式2中,波特率取决于PCON中的SMOD值: • 当SMOD=0时,波特率为fosc/64; • 当SMOD=1时,波特率为fosc/32.即波特率 = 。 SMOD 2 f osc 64 MCS-51串行口的波特率 1.方式0和方式2的波特率是固定的 • 在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变

  20. 波特率/(b/s) fosc/MHz SMOD 定时器1 C/ 模式 初始值 方式0:1 M 方式2:375 k 方式1、3:62.5 k 19.2 k 9.6 k 4.8 k 2.4 k 1.2 k 137.5 k 110 110 12 12 12 11.059 11.059 11.059 11.059 11.059 11.986 6 12 × 1 1 1 0 0 0 0 0 0 0 × × 0 0 0 0 0 0 0 0 0 × × 2 2 2 2 2 2 2 2 1 × × FFH FDH FDH FAH F4H E8H 1DH 72H FEEBH T 2. 方式1和方式3的波特率可变,由定时器1的溢出率决定 波特率=

  21. 单片机之间的通信 双机异步通信接口电路

  22. RS-422A双机异步通信接口电路

  23. 双机通信软件编程 查询方式 1) 甲机发送 编程将甲机片外1000H~101FH单元的数据块从串行口输出。定义方式2发送,TB8为奇偶校验位。发送波特率375 kb/s,晶振为12 MHz, SMOD=1。

  24. 参考发送子程序如下: MOV SCON,#80H ;设置串行口为方式2 MOV PCON,#80H ;SMOD=1 MOV DPTR,#1000H ;设数据块指针 MOV R7,#20H ;设数据块长度 START: MOVX A,@DPTR ;取数据给A MOV C,P MOV TB8,C ;奇偶位P送给TB8 MOV SBUF,A ;数据送SBUF,启动发送 WAIT: JBC TI,CONT ;判断一帧是否发送完。若送完,清TI,取下一个数据 AJMP WAIT ;未完等待 CONT: INC DPTR ;更新数据单元 DJNZ R7,START ;循环发送至结束 RET

  25. 2) 乙机接收 编程使乙机接收甲机发送过来的数据块,并存入片内50H~6FH单元。接收过程要求判断RB8,若出错置F0标志为1,正确则置F0标志为0,然后返回。 在进行双机通信时,两机应采用相同的工作方式和波特率。

  26. 参考接收子程序如下: MOV SCON,#80H ;设置串行口为方式2MOV PCON,#80H ;SMOD=1 MOV R0,#50H ;设置数据块指针MOV R7,#20H ;设置数据块长度SETB REN ;启动接收WAIT:JBC RI,READ ;判断是否接收完一帧。若完,清RI,读入数据AJMP WAIT ;未完等待READ:MOV A,SBUF ;读入一帧数据a JNB PSW.0,PZ ;奇偶位为0则转JNB RB8, ERR ;P=1,RB8=0,则出错 SJMP RIGHT ;二者全为1,则正确PZ: JB RB8, ERR ;P=0,RB8=1,则出错RIGHT: MOV @R0, A ;正确,存放数据INC R0 ;更新地址指针DJNZ R7, WAIT ;判断数据块是否接收完CLR PSW.5 ;接收正确,且接收完清F0标志RET ;返回ERR: SETB PSW.5 ;出错,置F0标志为1RET ;返回

More Related