《《片机串行通信》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《片机串行通信》PPT课件.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机与嵌入式系统第五章 单片机:串行通信王浩 副教授中南大学信息科学与工程学院基本概念基本概念RS-232RS-232接口接口MCS-51MCS-51的串行接口的串行接口单片机与单片机之间的通信单片机与单片机之间的通信编程练习编程练习第第章章串串行行口口通通信信技技术术 本章内容本章内容Single Chip Microcomputer什么是串行通信?什么是串行通信?uu串行通信和并行通信串行通信和并行通信 计算机1 GND 计算机2 GND并行通信 计算机1 GND 计算机2 GND发送接收串行通信并行通信:数据的各位并行通信:数据的各位并行通信:数据的各位并行通信:数据的各位同时同时同时
2、同时传送;传送;传送;传送;串行通信:数据串行通信:数据串行通信:数据串行通信:数据一位一位一位一位一位一位一位一位顺序传送。顺序传送。顺序传送。顺序传送。u发送时的并串转换:发送时的并串转换:u接收时的串并转换:接收时的串并转换:u串行通信的分类:串行通信的分类:异步异步异步异步(Asynchronous Communication)(Asynchronous Communication)(Asynchronous Communication)(Asynchronous Communication)同步同步同步同步(Synchronous Communication)(Synchronous
3、 Communication)(Synchronous Communication)(Synchronous Communication)u串行通信制式:串行通信制式:单工单工单工单工(a)a)a)a)、半双工半双工半双工半双工(b)b)b)b)和和和和全双工全双工全双工全双工(c)c)c)c)(simplex half duplex full duplex)(simplex half duplex full duplex)(simplex half duplex full duplex)(simplex half duplex full duplex)发送器A站接收器B站单工通信(a)发收A
4、站发收B站发收A站发收B站(b)(c)MCS-51的串行接口的串行接口vv概述概述有一个可编程全双工串行通信接口(有一个可编程全双工串行通信接口(有一个可编程全双工串行通信接口(有一个可编程全双工串行通信接口(UART)UART)UART)UART)(Universal Asychronous Receiver/Transmitter(Universal Asychronous Receiver/Transmitter(Universal Asychronous Receiver/Transmitter(Universal Asychronous Receiver/Transmitter )管
5、脚:管脚:管脚:管脚:TXDTXDTXDTXD()、()、()、()、RXDRXDRXDRXD()()()()可同时发送、接收数据可同时发送、接收数据可同时发送、接收数据可同时发送、接收数据(Transmit/Receive)Transmit/Receive)有四种工作方式,帧格式有有四种工作方式,帧格式有有四种工作方式,帧格式有有四种工作方式,帧格式有8 8 8 8、10101010、11111111位。位。位。位。波特率波特率波特率波特率(Baud rate)(Baud rate)(Baud rate)(Baud rate)可设置可设置可设置可设置 波特率:每秒钟传送二进制数码的位数,也叫
6、比特数,单位为b/s,即位/秒。MCS-51串行接口的结构串行接口的结构MCS-51串行接口寄存器SBUFSBUF串行口数据缓冲器串行口数据缓冲器串行口数据缓冲器串行口数据缓冲器vv共两个:一个发送寄存器共两个:一个发送寄存器共两个:一个发送寄存器共两个:一个发送寄存器SBUFSBUF,一个接收,一个接收,一个接收,一个接收SBUFSBUF,二者二者二者二者共用一个地址共用一个地址共用一个地址共用一个地址9999H H。SCONSCON串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口控制寄存器PCONPCON电源及波特率选择寄存器电源及波特率选择寄存器电源及波特率选择寄存器电源及波特率选
7、择寄存器控制寄存器控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的第9位发送数据的第9位接收中断标志发送中断标志9FH9EH9DH9CH9BH9AH99H98HSCON98HSM0 SM1工作方式工作方式功能功能波特率波特率0 0方式方式08位同步移位寄存器位同步移位寄存器fosc/120 1方式方式110位位UART可变可变1 0方式方式211位位UARTfosc/64或或fosc/321 1方式方式311位位UART可变可变串行方式的定义例:设串行口工作在方式例:设串行口工作在方式例:设串行口工作在方式例:设串行口工作在方式1
8、 1 1 1,允许接收,则指令为:,允许接收,则指令为:,允许接收,则指令为:,允许接收,则指令为:MOV SCON,#01010000BMOV SCON,#01010000BMOV SCON,#01010000BMOV SCON,#01010000B串行通信只用该位,为串行通信只用该位,为串行通信只用该位,为串行通信只用该位,为1 1时,波特率时,波特率时,波特率时,波特率22;为;为;为;为0 0时不变。时不变。时不变。时不变。电源及波特率选择寄存器电源及波特率选择寄存器PCONPCONSMOD GF1 GF0PDIDL87H串行口四种工作方式应用比较串行口四种工作方式应用比较vv方式的选
9、择由方式的选择由方式的选择由方式的选择由SM1SM1、SM0SM0实现。实现。实现。实现。工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART数据、起始、校验、结束位可变(取决于定时器1溢出率)波特率的设定可参见表7-2,实际无需计算。方式方式0 0 在方式在方式在方式在方式0 0 0 0下,串行口作同步移位寄存器用,其波特率固下,串行口作同步移位寄存器用,其波特率固下,串行口作同步移位寄
10、存器用,其波特率固下,串行口作同步移位寄存器用,其波特率固定为定为定为定为f f f foscoscoscosc/12/12/12/12。串行数据从串行数据从串行数据从串行数据从RXD(P3.0)RXD(P3.0)RXD(P3.0)RXD(P3.0)端输入或输出,同步移端输入或输出,同步移端输入或输出,同步移端输入或输出,同步移位脉冲由位脉冲由位脉冲由位脉冲由TXD(P3.1)TXD(P3.1)TXD(P3.1)TXD(P3.1)送出。这种方式常用于扩展送出。这种方式常用于扩展送出。这种方式常用于扩展送出。这种方式常用于扩展I/OI/OI/OI/O口。口。口。口。方式0用于扩展I/O口输入方式
11、0用于扩展I/O口输出方式110位的帧格式 串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。方式方式2 2 串行口为串行口为串行口为串行口为11111111位位位位UARTUARTUARTUART,传送波特率与传送波特率与传送波特率与传送波特率与SMODSMODSMODSMOD有关。发送或接有关。发送或接有关。发送或接有关。发送或接收的一帧数据中包括收的一帧数据中包括收的一帧数据中包括收的一帧数据中包括1 1 1 1位起始位位起始位位起始位位起始位0 0 0 0,8 8 8 8位数据位,位数据位,位数据位,位数据位,1 1
12、1 1位可编程位位可编程位位可编程位位可编程位(用于奇偶校验用于奇偶校验用于奇偶校验用于奇偶校验)和和和和1 1 1 1位停止位位停止位位停止位位停止位1 1 1 1。11位的帧格式方式方式3 3 方式方式方式方式3 3 3 3为波特率可变的为波特率可变的为波特率可变的为波特率可变的11111111位位位位UARTUARTUARTUART通信方式,除了波通信方式,除了波通信方式,除了波通信方式,除了波特率以外,方式特率以外,方式特率以外,方式特率以外,方式3 3 3 3和方式和方式和方式和方式2 2 2 2完全相同。完全相同。完全相同。完全相同。MCS-51串行口的波特率串行口的波特率 在方式
13、2中,波特率取决于PCON中的SMOD值:当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32.即波特率=。oscSMODf642 在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变2.2.2.2.方式方式方式方式1 1 1 1和方式和方式和方式和方式3 3 3 3的波特率可变,由定时器的波特率可变,由定时器的波特率可变,由定时器的波特率可变,由定时器1 1 1 1的溢出率决定的溢出率决定的溢出率决定的溢出率决定波特率/(b/s)fosc/MHzSMOD定时器1C/模式初始值方式0:1 M方式2:375 k方式1、3:62.5 k19.2 k9.6
14、 k4.8 k2.4 k1.2 k137.5 11011012121211.05911.05911.05911.05911.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=单片机之间的通信双机异步通信接口电路RS-422ARS-422A双机异步通信接口双机异步通信接口双机异步通信接口双机异步通信接口电电电电路路路路双机通信操作步骤v1、根据要求确定串口工作方式v2、设定定时器的工作模式并计算初值v3、启动定时器v4、开启中断v5、发送或接收开始双机通信软件编程(中断方式)双机通信软件编程(中断方
15、式)例例7-4:89C51串行口按双工方式收发串行口按双工方式收发ASCII字符,最高位用来作奇偶校验位,字符,最高位用来作奇偶校验位,采用奇校验方式,要求传送的波特率为采用奇校验方式,要求传送的波特率为1200b/s。编写有关的通信程序。其中。编写有关的通信程序。其中系统工作时钟系统工作时钟 fosc为为6MHz。1、根据 表7-2 确定串口工作模式为方式1,SMOD=02、经查表设定定时器T1的工作模式为2,初值为F3H,C/T=0程序清单:程序清单:主程序主程序 ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV SCON,#50H ;设置为方式设置为方式1,R
16、EN=1 MOV TMOD,#20H ;定时器定时器1设为模式设为模式2 MOV TL1,#0F3H ;定时器初值定时器初值 MOV TH1,#0F3H ;8位重装值位重装值 SETB TR1 ;启动定时器启动定时器1 MOV R0,#20H ;发送数据区首址发送数据区首址 MOV R1,#40H ;接收数据取首址接收数据取首址 SETB ES SETB EA ACALL SOUT ;先输出一个字符先输出一个字符 SJMP$;等待中断等待中断中断服务程序中断服务程序:ORG 0023H ;串行口中断入口串行口中断入口 AJMP SBR1 ;转至中断服务程序转至中断服务程序 ORG 0200H
17、SBR1:JNB RI,SEND ;TI=1,为发送中断为发送中断 ACALL SIN ;RI=1,为接收中断为接收中断 SJMP EXIT ;转至统一的出口转至统一的出口SEND:ACALL SOUT ;调用发送子程序调用发送子程序EXIT:RETI ;中断返回中断返回发送子程序发送子程序 SOUT:CLR TI MOV A,R0 ;取发送数据到取发送数据到A MOV C,P ;奇偶标识赋予奇偶标识赋予C CPL C ;奇校验奇校验,C;A的最高位存放校验位的最高位存放校验位 INC R0 ;修改发送数据指针修改发送数据指针 MOV SBUF,A ;发送发送ASCII码码 RET ;返回返回接收子程序接收子程序 SIN:CLR RI MOV A,SBUF ;读出接收缓冲区内容读出接收缓冲区内容 MOV C,P ;取出校验位取出校验位 JNC ERR ;奇校验奇校验 ANL A,#7FH ;删去校验位删去校验位MOV R1,A ;读入接收缓冲区读入接收缓冲区 INC R1 ;修改接收数据指针修改接收数据指针 RET ;返回返回ERR:;错误处理函数;错误处理函数 RET
限制150内