51单片机C语言程序设计授课PPT第章成都大学工业制造学院程跃689S51单片机的串行口2本讲主要内容:补充知识:串行通信基础知识6-1.串行口的结构6-2.串行口的四种工作方式6-3.多机通信6-4波特率的制定方法6-5串行通信的应用设计3串行通信基础知识并行通信是指数据的各位同时进行传送(发送或接收)的通信方式。其优点是传递速度快;缺点是数据有多少位,就需要多少根传送线。并行通信在位数多、传送距离又远时就不太适宜。串行通信指数据是一位一位按顺序传送的通信方式,它的突出优点是只需一对传送线(利用电话线就可作为传送线),这样就大大降低了传送成本,特别适用于远距离通信。其缺点是传送速度较低。并行通信和串行通信4传输方式单工全双工半双工(l)单工方式●信息只能沿一个方向传输,而不能沿相反方向传输。(2)半双工方式●信息可以沿着两个方向传输,但在指定时刻,信息只能沿一个方向传输。(3)全双工方式●信息可以同时沿着两个方向传输。串行通讯的传输方式56(1)异步通信异步通信用起始位0表示字符的开始,然后从低位到高位逐位传送数据,最后用停止位1表示字符结束,如后图所示。一个字符又称一帧信息。图中,一帧信息包括1位起始位、8位数据位和1位停止位,图中,数据位增加到9位。在C8051F单片机系统中,第9位数据D8可以用作奇偶校验位,也可以用作地址/数据帧的标识位,D8=1表示该帧信息传送的是地址,D8=0表示传送的是数据。两帧信息之间可以无间隔,也可以有间隔,且间隔时间可任意改变,间隔用空闲位“1”来填充。异步通信与同步通信7异步通信图异步通信数据格式8奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。9异步通信的优缺点通常,异步通信的波特率为50~9600bit/s。异步通信的优点是不需要传送同步时钟,字符帧长度不受限制,故设备简单。缺点是字符帧中因包含起始位和停止位而降低了有效数据的传输速率。10(2)同步通信在同步通信中,每一数据块开头时发送一个或两个同步字符,使发送与接收双方取得同步。数据块的各个字符间取消了起始位和停止位,所以通信速度得以提高,如图所示。同步通信时,如果发送的数据块之间有间隔时间,则发送同步字符填充。同步通信的数据传输速率较高,通常可达56Kb/s或更高,其缺点是要求发送时钟和接收时钟必须保持严格同步。11同步串口与异步串口同步串口●具有至少一根时钟线、1-2根数据线的串行通讯方式,利用时钟沿对齐数据,所以此种通讯较为可靠,可以实现很高的通讯速率(1Mbps以上,可达Gbps级别)。SPI、IIC、都属于同步串口。异步串口●无专门的时钟线,只有1-2根数据线,收发双方依据实现约定好的位速率确定各个数据位的时间位置,可靠性相对较差,速率在1Mbps以下。异步串口最常见的是UART,以及衍生出来的RS232、RS485等。MAXIM公司的1-WIRE总线属于只有一根线的异步串口,如温度传感器DS18B20。12串并转换发送时的并转串(1)串并转换与设备同步串行通信的过程及通信协议13接收时的串转并14设备同步●进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从而采样传送数据脉冲。●设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。15(2)串行通信协议通信协议(communicationsprotocol)是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。16(2)串行通信协议协议主要由以下三个要素组成:语法:“如何讲”,数据的格式、编码和信号等级(电平的高低)。语义:“讲什么”,数据内容、含义以及控制信息。定时:速率匹配和排序。17(2)串行通信协议起始位数据位奇偶校验位停止位波特率设置握手信号约定186.1串行口的结构串行接口电路的种类和型号很多。能够完成异步通信的硬件电路称为UART,即通用异步接收器/发送器;能够完成同步通信的硬件电路称为USRT;既能够完成异步又能同步通信的硬件电路称为USART。从本质上说,所有的串行接口电路都是以并行数据形式与CPU连接,以串行数据形式与外部逻辑设备连接。它们的基本功能是从外部逻辑设备接收串行数据,转换成并行数据后传送给CPU,或从CPU接收并行数据,转换成串行数据后输出到外部逻辑设备。1989S51具有一个全双工串行通信接口。作用:●作为UART使用。●作为同步移位寄存器用。功能:●扩展IO口。●通过计算机串口实现与PC机的单机或多机通讯。●实现单片机系统之间的点对点单机通讯。2089S51串行口内部结构图有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。21引脚RXD(P3.0)串行数据接收端。引脚TXD(P3.1)串行数据发送端。89S51用T1作为串行通信的波特率发生器。22SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:6.1.1串行口控制寄存器SCONSM0和SM1为工作方式选择位,可选择四种工作方式:SCON(98H)可位寻址23●SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。在方式0时,SM2必须是0。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1。●REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。24●TB8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。在方式0和方式1中,该位未用。●RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。25●TI,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。●RI,接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。26PCON中只有一位SMOD与串行口工作有关:SMOD(PCON.7)波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。PCON(87H)不可位寻址6.1.2串行口控制寄存器PCON27SM0SM1方式功能说明000同步方式(扩展移位寄存器方式,用于I/O口扩展),波特率固定(fosc/12)0118位UART,波特率可变(由T1或T2溢出率决定)1029位UART,波特率固定(fosc/64或fosc/32)1139位UART,波特率可变(由T1或T2溢出率决定)6.2串行口的4种工作方式286.2.1方式0方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。D0D1D2D3D4D5D6D7写入SBUFRXD(数据)TXD(移位脉冲)TI(中断标志)29方式0输入REN=1RXD(数据输入)TXD(移位脉冲)RI=0D0D1D2D3D4D5D6D7方式0接收和发送电路74LS164RXDTXDP1.080C51CLRCLKABGND74LS165RXDTXDP1.080C51S/LCLKQGND30串口外接74HCl64串入并出移位寄存器的接口逻辑见课本图7-5所示。TXD输出移位脉冲,RXD输出数据移入74LSl64。CPU写发送SBUF,启动串行口从低位开始发送,经过8个发送周期,发送SBUF的内容移入74LSl64,并置位TI,完成一字节输出。若fosc=12MHz,则串行输出一位的时间是1μs,传输一个字节需8μs。从低位开始串行输出,数据的低位在右高位在左,在具体应用中应加以注意。方式0输出时,可以串接多个移位寄存器。31例6-1串行数据转换为并行数据(串转并)说明本例的功能为单片机发出串行数据经串并转换芯片74HC164转换为并行数据,并将转换的数据通过8只LED显示出来。本例串口工作于模式0,移位寄存器I/O模式,串行数据由RXD发送给74HC164,TXD用于输出移位时钟脉冲。32电路图d1d2d3d4d5d6d7d8d1d2d3d4d5d6d7d8XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52C122pFC222pFC310uFX1CRYSTALR910kR1220R2220R3220R4220R5220R6220R7220R8220D1LED-REDD2LED-REDD3LED-REDD4LED-REDD5LED-REDD6LED-REDD7LED-REDD8LED-REDABCDSRG8RC1/-&1D1324561081112913U274LS16433知识补充(74系列芯片简介)数字集成电路有双极型集成电路(如TTL、ECL)和单极型集成电路(如CMOS)两大类,每类中又包含有不同的系列品种1TTL数字集成电路这类集成电路内部输入级和输出级都是晶体管结构,属于双极型数字集成电路。其主要系列有:74系列74H系列(早期产品,逐渐被淘汰)74S系列74AS系列(速度较高,但品种较少)74LS系列(目前最常用)74ALS系列(74LS后续产品,速度高、功耗低、价格贵)3474LS系列是当前TTL类型中的主要产品系列。品种和生产厂家都非常多。性能价格比比较高,目前在中小规模电路中应用非常普遍。352CMOS集成电路CMOS数字集成电路是利用NMOS管和PMOS管巧妙组合成的电路,属于一种微功耗的数字集成电路。主要系列有:(1)标准型4000B/4500B系列该系列是以美国RCA公司的CD4000B系列和CD4500B系列制定的,与美国Motorola公司的MC14000B系列和MC14500B系列产品完全兼容。该系列产品的最大特点是工作电源电压范围宽(3~