<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)VR單片機的SPI多機環(huán)路通信

基于A(yíng)VR單片機的SPI多機環(huán)路通信

作者: 時(shí)間:2012-08-06 來(lái)源:網(wǎng)絡(luò ) 收藏
點(diǎn)擊瀏覽下一頁(yè)
一主機三從機的通信程序如下:主機://ICC-AVR application builder : 2012-1-13 18:56:57// Target : M16// Crystal: 8.0000Mhz// 完整程序下載: http://www.51hei.com/f/djhltl.rar #include iom16v.h>#include macros.h>#define Load_High PORTB|=(14)#define Load_Low PORTB=~(14)unsigned char tab[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//流水燈數組/*-----------------------------------------------------------------函數名稱(chēng): void masterInit(void) 函數功能: 初始化為主機參 數: 返 回 值: 無(wú)SPI控制寄存器介紹SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0SPIE:中斷使能 SPE :SPI使能 DORD:數據次序 1為L(cháng)SB首先發(fā)送,0為MSB首先發(fā)送MSTR:主從選擇 1為主,0為從MSTR置位時(shí)選擇主機模式,否則為從機.如果MSTR為"1",SS配置為輸入,且被拉低,則MSTR 被清零,寄存器SPSR 的SPIF 置位.用戶(hù)必須重新設置MSTR 進(jìn)入主機模式。CPOL: 時(shí)鐘極性見(jiàn)ATMEGA16L(中文)P130CPHA: 時(shí)鐘相位SPR1, SPR0: SPI 時(shí)鐘速率選擇1 與0 SPR1 和SPR0 對從機沒(méi)有影響。-----------------------------------------------------------------*/void SPImasterInit(void) //SPI初始化{DDRB|=(17)|(15)|(14); //設置SCK,MOSI為輸出,其他為輸入SPCR|=(1SPE)|(1MSTR)|(1SPR1)|(1SPR0);//使能SPI,主模式,Fck/128}/*-----------------------------------------------------------------函數名稱(chēng): void SPIMasterTransmit(uchar TranData) 函數功能: SPI數據傳輸參 數: 返 回 值: 無(wú)-----------------------------------------------------------------*/void SPIMasterTransmit(unsigned char TranData) {SPDR=TranData; //數據放入SPI寄存器中while(!(SPSR(1SPIF))); //等待數據傳輸完畢}void delay(unsigned int ms){unsigned int i,j;for(i=0;ims;i++){for(j=0;j1141;j++);}}/*-----------------------------------------------------------------函數名稱(chēng): void Transmit(unsigned char i)函數功能: 封裝傳輸函數參 數: 返 回 值: 無(wú)-----------------------------------------------------------------*/void Transmit(unsigned char i){Load_Low; //等待數據傳輸,主機向SPDR中寫(xiě)入數據前要將SS拉低SPIMasterTransmit(i); //傳輸數據Load_High; //數據傳輸完畢,ss恢復高電平}void main(){ unsigned char i=0;DDRC=0XFF;SPImasterInit(); //SPI初始化while(1){i++;if(i>8){i=0;}Transmit(tab[i]);//發(fā)送數據PORTC=SPDR;//主機接收從機的數據產(chǎn)生動(dòng)作delay(100);}}從機:#includeiom16v.h>#includemacros.h>//#includedelay.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint ms){uint i,j;for(i=0;ims;i++){for(j=0;j1141;j++);}}void spi_init(void){SPCR|=(1SPE)|(0MSTR)|(1SPR1)|(1SPR0);//使能SPI,從機模式,Fck/128DDRB|=(1PB6);}char SPI_SlaveReceive(void){/*等待接收結束*/while(!(SPSR(1SPIF)));/*返回數據*/return SPDR;}void main(){char a;spi_init();DDRC=0XFF;//DDRB=0X00;//PORTC=0XFF;while(1){ PORTC=SPI_SlaveReceive();//從機接收主機的數據做出動(dòng)作SPDR=PORTC;//從機向主機傳輸數據//delay(100);}}

單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


通信相關(guān)文章:通信原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>