1 / 23

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

基本概念 RS-232 接口 MCS-51 的串行接口 单片机与单片机之间的通信 单片机与 PC 机之间的通信. 第 章 串行口通信技术. Single Chip Microcomputer. 本章内容. 发送. 计算机1 GND. 计算机2 GND. 计算机1 GND. 计算机2 GND. 接收. 并行通信. 串行通信. 什么是串行通信?. 串行通信和并行通信. 并行通信,即数据的各位 同时 传送;. 串行通信,即数据 一位一位 顺序传送。. A 站. B 站. 单工通信. 发送器. 接收器. (. a. ).

frye
Download Presentation

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

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的串行接口 单片机与单片机之间的通信 单片机与PC机之间的通信 第章串行口通信技术 Single Chip Microcomputer 本章内容

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

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

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

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

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

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

  8. 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

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

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

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

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

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

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

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

  16. 在方式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,固定不变

  17. 波特率/(b/s) fosc/MHz SMOD 定时器1 C/ 模式 初始值 方式0:1 方式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的溢出率决定

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

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

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

  21. 参考发送子程序如下: 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

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

  23. 参考接收子程序如下: 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