spi接口及应用

上传人:正** 文档编号:51768493 上传时间:2018-08-16 格式:PPT 页数:25 大小:253.50KB
返回 下载 相关 举报
spi接口及应用_第1页
第1页 / 共25页
spi接口及应用_第2页
第2页 / 共25页
spi接口及应用_第3页
第3页 / 共25页
spi接口及应用_第4页
第4页 / 共25页
spi接口及应用_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《spi接口及应用》由会员分享,可在线阅读,更多相关《spi接口及应用(25页珍藏版)》请在金锄头文库上搜索。

1、SPI 串行接口及应用1、LED数码管显示原理 2、同步串行接口SPI 3、SPI 接口芯片MAX7219 4、 MAX7219数码管显示应用ABCDEFGDpABCDEFGDpabcdefgdpD0D1D2D3D4D5D6D7工作原理12.2 字符显示技术ABCDEFGDpabcdefgdpD0D1D2D3D4D5D6D7D7 D6 D5 D4 D3 D2 D1 D0 数 dp g f e d c b a 编码 0 0 0 1 1 1 1 1 1 0x3f 1 0 0 0 0 0 1 1 0 0x06 20 1 0 1 1 0 1 1 0x5b 30 1 0 0 1 1 1 1 0x4f 4

2、0 1 1 0 0 1 1 0 0x66 50 1 1 0 0 0 1 0 0x62 60 1 1 1 1 1 0 1 0x7d 70 0 0 0 0 1 1 1 0x07 80 1 1 1 1 1 1 1 0x7f 90 1 1 0 1 1 1 1 0x6f A 0 1 1 1 0 1 1 1 0x77 B 0 1 1 1 1 1 0 0 0x7c C 0 0 1 1 1 0 0 1 0x39 D 0 1 0 1 1 1 1 0 0x57 E 0 1 1 1 1 0 0 1 0x79 F 0 1 1 1 0 0 0 1 0x71 - 0 1 0 0 0 0 0 0 0X40 字符编码COM动

3、态扫描显示PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7PD7 PD6 PD5 PD4ATmega16显示程序设计#include #include char z_biao =0x3f, 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00 /字形表 char ledbuff =1,0,1,2,3 /其中第一个数是当前显示位,后面个数依次显示在个位上 void display() if (ledbuff0=1)PORTB=z_biaoledbuff1;PORTD=0X7F;else if (ledbuff0=2)PORTB=z_bi

4、aoledbuff2;PORTD=0XBF;else if (ledbuff0=3)PORTB=z_biaoledbuff3;PORTD=0XDF;else if (ledbuff0=4)PORTB=z_biaoledbuff4;PORTB=0XEF; ledbuff0+; if(led04)ledbuff0=1; void main() int x=7645;DDRB=0XFF;DDRD=0XFF;/显示x的值ledbuff0=1;ledbuff1=x/1000%10;ledbuff2=x/100%10;ledbuff3=x/10%10;ledbuff4=x%10;while(i-)disp

5、lay();delay_ms(1); SPI接口的全称“Serial Peripheral Interface“意为串行外围接口,是Motorola首先在其 MC68HCXX系列处理器上定义的。SPI接口一种同步串行外设接口,有信号线少 、协议简单、传输速度快的特点,因此有不少外 围器件都采用SPI总线,如Flash RAM、A/ D转换 器、LED显示器、MCU以及计算机网络等。MCU中的SPI接口通过配置可与各个厂家生产 的多种标准外围器件直接连接。 8.1 SPI 原理 SPI接口是在CPU和外围低速器件之间进行同 步串行数据传输,在主器件的移位脉冲下,数据按 位传输,高位在前,地位在后

6、,为全双工通信,数据 传输速度总体来说比I2C总线要快,速度可达到几 Mbps。 SPI接口是以主从方式工作的,这种模式通常 有一个主器件和一个或多个从器件,其接口包括以 下四种信号:(1)MOSI 主器件数据输出,从器件数据输入 (2)MISO 主器件数据输入,从器件数据输出 (3)SCLK 时钟信号,由主器件产生 (4)/SS 从器件使能信号,由主器件控制SPI 接口原理 SPI 8位移位寄存器MSBLSB主机SPI 8位移位寄存器MSBLSB从机MISOMISOMOSIMOSISPI时钟发生器SCKSCK /SS/SS VCC图8-1 SPI主/从CPU内部连接主/从CPU的SPI数据传

