![51-单片机模拟-SPI-总线的方法(共4页)_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/13d34191-2907-407f-a11f-4195ef48880e/13d34191-2907-407f-a11f-4195ef48880e1.gif)
![51-单片机模拟-SPI-总线的方法(共4页)_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/13d34191-2907-407f-a11f-4195ef48880e/13d34191-2907-407f-a11f-4195ef48880e2.gif)
![51-单片机模拟-SPI-总线的方法(共4页)_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/13d34191-2907-407f-a11f-4195ef48880e/13d34191-2907-407f-a11f-4195ef48880e3.gif)
![51-单片机模拟-SPI-总线的方法(共4页)_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/13d34191-2907-407f-a11f-4195ef48880e/13d34191-2907-407f-a11f-4195ef48880e4.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上51 单片机模拟 SPI 总线的方法摘要:MCS-51系列单片机中由于部分型号不带SPI串行总线接口而限制了其在SPI总线接口器件的使用。文中介绍了SPI串行总线的特征和时序,并以串行E2PROM为例,给出了在51系列单片机上利用I/O口线实现SPI串行总线接口的方法和软件设计程序。 关键词:单片机 SPI串行总线 总线接口1 引言SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器
2、、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。由于SPI系统总线一共只需34位数据线和控制即可实现与具有SPI总线接口功能的各种I/O器件进行接口,而扩展并行总线则需要8根数据线、816位地址线、23位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/O口线,
3、提高设计的可靠性。由此可见,在MCS51系列等不具有SPI接口的单片机组成的智能仪器和工业测控系统中,当传输速度要求不是太高时,使用SPI总线可以增加应用系统接口器件的种类,提高应用系统的性能。2 SPI总线的组成 利用SPI总线可在软件的控制下构成各种系统。如1个主MCU和几个从MCU、几个从MCU相互连接构成多主机系统(分布式系统)、1个主MCU和1个或几个从I/O设备所构成的各种系统等。在大多数应用场合,可使用1个MCU作为控机来控制数据,并向1个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。其数据的传
4、输格式是高位(MSB)在前,低位(LSB)在后。SPI总线接口系统的典型结构如图1所示。 当一个主控机通过SPI与几种不同的串行I/O芯片相连时,必须使用每片的允许控制端,这可通过MCU的I/O端口输出线来实现。但应特别注意这些串行I/O芯片的输入输出特性:首先是输入芯片的串行数据输出是否有三态控制端。平时未选中芯片时,输出端应处于高阻态。若没有三态控制端,则应外加三态门。否则MCU的MISO端只能连接1个输入芯片。其次是输出芯片的串行数据输入是否有允许控制端。因此只有在此芯片允许时,SCK脉冲才把串行数据移入该芯片;在禁
5、止时,SCK对芯片无影响。若没有允许控制端,则应在外围用门电路对SCK进行控制,然后再加到芯片的时钟输入端;当然,也可以只在SPI总线上连接1个芯片,而不再连接其它输入或输出芯片。3 在MCS-51系列单片机中的实现方法 对于不带SPI串行总线接口的MCS-51系列单片机来说,可以使用软件来模拟SPI的操作,包括串行时钟、数据输入和数据输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应将其串行时钟输出口P1.1的初始状态设置为1,而在允许接
6、收后再置P1.1为0。这样,MCU在输出1位SCK时钟的同时,将使接口芯片串行左移,从而输出1位数据至MCS-51单片机的P1.3口(模拟MCU的MISO线),此后再置P1.1为1,使MCS-51系列单片机从P1.0(模拟MCU的MOSI线)输出1位数据(先为高位)至串行接口芯片。至此,模拟1位数据输入输出便宣告完成。此后再置P1.1为0,模拟下1位数据的输入输出,依此循环8次,即可完成1次通过SPI总线传输8位数据的操作。对于在SCK的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,即在接口芯片允许时,先置P1.1为1,以便外围接口芯片输出1位数据(MCU接收1位数据
7、),之后再置时钟为0,使外围接口芯片接收1位数据(MCU发送1位数据),从而完成1位数据的传送。 图2所示为MCS-51系列单片机与存储器X25F008(E2PROM)的硬件连接图,图2中,P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入端(MISO)。下面介绍用MCS-51单片机的汇编语言模拟SPI串行输入、串行输出和串行输入/输出的3个子程序,实际上,这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的其它各种串行外围接口芯片(如A/D转换芯片、网络控制器芯片、LED显示驱动芯
8、片等)。对于下降沿输入、上升沿输出的各种串行外围接口芯片,只要改变P1.1的输出电平顺序,即先置P1.1为低电平,之后再次置P1.1为高电平,再置P1.1为低电平,则这些子程序也同样用。3.1 MCU串行输入子程序SPIIN从X25F008的SPISO线上接收8位数据并放入寄存器R0中的应用子程序如下:SPIIN:SETB P1.1 ;使P1.1(时钟)输出为1CLR P1.2
9、160; ;选择从机MOV R1,#08H ;置循环次数SPIIN1: CLR P1.1 ;使P1.1(时钟)输出为0NOP
10、0; ;延时NOPMOV C,P1.3 ;从机输出SPISO送进位CRLC A
11、60; ;左移至累加器ACCSETB P1.1 ;使P1.0(时钟)输出为1DJNZ R1,SPIIN1
12、160; ;判断是否循环8次(8位数据)MOV R0,A ;8位数据送R0RET3.2 MCU串行输出子程序SPIOUT将MCS-51单片机中R0寄存器的内容传送到X25F008的SPISI线上的程序如下:SPIOUT:SETB P1.1 ;使P1.1(时钟)输出为1CLR P1.2
13、160; ;选择从机MOV R1,#08H ;置循环次数MOV A,R0 ;8位数据送累加器ACCSPIOUT1:CLR P1.1 ;使P1.1(时钟)输出为0NOP &
14、#160; ;延时NOPRLC A ;左移至累加器ACC最高位至CMOV P1.0,C ;进位C送从机输入SPISI线上SETB P1.1
15、60; ;使P1.1(时钟)输出为1DJNZ R1,SPIOUT1 ;判是否循环8次(8位数据)RET3.3 MCU串行输入/输出子程序SPIIO将MCS-51单片机R0寄存器的内容传送到X25F008的SPI SI中,同时从X25F008的SPI SO接收8位数据的程序如下:SPIIO:SETB P1.1 ;使P1.1(时钟)输出为1CLR P1.2
16、60; ;选择从机MOV R1,#08H ;置循环次数MOV A,R0 ;8位数据送累加器ACCSPIIO1:CLR P1.1 ;使P1.1(时钟)输出为0NOP ;延时NOPMOV C,P1.3 ;从机输出SPISO送进位CRLC A ;左移至累加器ACC最高位至CMOV P1.0,C ;进位C送从机输入SETB P1.1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年八年级物理下册 第7章 第2节 弹力说课稿 (新版)新人教版
- 2025最简单采购合同协议样本
- 2024-2025学年高中化学 第1章 有机化合物的结构与性质 烃 1.1.1 有机化学的发展 有机化合物的分类说课稿 鲁科版选修5
- 2025如何防范国际贸易合同中的风险店铺转让合同协议书
- 农村电商 合同范例
- 包装食品采购合同范例
- Unit 1 My school 单元整体分析(说课稿)-2023-2024学年人教PEP版英语四年级下册
- 2024-2025学年高中历史 专题九 戊戌变法 一 酝酿中的变革(2)教学说课稿 人民版选修1
- 13 导体和绝缘体 说课稿-2024-2025学年科学四年级上册苏教版001
- JN造船厂合同管理改进研究
- 2024-2025学年北京市丰台区高三语文上学期期末试卷及答案解析
- 2025届西藏林芝一中高三第二次诊断性检测英语试卷含解析
- 开封市第一届职业技能大赛健康照护项目技术文件(国赛)
- 公路电子收费系统安装合同范本
- 医院培训课件:《伤口评估与测量》
- 2021年全国高考物理真题试卷及解析(全国已卷)
- 期末试卷(试题)-2024-2025学年四年级上册数学沪教版
- 综合实践项目 制作水族箱饲养淡水鱼 教学设计-2024-2025学年鲁科版生物六年级上册
- 安徽省2024年高考语文模拟试卷及答案5
- 关于餐饮合同范本
- CHT 4019-2016 城市政务电子地图技术规范(正式版)
评论
0/150
提交评论