您的位置 首页 国产IC

单片机spi通讯的通用程序共享

单片机spi通信的通用程序分享-以下是单片机spi通信的通用程序,在不同晶振情况下可能需调整延时。这里单片机晶振为11.0592MHz。

_nop_();语句指延迟一个机器周期,约1us左右。写1bit约10us,spi传输率约100kbit/s。

程序中只用了MOSI,/SS,SCLK信号,没有用MISO信号。#include

以下是单片机spi通讯的通用程序,在不同晶振情况下或许需调整延时。这儿单片机晶振为11.0592MHz。

_nop_();句子指推迟一个机器周期,约1us左右。写1bit约10us,spi传输率约100kbit/s。

程序中只用了MOSI,/SS,SCLK信号,没有用MISO信号。#include

单片机spi通讯的通用程序共享

#include

#include

#include

#include

sbitss=P1^0;

sbitmosi=P1^1;

sbitsclk=P1^4;

voiddelay_ms(unsignedintms)

{

unsignedchari;

while(ms–)

{

i=112;

while(i–);

}

}

voidspi_mosi(unsignedcharspi_data)

{//发送一个字节数据

unsignedcharBitCnt;

mosi=0;

sclk=0;

for(BitCnt=0;BitCnt《8;BitCnt++)

{

sclk=0;

_nop_();

if((spi_data》》BitCnt)&0x01)

mosi=1;

else

mosi=0;

_nop_();

_nop_();

_nop_();

sclk=1;

_nop_();

_nop_();

_nop_();

}

_nop_();

_nop_();

_nop_();

}

voidplay_isd4002(unsignedintaddr)

{

unsignedcharaddr_l,addr_h;

addr_l=addr;

addr_h=addr》》8;

addr_h=addr_h|0xe0;

ss=0;

spi_mosi(0x20);

ss=1;

delay_ms(50);

ss=0;

spi_mosi(addr_l);//传低位

spi_mosi(addr_h);//传高位

ss=1;

delay_ms(10);

ss=0;

spi_mosi(0xf0);

ss=1;

}

voidstop_isd4002()

{

ss=0;

spi_mosi(0x70);//中止指令

ss=1;

delay_ms(50);

}

voidmain()

{

play_isd4002(0x86);//播映86地址开端的语音

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/346169.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部