资源描述
单击此处编辑母版标题样式,第六模块 单片机串行通信技术项目实训,项目,13,串并转换控制,项目,14,单片机控制单片机,项目,13,串并转换控制,任务,6-13,使用串行口方式,0,串并转换控制流水灯,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,MCS-51,单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(,SBUF,),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们共用同一个地址,99H,。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可以方便地构成标准的,RS-232,接口。,1,基本概念,(,1,)数据通信的传输方式,常用于数据通信的传输方式有单工、半双工、全双工和多工方式,。,单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集,。,半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收,/,发开关转换,。,全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂,。,多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,称之为多工传输方式,。,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,(2)串行数据通信两种形式,异步通信,在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的。在异步通信方式中,数据是一帧一帧传送的。一帧数据传送完毕后可以接着传送下一帧数据,也可以等待,等待期间为高电平。用一帧来表示一个字符,其格式如下:一个起始位“0”(低电平),紧接着是8个数据位,规定低位在前,高位在后。接下来是奇偶校验位(可以省略),最后是停止位“1”(高电平)。,下图,所示是异步通信方式及数据格式示意图,。,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,同步通信,同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。下图所示是同步通信方式及数据格式示意图。,同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂,。,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,(3)串行数据通信的传输速率,串行数据传输速率有两个概念,即每秒传送的位数bps(Bit,per,second)和每秒符号数,波特率(Band,rate),在具有调制解调器的通信中,波特率与调制速率有关,。,2MCS-51的串行口和控制寄存器,(1)串行口数据收发缓冲寄存器SBUF,MCS-51单片机串行口寄存器结构如,下图,所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。,从图中可看出,接收缓冲器前还加上一级输入移位寄存器,,MCS-51,这种结构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,,CPU,是主动的,不可能出现这种现象。,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,SCON,D7,D6,D5,D4,D3,D2,D1,D0,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,位地址,9FH,9EH,8DH,9CH,9BH,9AH,99H,98H,(,2,)串行通信控制寄存器,SCON,SCON,控制寄存器是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是,98H,,其结构格式如下:,各控制位功能如下:,SM0、SM1:串行口工作方式控制位,可通过设置SM0、SM1来选择串行口4种不同的工作方式。,右,表列出了这4种工作方式的选择方法与功能比较。,SM0,SM1,工作方式,功能说明,0,0,0,同步移位寄存器方式(用于扩展,I/O,口),波特率为,f,osc,/12,0,1,1,8,位异步收发,波特率可变(由定时器,T1,设置),1,0,2,8,位异步收发,波特率为,f,osc,/64,或,f,osc,/32,1,1,3,9,位异步收发,波特率可变(由定时器,T1,设置),任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,SM2:多机通信控制位,多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。SM2=1时,允许多机通信;当SM2=0时,禁止多机通信。,串行口工作于方式0时,SM2必须为0。,REN:数据接收控制位,REN用于控制数据接收的允许和禁止,REN=1时,允许串行口接收数据,REN=0时,禁止串行口接收数据。,TB8:发送数据的第9位,在方式2和方式3中,TB8是要发送的第9位数据位,通常用作数据的校验位。在多机通信中同样亦要传输这一位,用作地址帧或数据帧的标志位:TB8=0为数据帧,TB8=1时为地址帧。,RB8:接收数据的第9位,在方式2和方式3中,RB8存放接收到的第9位数据。在方式1中,若SM2=0,则RB8是接收到的停止位。,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,TI:发送中断标志位,串行口在工作方式0时,串行发送完第8位数据后,TI由硬件置“1”,向CPU发送中断请求,在CPU响应中断后,必须用软件清0。其它方式下,TI在停止位开始发送前自动置“1”,向CPU发送中断请求,在CPU响应中断后,也必须用软件清0。,RI:接收中断标志位,串行口在工作方式0时,串行接收完第8位数据后,RI由硬件置“1”,向CPU发送中断请求,在CPU响应中断后,必须用软件清0。其它方式下,RI在接收到停止位时自动置“1”,向CPU发送中断请求,在CPU响应中断取走数据后,必须用软件清0,以准备开始接收下一帧数据。,在系统复位时,SCON的所有位均被清0。,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,MCS-51单片机的串行通信,(3)电源控制寄存器PCON,PCON是为单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:,PCON,D7,D6,D5,D4,D3,D2,D1,D0,位符号,SMOD,-,-,-,GF1,GF0,PD,IDL,在CHMOS型单片机中,除SMOD位外,其他位均为虚设的。SMOD是串行口波特率设置位,在方式1、2、3时起作用。若SMOD=0,波特率不变;若SMOD=1,波特率加倍。当系统复位时,SMOD=0。,任务,6-13,使用串行口方式,0,串并转换控制流水灯,一、,74LS164简介,74LS164是8位移位寄存器,它能实现数据传输从串行输入到并行输出的方式转化,在单片机应用技术中常用来实现对I/O口的扩展。,下,图所示为74LS164的引脚分布与IEC逻辑符号,:,任务,6-13,使用串行口方式,0,串并转换控制流水灯,二、,74LS164简介,174LS164的引脚说明,74LS164的引脚说明,如右,表,所示:,符号,引脚,说 明,DSA,1,串行数据输入端,DSB,2,串行数据输入端,Q0,Q3,3,6,输出端,GND,7,地,(0 V),CP,8,时钟输入端,(低电平到高电平边沿触发),9,同步清除输入端(低电平有效),Q4,Q7,10,13,输出端,VCC,14,正电源,274LS164使用说明,清除端,为低电平时将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平;清除端,为高电平时将允许数据的传输。串行数据输入端DSA、DSB同时具有控制数据输入的功能。数据通过两个输入端DSA 或 DSB之一串行输入:当DSA、DSB中任意一端为低电平时,就会禁止数据的输入,在时钟端CP脉冲上升沿作用下 Q0 为低电平;当 DSA、DSB有一个为高电平用作使能端时,则另一个就允许输入数据,并在CP脉冲上升沿作用下决定 Q0 的状态。在每次CP脉冲上升沿,数据右移一位,输入到 Q0。Q0 实际上是两个数据输入端DSA和DSB的逻辑与,两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。,二、,硬件电路设计,三、,软件程序设计,任务,6-13,使用串行口方式,0,串并转换控制流水灯,项目,14,单片机控制单片机,任务,6-14-1,使用串口方式,1,进行单工通信,任务,6-14-2,使用串口方式,3,进行单工通信,任务,6-14-1,使用串口方式,1,进行单工通信,一、,MCS-51单片机串行口工作方式(一),MCS-51单片机串行口有4种工作方式,即方式0、方式1、方式2和方式3。,一、方式0,1数据发送,当SCON中的SM0SM1=00时,串行口工作在方式0。若要发送数据,通常需外接8位串/并转换移位寄存器74LS164,具体连接电路如,右图,所示。其中RXD端用来输出串行数据,TXD端用来输出移位脉冲,P1.7引脚用来对74LS164进行清0。,发送数据前,P1.7引脚先发出一个清0信号(低电平)到74LS164的第9引脚,对其进行清0,让D0D7全部为0。然后让单片机执行写SBUF命令,只要将数据写入SBUF,单片机即自动开始数据发送,从RXD(P3.0)引脚送出8位数据。与此同时,单片机TXD端输出移位脉冲到74LS164的第8引脚(时钟引脚),使74LS164按照先低位后高位的顺序从RXD端接收8位数据。数据发送完毕,74LS164的D0D7端即输出8位数据。数据发送完毕后,SCON的发送中断标志位TI自动置“1”。为继续发送数据,需用软件将TI清0。,任务,6-14-1,使用串口方式,1,进行单工通信,一、,MCS-51单片机串行口工作方式(一),一、方式0,2,数据接收,要接收数据,需在单片机外部连接,8,位并,/,串转换移位寄存器,74LS165,,连接电路如右图所示。图中,,RXD,端用来接收输入的串行数据,,TXD,端用来输出移位脉冲,,P3.7,引脚用来对,74LS165,的数据进行锁存。,首先从,P3.7,引脚发出一个低电平信号到,74LS165,的引脚,1,,锁存由,D7,D0,端输入的,8,位数据,然后由单片机执行读,SBUF,指令开始接收数据。同时,TXD,端送移位脉冲到,74LS165,的第,2,引脚(时钟引脚),使数据逐位从,RXD,端送入单片机。在串行口接收到一帧数据后,,SCON,的接收中断标志位,RI,自动置“,1”,。为继续接收数据,需用软件将,RI,清,0,。,在方式,0,中,串行通信口发送和接收数据的波特率都是,/12,。,任务,6-14-1,使用串口方式,1,进行单工通信,一、,MCS-51单片机串行口工作方式(一),二、方式,1,当,SCON,中的,SM0SM1=01,时,串行通信口工作于方式,1,。此时,可发送或接收的一帧信息共,10,位,,1,位起始位(低电平“,0”,),,8,位数据位(,D0,D7,),,1,位停止位(高电平“,1”,)。,1,数据发送,发送数据时,用指令将数据写入发送缓冲,SBUF,中,发送控制器在移位脉冲(由,T1,产生的信号经
展开阅读全文