许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  通过SPI读写SD卡的Proteus仿真学习案例

通过SPI读写SD卡的Proteus仿真学习案例

阅读数 3
点赞 0
article_banner

原理图:
在这里插入图片描述
SPI简介:

   SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI接口 主要应用在 EEPROM,FLASH,实时 时钟 ,AD转换器等芯片,还有数字信号处理器和数字信号解码器之间。

   SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种 通信协议  ,比如AT91RM9200。

SPI连接图
在这里插入图片描述
在这里插入图片描述

   # SPI总线  四种工作方式

   SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对 传输协议 没有重大的影响。

   CPOL

   时钟极性选择,为0时SPI总线空闲为低电平,为1时SPI总线空闲为高电平

   CPHA 时钟相位选择,为0时在SCK第一个跳变沿采样,为1时在SCK第二个跳变沿采样

   Mode 0 SCLK 空闲是为低电平,数据在上升沿有效

   Mode 1 SCLK 空闲是为低电平,数据在下降沿有效

   Mode 2 SCLK 空闲是为高电平,数据在下降沿有效

   Mode 3 SCLK 空闲是为高电平,数据在上升沿有效

在这里插入图片描述

//定义SD卡需要的4根信号线
sbit SD_CLK = P1^4;
sbit SD_DI  = P1^6;
sbit SD_DO  = P1^5;
sbit SD_CS  = P1^7;

//写一字节到SD卡,模拟SPI总线方式
void SdWrite(unsigned char n)
{
   
   
    unsigned char i;
    for(i=8;i;i--){
   
   
        SD_CLK=0;
        SD_DI=(n&0x80);//上升沿写入数据
        n<<=1;
        SD_CLK=1;
     }
     SD_DI=1; 
} 

//从SD卡读一字节,模拟SPI总线方式
unsigned char SdRead()
{
   
   
    unsigned char n,i;
    for(i=8;i;i--)
    {
   
   
        SD_CLK=0;
        SD_CLK=1; 
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空