7、输 ATMEGA16 SPI引脚配置 当SPI被设置成允许时,MOSI(PB5)、MISO(PB6) 、SCK(PB7)和/SS(PB4)引脚的数据方向,按表8-1 中来配置。引脚方向(主SPI)方向(从SPI)MOSI(PB5)(用户户定义义)输输出输输入MISO(PB6)输输入(用户户定义义)输输出SCK(PB7)(用户户定义义)输输出输输入/SS(PB4)(用户户定义义)输输出输输入8.1.2 /SS引脚功能当SPI被配置为主机时(SPI控制寄存器SPCR的MSTR位置1),用 户可以决定/SS引脚的方向。若/SS引脚被设置为输出,该引脚将作为 通用输出口,而不影响SPI系统(通常用于驱

8、动从机的/SS引脚);如 果/SS被设置为输入,则/SS必须保持为高电平来保证主机SPI的操作 。如果在主机模式下,/SS引脚为输入,而且被外设电路置低,则该 系统认为另外的主机选择该SPI为它的从机并开始对它传递数据。因 此,在主机模式下使用中断方式来驱动SPI发送时,存在/SS被置低的 可能。因此在中断程序中,应随时检查MSTR位是否为“1”,一旦发现 MSTR位被从机清“0”,则必须由用户再次将其置位,以恢复SPI的主 机方式。 当SPI被配置为从机时,/SS总是作为输入口。当/SS被外部置低时, SPI功能被激活,MISO变为输出口(如果被用户配置为输出口时), 而其他成为输入。如果/

9、SS被置“1”后,所有相关引脚都为输入口,同 时SPI处于禁止状态不接收任何数据。8.1.3 与SPI接口相关的寄存器 SPI控制寄存器SPCR SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0位7(SPIE):SPI中断使能 位6(SPE):SPI使能当该位置1时,SPI功能被激活。要使能SPI的任何操作,必须设置该位。 位5(DORD):数据移出顺序当DORD=1时,数据传送的顺序为LSB(低位)被首先传送;当DORD=0 时,数据的MSB(高位)被首先传送。 位4(MSTR):主/从机选择当MSTR=1时,选择主机SPI模式;MSTR=0时,选择从机SPI模式

10、。 位3(CPOL):时钟(SCK)极性选择当该位被设置为“1”时,SCK在闲置时是高电平;当CPOL为“0”时,SCK在 闲置时是低电平。 位2(CPHA):时钟(SCK)相位选择CPHA位的设置决定了串行数据的锁存采样是在SCK时钟的前沿还是在 SCK时钟的后沿。 位1、0(SPR1、SPR0):时钟速率选择位SPI状态寄存器SPSR SPIF WCOL SPI2X 位7(SPIF):SPI中断标志位当串行传送完成时SPIF位被置“1”,且若SPCR中的SPIE=1、全局 中断使能位I=1,则产生中断。如果/SS被设置为输入且在SPI是主机模式时 被外部拉低,此时将设置SPIF标志。SPI

11、F标志位的属性为只读,清零SPIF 有两种方式: 硬件方式。MCU响应SPI中断,转入相应中断程序的同时,SPIF位由 硬件自动清“0”。 软件方式。先读取SPI状态寄存器SPSR(读SPSR的操作将会自动清 除SPIF位),紧接着对SPI数据寄存器SPDR的操作处理。 位6(WCOL):写冲突标志位如果在SPI接口的数据传送过程中,对SPI的数据存储器SPDR写入 数据,将会置位WCOL。清零WCOL标志只能通过软件方式:先读取SPI状 态寄存器SPSR(读SPSR的操作将会自动清除SPIF位和WCOL位),然后 再进行对SPI数据寄存器SPDR的操作处理。 位5、4、3、2、1:保留在AT

12、mage16中,这几位保留,读出为“0”。 位0(SPI2X):倍速SPISPI数据寄存器SPDRMSB LSB7 6 5 4 3 2 1 0 SPI数据寄存器可以读/写的寄存器,其内容 是移位寄存器之间传送的数据。写数据到 SPDR是初始化数据传送,而读SPDR寄存器 时,读到的是移位寄存器接收缓冲区中的值。CVAVR SPI 初始化设置123456789101112 131415161718192021222324CLKSEGASEGFSEGBSEGGISETV+SEGCSEGESEGDPSEGDDOUT DINDIG0DIG4GNDDIG6DIG2DIG3DIG7GNDDIG5DIG1L

13、OAD图8-2 MAX7219引脚图8.2.1 7219显示控制芯片MAX7219引脚及功能 引 脚名 称功 能1DIN串行数据输入,在CLK的上升沿,移入内部移位寄存器4,9GND地线,两个地引脚必须连在一起13CLK时钟输 入,最高频率10MHz,在CLK的上升沿,移入内部16 位移位寄存器中;在CLK的下降沿,数据从OUT输出12LOAD数据装载,输入,在LOAD上升沿,移位寄存器接收的数据 被锁存 2,3,58,10, 11DIG0DIG78位数字驱动线 ,输出,它从显示器吸入电流1417,2023SEGASEGG, SEGDPLED七段码和小数点驱动器,供给LED电流18ISET在ISET与V+之间接RSET电阻,建立LED峰值段电流19V+电源输入端24DOUT串行数据输出,DIN数据16,5个CLK周期后出现在DOUT端MAX7219工作原理 MAX7219采用串行接收数据,在传送的串行数据中包含有 RAM的地址。按照时序要求,单片机将16位二进制数逐位发 送到DIN端,在CLK上升沿到来之前DIN必须有效,在CLK的 每个上升沿,DIN被串行逐位移入MAX7219内部的16位串行 寄存器中。设最先移入的数据是D15,最后移入的数据是D0, 则数据格式如下:显示数据或控制字RAM或SFR地址D15 D14

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号