《单片机技术与应用》项目导读项目小结任务1RS485串行总线实现单片机与PC机通信任务2I2C总线扩展单片机存储器任务3SPI总线实时时钟控制项目九单片机串行接口技术应用《单片机技术与应用》知识分布网络项目九单片机串行接口技术应用485总线通信单片机串行接口RXD和TXD的使用串口设置I2C总线通信串行通信接口芯片MAX487和MAX232I2C串行总线SPI串行总线SPI串行总线时钟芯片DS1302的使用方法I2C串行总线SPI总线通信《单片机技术与应用》相关知识:串行通信基本知识1、串行通信简介串行通信是指一个数据的所有位按一定的顺序和方式,一位一位地通过串行输入/输出口进行传送,如图9-2所示。由于串行通信是按数据的逐位顺序传送,在进行串行通信时,只需一根传输线。在传送的数据位数多且通信距离很长时,这种传输方式的优点就显得很突出了。图9-1串行通信方式任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》(1)异步通信和同步通信串行通信是将构成数据或字符的每个二进制码位,按照一定的顺序逐位进行传送,其传送有两种基本的通信方式:1)同步通信方式同步通信的基本特征是发送与接收保持严格的同步。由于串行传送是逐位顺序进行的,为了约定数据是由哪一位开始传送,需要设定同步字符。这种方式速度快,但是硬件复杂。2)异步通信方式异步通信方式规定了传送格式,每个数据均以相同的帧格式传送。任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》异步通信中一帧数据的格式如图9-3所示,每帧信息由起始位、数据位、奇偶校验位和停止位组成,帧与帧之间用高电平分隔开。图9-2异步通信中一帧数据的格式任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》异步通信的字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成。①起始位:位于字符帧开头,只占一位,为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息。②数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前,高位在后。③奇偶校验位:位于数据位之后,仅占一位,用来表征串行通信中采用奇校验还是偶校验,由用户决定。④停止位:位于字符帧最后,为逻辑1高电平。通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧作准备。任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》在异步通信中,接收与发送之间必须有两项规定:a)帧格式的设定。即帧的字符长度、起始位、数据位、停止位,以及奇偶校验形式等的设定。例如,以ASCII码传送,7位数据位,1位起始位,1位停止位,奇校验方式。这样,一帧的字符总数是10位,而一帧的有用信息是7位。b)波特率的设定。波特率反映了数据通信位流的速度,波特率越高,数据信息传送越快。常用的波特率有300、600、1200、2400、4800、9600、19200和38400等。任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》(2)串行通信中数据的传送方向串行通信制式:单工(a)、半双工(b)和全双工(c)(simplexhalfduplexfullduplex)发送器A站接收器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》2、单片机的串行接口任务一RS485串行总线实现单片机与PC机通信89S52单片机内部集成有一个功能很强的全双工串行通信口,设有2个相互独立的接收、发送缓冲器,可以同时接收和发送数据。图9-4是串行口内部缓冲器的结构,发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以共用一个地址99H。两个缓冲器统称为串行通信特殊功能寄存器SBUF。图9-3串行口内部缓冲器的结构《单片机技术与应用》(1)控制寄存器SCON(98H)SM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的第9位发送数据的第9位接收中断标志发送中断标志9FH9EH9DH9CH9BH9AH99H98H设定工作方式、接收/发送控制以及设置状态标志JBCRI,rel89S52的串行口设有两个控制寄存器:串行控制寄存器SCON和波特率选择特殊功能寄存器PCON。任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可变10方式211位UARTfosc/64或fosc/3211方式311位UART可变例:设串行口工作在方式1,允许接收,则指令为:SCON=0x50(01010000B)表9-2串行口工作方式控制任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》(3)串行通信中的奇偶校验串行通信的关键不仅是能够传送数据,更重要的是要能正确地传送;但是串行通信的距离一般较长,线路容易受到干扰,要保证完全不出错不太现实,尤其是一些干扰严重的场合。在单片机通信中,最为简单又应用广泛的就是奇偶校验的方法。任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》串行通信只用该位,为SMOD=1时,波特率×2;SMOD=0时,波特率不变。(2)电源及波特率选择寄存器PCONSMOD×××GF1GF0PDIDL87H波特率选择位任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》串行口四种工作方式应用比较•方式的选择由SM1、SM0实现。工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART数据、起始、校验、结束位可变(取决于定时器1溢出率)3、串行口工作方式任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》方式0在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。(a)方式0扩展输出接口任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》注意:每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。(b)方式0扩展输入接口图9-4串行口工作方式0扩展输入/输出接口任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》方式1D0D1D2D3D4D5D6D71D0D11D7……00第n+1字符帧第n字符帧8位数据起始位停止位10位的帧格式串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》方式1输出-发送数据D0D1D2D3D4D5D6D7写入SBUF停止位TXDTI(中断标志)起始方式1输入-接收数据置REN为1时,接收器检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。当RI=0,且SM2=0(或接收到的停止位为1)时,将收到的9位数据的前8位装入SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。D0D1D2D3D4D5D6D7停止位RXDRI(中断标志)起始位采样脉冲任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》D0D1D2D3D4D5D6D70/1D0D110/1……100第n+1字符帧第n字符帧8位数据起始位停止位奇偶校验11位的帧格式11位数据的异步通信。起始位1位,数据9位,停止位1位方式2的波特率固定为晶振频率的1/64或1/32方式3的波特率由定时器T1的溢出率决定方式2和方式3任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》MCS-51串行口的波特率1.方式0和方式2的波特率是固定的•在方式2中,波特率取决于PCON中的SMOD值:当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32.即波特率=。oscSMODf642•在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》2.方式1和方式3的波特率可变,由定时器1的溢出率决定波特率/(b/s)fosc/MHzSMOD定时器1C/模式初始值方式0:1M方式2:375k方式1、3:62.5k19200960048002400120013750011011012121211.05911.05911.05911.05911.05911.986612×1110000000××000000000××222222221××FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=)TH1256(12f322oscsmod任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》4、计算机串行接口(1)RS-232接口RS-232接口(ANSI/EIA232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS232串口通信最远距离不大于15m,传输速率最大为20Kb/s。(2)RS-422接口RS-422(EIA422-A标准)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS232使用非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。(3)RS-485接口RS485(EIA485标准)是RS422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。有了多个设备的能力,你可以使用一个单个RS422口建立设备网络。出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》5、MAX487芯片MAX487是MAXIM公司生产的一种差分平衡型收发器芯片,是用于TTL协议与485协议转换的小功率收发器,它含有一个驱动器和一个接收器。管脚号管脚名称功能1RO接收器输出2/RE接收器输出使能3DE驱动器输出使能4DI驱动器输入5GND接地6A接收器输入和驱动器输出7B接收器反相输入和驱动器反相输出8VCC电源表9-5MAX487引脚功能表图9-5MAX487管脚图任务1RS485串行总线实现单片机与PC机通信《单片机技术与应用》6、MAX232芯片MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。图9-6MAX232引脚图内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚、12脚、11脚、14脚为第一数据通道。8脚、9脚、10脚、7脚为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三