资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章机械工业出版社同名教材配套电子教案第6章 串行通信本章 要点v异步通信和同步通信 v串行通信波特率 v串行通信的制式 v串行通信的校验 v串行口特殊功能寄存器 v串行工作方式串行通信优点:便于长距离传送缺点:传送速度较慢计算机与外界信息交换称为通信。通信的基本方式可分为并行通信和串行通信:并行通信是数据的各位同时发送或同时接收;串行通信是数据的各位依次逐位发送或接收。并行通信优点:传送速度快 缺点:不便长距离传送异步通信对硬件要求较低,实现起来 比较简单、灵活,适用于数据的随机发送/接收 ,但因每个字节都要建立一次同步,即每个字 符都要额外附加两位,所以工作速度较低,在 单片机中主要采用异步通信方式。6-1 串行通信概述一、异步通信和同步通信 串行通信按同步方式可分为异步通信和同步通信 。 1、异步通信 异步通信依靠起始位、停止位保持通信同步。异步通信数据传送按帧传输,一帧数据包含 起始位、数据位、校验位和停止位。同步通信传输速度较快,但要求 有准确的时钟来实现收发双方的严格同步, 对硬件要求较高,适用于成批数据传送。2、 同步通信同步通信依靠同步字符保持通信同步。同步通信是由12个同步字符和多字节数 据位组成,同步字符作为起始位以触发同步时 钟开始发送或接收数据;多字节数据之间不允 许有空隙,每位占用的时间相等;空闲位需发 送同步字符。波特率的倒数即为每位传输所需的时 间。相互通信的甲乙双方必须具有相同的 波特率,否则无法成功地完成串行数据通 信。二、串行通信波特率波特率bps(bit per second)定义:每秒传输数据的位数,即:1波特 = 1位/秒(1bps)三、串行通信的制式串行通信按照数据传送方向可分为三种制 式:单工制式是指甲乙双方通信时只能单向传 送数据,发送方和接收方固定。 1、单工制式(Simplex)半双工制式是指通信双方都具有发送 器和接收器,既可发送也可接收,但不能同 时接收和发送,发送时不能接收,接收时不 能发送。2、半双工制式(Half Duplex)全双工制式是指通信双方均设有发 送器和接收器,并且信道划分为发送信道和接 收信道,因此全双工制式可实现甲乙双方同时 发送和接收数据,发送时能接收,接收时也能 发送。3、全双工制式(Full Duplex)四、串行通信的校验3、循环冗余码校验 (Cyclic Redundancy Check,简称CRC )1、奇偶校验2、累加和校验80C51系列单片机有一个全 双工的串行口,这个口既可以用于网 络通信,也可以实现串行异步通信, 还可以作为同步移位寄存器使用。6-2 80C51串行口发送时,只需将发送数据输入SBUF,CPU将自动 启动和完成串行数据的发送;接收时,CPU将自动把接收到的数据存入SBUF,用 户只需从SBUF中读出接收数据。一、串行口特殊功能寄存器1、串行数据缓冲器SBUF在逻辑上只有一个,既表示发送寄存器,又表示接收寄 存器,具有同一个单元地址99H,用同一寄存器名SBUF。在物理上有两个,一个是发送缓冲寄存器,另一个是接 收缓冲寄存器。2、串行控制寄存器SCON3、电源控制寄存器PCONSCOND7D6D5D4D3D2D1D0 位名称SM0SM1SM2RENTB8RB8TIRI 位地址9FH9EH9DH9CH9BH9AH99H98H功能工作方式 选择选择多机通信 控制接收 允许许发发送 第9位接收 第9位发发送 中断接收 中断 SM0 SM1 串行口工作方式选择位。 SM2 多机通信控制位。 REN 允许接收控制位。REN=1,允许接收。 TB8 方式2和方式3中要发送的第9位数据。 RB8 方式2和方式3中要接收的第9位数据。 TI 发送中断标志。 RI 接收中断标志。PCOND7D6D5D4D3D2D1D0 位名称SMODGF1GF0PDIDLSMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。二、串行工作方式80C51串行通信共有4种工作方式,由串行控制寄存器SCON 中SM0 SM1决定。1、串行工作方式0(同步移位寄存器工作方式)以RXD(P3.0)端作为数据移位的输入/输出端,以TXD(P3.1)端输出移位脉冲。移位数据的发送和接收以8位为一帧,不设起始位和停止 位,无论输入/输出,均低位在前高位在后。 其帧格式为: D0D1D2D3D4D5D6D7 方式0可将串行输入输出数据转换成并行输入输出数据。 数据发送在移位时钟脉冲(TXD)的控制下,数据从串行口RXD 端逐位移入74HC164 SA、SB端。当8位数据全部移出后, SCON寄存器的TI位被自动置1。其后74HC164的内容即可并 行输出。74HC164 CLR为清0端,输出时CLR必须为1,否则 74HC164 Q0Q7输出为0。 串行口作为并行输出口使用时,要有“串入并 出”的移位寄存器配合。(2) 数据接收串行口作为并行输入口使用时,要有“并入串 出”的移位寄存器配合。74HC165 S/L端为移位/置入端,当S/L=0时,从Q0 Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在 80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位 时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数 据D7后,置位中断标志RI,表示一帧数据接收完成。 波特率 方式0 波特率固定,为单片机晶振频率的十二分之一。 应用举例 【例6-1】电路如图所示,试编制程序按下列顺序要求每隔 0.5秒循环操作。 从右向左依次点亮, 每次亮一个; 从左向右依次点亮, 每次增加一个, 直至全 部点亮; 返回从不断循环。 8个发光二极管全部点亮; 从左向右依次暗灭,每次减少一个,直至全灭; 从左向右依次点亮, 每次亮一个;解:编程如下:LIGHT:MOV SCON,#00H ;串行口方式0CLR ES ;禁止串行中断MOV DPTR,#TAB ;置发光二极管亮暗控制字表首址 LP1: MOV R7,#0 ;置顺序编号0 LP2: MOV A,R7 ;读顺序编号MOVC A,A+DPTR ;读控制字CLR P1.0 ;关闭并行输出MOV SBUF,A ;启动串行发送JNB TI,$ ;等待发送完毕CLR TI ;清发送中断标志SETB P1.0 ;开启并行输出LCALL DLY500ms ;调用延时0.5秒子程序(参阅例4-13)INC R7 ;指向下一控制字CJNE R7,#30,LP2 ;判循环操作完否?未完继续SJMP LP1 ;顺序编号029依次操作完毕,从0开始重新 循环TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;从左向右依次暗灭,每次减少一个,直至全灭;DB 80H,40H,20H,10H,08H,04H,02H,01H;从左向右依次点亮,每次亮一个DB 02H,04H,08H,10H,20H,40H,80H;从右向左依次点亮,每次亮一个DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;从左向右依次点亮,每次增加一个,直至全部点亮;【例】电路如 图所示,试编制 程序输入K1K8 状态数据,并存 入内RAM 40H。 解:编程如下: KIN: MOV SCON,#00H;串行口方式0CLR ES ;禁止串行中断CLR P1.0 ;锁存并行输入数据SETB P1.0 ;允许串行移位操作SETB REN ;允许并启动接收(TXD发送移位脉 冲)JNB RI,$ ;等待接收完毕MOV 40H,SBUF ;存入K1K8状态数据RET ;2、串行工作方式1方式1是一帧10位的异步串行通信方式,包括1个起始位 ,8个数据位和一个停止位。其帧格式为: 起始D0D1D2D3D4D5D6D7停止 数据发送发送时只要将数据写入SBUF,在串行口由硬件自动加入 起始位和停止位,构成一个完整的帧格式。然后在移位脉冲 的作用下,由TXD端串行输出。一帧数据发送完毕,将SCON 中的TI置1。 数据接收接收时,在REN=1前提下,当采样到RXD从1向0跳变状态 时,就认定为已接收到起始位。随后在移位脉冲的控制下, 将串行接收数据移入SBUF中。一帧数据接收完毕,将SCON中 的RI置1,表示可以从SBUF取走接收到的一个字符。 2SMOD 32fosc 12 波特率在实际应用时,通常是先确定波特率 ,后根据波特率求T1定时初值,因此上式又可 写为: 波特率 方式1波特率可变,由定时/计数器T1的计 数溢出率来决定。波特率 = 2SMOD(T1溢出率)/ 32其中SMOD为PCON寄存器中最高位的值, SMOD=1表示波特率倍增。T1初值 = 256 应用举 例【例6-3】设甲乙机以串行方式1进行数据传送, fosc=11.0592MHz,波特率为1200b/s。甲机发送的 16个数据存在内RAM 40H4FH单元中,乙机接收后 存在内RAM 50H为首地址的区域中。T1初值 = 256 - = 232 = E8H32121200解: 串行方式1波特率取决于T1溢出率(设SMOD=0), 计算T1定时初值:1105920020甲机发送子程序: MOV TMOD,#20H;置T1定时器工作方式2 MOV TL1,#0E8H;置T1计数初值 MOV TH1,#0E8H;置T1计数重装值 CLR ET1;禁止T1中断 SETB TR1;T1启动 MOV SCON,#40H;置串行方式1,禁止接收 MOV PCON,#00H;置SMOD=0(SMOD不能位操作) CLR ES;禁止串行中断 MOV R0,#40H;置发送数据区首地址 MOV R2,#16;置发送数据长度 MOVA,R0;读一个数据 MOVSBUF,A;发送 JNBTI,$;等待一帧数据发送完毕 CLRTI;清发送中断标志 INCR0;指向下一字节单元 DJNZR2,TRSA;判16个数据发完否?未完继续 RET ;TXDA:TRSA:MOV TMOD,#20H;置T1定时器工作方式2 MOV TL1,#0E8H;置T1计数初值 MOV TH1,#0E8H;置T1计数重装值 CLR ET1;禁止T1中断 SETB TR1;T1启动 MOV SCON,#40H;置串行方式1,禁止接收 MOV PCON,#00H;置SMOD=0(SMOD不能位操作) CLR ES;禁止串行中断 MOV R0,#50H ;置接收数据区首地址 MOV R2,#16 ;置接收数据长度 SETB REN;启动接收 JNB RI,$;等待一帧数据接收完毕 CLR RI;清接收中断标志 MOV A,SBUF;读接收数据 MOV R0,A;存接收数据 INC R0;指向下一数据存储单元 DJNZ R2,RDSB;判16个数据接收完否?未完继 续 RET ;乙机接收子程序: RXDB:RDSB:方式2是一帧11位的串行通信方式,即1个 起始位,8个数据位,1个可编程位TB8/RB8和1个停止 位, 其帧格式为:3、 串行工作方式2起始D0D1D2D3D4D5D6D7TB8/RB8停止波特率=2SMOD fo
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号