- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二十篇SPI与74HC595
第二十篇 SPI与74HC595SPI,全称为Serial Peripheral interface,意思是“串行外围设备接口”,主要应用在:EEPROM,FLASH,实时时钟,AD转换器灯。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SSEL。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。
传输原理:每个SCK边沿(上升沿或下降沿,需要事先设定),MISO或MOSI会被采样一次,连续八次,就可以传输一个字节。
其接口配置示例如下:
下面介绍LPC2000的SPI接口:以LPC2103的SPI0为例:引脚的对应关系为:SCK0——P0.4,MISO0——P0.5,MOSI0——P0.6,SSEL0——P0.7
LPC2000的SPI接口的功能模块如下图:图中五个功能分别对应着5个寄存器:SPCR——SPI Control Register,SPI控制寄存器,用于控制SPI的功能SPSR——SPI Status Register,SPI状态寄存器,用于显示当前SPI的状态。SPDR——SPI Data Register,SPI数据寄存器,用于发送和接收数据,向其写入字节,就会自动发送,接收数据也从它里面取出。SPCCR——SPI Clock Counter Register,SPI时钟计数器寄存器,用于控制主机SPI总线速率SCK。Fspi=Fpclk/SPCCRSPINT——SPI Interrupt Flag,SPI中断标志寄存器,包含SPI接口的中断标志。
展开来说,我们会用到:CPHA——SPCR[3],时钟相位控制位,CPHA=0, 数据在SCK的第一个时钟沿采样;CPHA=1, 数据在SCK的第二个时钟沿采样。我们这里用前者。
CPOL——SPCR[4],控制时钟的极性,为0时:空闲时为低电平,有效时为高电平。反之依然,如下图:
MSTR——SPCR[5],控制模式选择:MSTR=1,处于主模式;MSTR=0,处于从模式。
LSBF——SPCR[6],控制字节的移动方向,LSBF=1,低位在先传;LSBF=0,高位在先传。
SPIE——SPCR[7],中断使能,这里我们不用中断。
SPIF——SPSR[7],SPI传输完成标志,为1时,表示一次传输完成。
由于74HC595不是标准的SPI器件,MISO0和SSEL0未用到,但是我们仍然可以用SPI总线向74HC595发送数据。程序如下://*****************************************************************************************************//功能:LPC2103利用SPI接口对74HC595进行写操作//说明://用两片74HC595(U1和U2)分别控制四位数码管(U1)的显示和选位(U2),//为了减少连线,两片74HC595串联(U2的Q7输出到U1的MOSI),这样连续向U2的MOSI写//两个字节(第一个是要显示的数字,第二个是位选),就可以显示了。这样LPC2103//用三个口(SCK连SH_CP,MOSI连DS,P0.7连ST_CP)就可以操作此四连共阴数码管。#includeLPC2103.H
#define SCK 14??//移位时钟#define MOSI 16???//数据#define ST_CP 17??//字节输出时钟#define u8 unsigned char
void SPI_Init(void);void display(u8 data,u8 n);void send(u8 byte);void delay(unsigned int i);//注意:这是共阳数码管的码表,但用在共阴数码管上,两者之间转换容易,把数据取反即可u8 table[16] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
int main(){??? SPI_Init();??? while(1)??? {??????? display(0x5,1);??????? //在1位显示数字5??????? delay(1000000);??????? display(0xA,2);??????? delay(1
您可能关注的文档
最近下载
- 中华民族共同体概论课件第八讲共奉中国与中华民族聚力发展.pptx VIP
- 一种碱性磷酸酶标记抗体或抗原的方法.pdf VIP
- 2024-2025部编人教版小学语文1一年级上册(全册)优秀课件.ppt
- 手术室PDCA——提高急诊手术器械物品准备的完善率.pptx VIP
- 宠物行业宠物智能喂食器研发方案.doc VIP
- 老年人徒手肌力评定健康促进课件.pptx VIP
- TPM管理培训课件.pptx VIP
- 中华民族共同体概论大讲堂课件第七讲华夷一体与中华民族空前繁盛(隋唐五代时期).pdf VIP
- 灰库系统钢结构加固施工方案.docx VIP
- 2025至2030中国中医馆行业市场发展分析及前景趋势与投资机会报告.docx
文档评论(0)