欢迎来到天天文库
浏览记录
ID:5181090
大小:1.39 MB
页数:79页
时间:2017-11-26
《09 串行通信(旧,比较全)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PIC单片机技术电子信息与电气工程系通信教研室1第9章串行通信及通用接收发送器模块串行扩展通信接口是单片机与其它计算机之间进行数据交换的重要渠道,F877单片机主要配置有2种形式的串行通信模块:主控同步串行通信MSSP(MasterSynchronousSerialPort)通用同步/异步收发器USART(UniversalSynchronous/AsynchronousReceiverTransmitter)。MSSP模块主要应用于系统内部近距离的串行通信扩展,如SPI、I2C模式。USART模块主要应用于系统之间的远距离串行通信,在外围接口电路及计算机通
2、信中应用相当广泛。29.1SPI串行通信模块SPI(SerialPeripheralInterface)是一种单片机外设芯片同步串行扩展接口,由摩托罗拉公司推出。采用SPI接口外围器件的特点是引脚性价比高等优点,因而在市场上得到了广泛的应用。39.1SPI串行通信模块数据以字节为单位传送,每次传1个或多个字节。从高位MSB开始到低位LSB结束。注:SDI、SDO、SS、SCK的引脚。49.1.1SPI模式下相关寄存器在SPI模式下,有关的寄存器共有10个,其中无编址的只有一个SSPSR。这10个寄存器中有6个寄存器是与其它模块共用的。另外有4个寄存器与MSS
3、P模块相关,它们是与I2C模式共用的。51.SSPBUF(收/发数据缓冲器)13H2.SSPSTAT(同步串行状态寄存器)6Bit0/BF:缓冲器满标志位,被动参数。SPI接收状态下:0:缓冲器空;1:缓冲器满。Bit6/CKE:SPI时钟沿选择和I2C总线输入电平选择位。在CKP=0,空闲时钟电平为低时:0:SCK的下降沿发送数据;1:SCK的上升沿发送数据。在CKP=1,空闲时钟电平为高时:0:SCK的上升沿发送数据;1:SCK的下降沿发送数据。Bit7/SMP:SPI采样控制位兼I2C总线转换率控制位。在SPI主控方式下:0:在输出数据的中间采样输入数
4、据;1:在输出数据的末尾采样输入数据。注意:在SPI从动方式下,SMP位必须置位。73.SSPCON(同步串行控制寄存器)Bit3-Bit0/SSPM3-SSPM0:同步串行口MSSP方式选择位。8Bit4/CPK:空闲时钟电平选择位。0:表示空闲时时钟停留在低电平;1:表示空闲时时钟停留在高电平。Bit5/SSPEN:同步串口MSSP使能位。在SPI模式下时,必须确保SCK、SDO设定为输出状态,而SDI、SS设定为输入状态。0:关闭串行端口功能,且设定SCK、SOD、SDI和SS为普通数字I/O脚;1:允许串行端口工作,且设定SCK、SOD、SDI和SS
5、为SPI接口专用。9Bit6/SSPOV:接收溢出标志位,被动参数。0:未发生接收溢出;1:发生接收溢出。注意:所指的接收溢出是缓冲器SSPBUF中数据还未取出时,移位寄存器SSPSR中又收到新的数据,原SSPSR中的数据丢失。Bit7/WCOL:写操作冲突检测位,被动参数。必须用软件予以清零。在SPI从动方式下:0:未发生冲突;1:发生冲突。注意:发生写操作冲突,是指移位寄存器SSPSR正在发送前一个数据字节时,又有新数据写入SSPBUF。104.SSPSR移位寄存器直接从端口引脚接收或发送数据,将已经成功接收到的数据送到缓冲器SSPBUF中,或者从缓冲器
6、SSPBUF读取将发送的数据。119.1.2SPI模式工作原理要发送的数据通过数据总线送入发送缓冲器,然后自动传送到移位寄存器中;移位寄存器接收到数据自动传送到接收缓冲器,然后由程序读取收到的数据;移位寄存器有移入和移出两个端口,分别与收和发两条通信线路连接,负责收发数据。12SPI模式电路的基本结构13SPI工作原理示意图14【例题9-1】如图9-5为8位数码显示电路,利用F877的SPI同步串行功能实现数码管数据串行传送,并通过8个74LS164组成的移位电路,达到数码数据的静态显示。要求:单片机数据存储器60H~67H定义8个数码管的数据显示缓冲器。1
7、516ORG0000HbankselTRISCmovlwB’11010111’;定义RC3/SCK、RC5/SDO输出、RC4/SDI输入movwfTRISCclrfSSPSTAT;清除SMP、CKE位bankselSSPCONmovlwB’00110010’movwfSSPCON……--------------------------------------XSHmovlw67H;设置显示缓冲区的数据地址movwfFSR;LOOPmovfINDF,W;取出数据callBMA;查码表callOUTXSH;利用SPI方式输出编码数据decfFSRbtfssFS
8、R,4;直到8位数码全部输出gotoLOOPgoto
此文档下载收益归作者所有