最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

STC12C5A60S2的主从模式SPI通讯测试

来源:动视网 责编:小OO 时间:2025-09-29 13:13:17
文档

STC12C5A60S2的主从模式SPI通讯测试

STC12C5A60S2的主从模式SPI通讯测试测试方法:通过PC机给主机(左)发送数据,主机通过SPI接口将数据传给从机(右),并将数据显示在P0口上。主机程序如下//**********主机程序*****************//#include"STC12C5A.h"/***********免断电,复位按键下载***********/voidresetdownload(){if(XBYTE[0x03ff]==0x80){XBYTE[0x03ff]=0x00;IAP_CONTR|=0x6
推荐度:
导读STC12C5A60S2的主从模式SPI通讯测试测试方法:通过PC机给主机(左)发送数据,主机通过SPI接口将数据传给从机(右),并将数据显示在P0口上。主机程序如下//**********主机程序*****************//#include"STC12C5A.h"/***********免断电,复位按键下载***********/voidresetdownload(){if(XBYTE[0x03ff]==0x80){XBYTE[0x03ff]=0x00;IAP_CONTR|=0x6
STC12C5A60S2的主从模式SPI通讯测试

测试方法:通过PC机给主机(左)发送数据,主机通过SPI接口将数据传给从机(右),并将数据显示在P0口上。

主机程序如下

//**********主机程序*****************//

#include"STC12C5A.h"

/***********免断电,复位按键下载***********/ 

void resetdownload()

{

if(XBYTE[0x03ff]==0x80) 

{

XBYTE[0x03ff]=0x00;

IAP_CONTR|=0x60;    //免断电下载

}

XBYTE[0x03ff]=0x80;     //写明标志,可以下载程序

}

/****************子函数完*********************/

void Init_SPI()

{

    SPCTL=0XFD;      //忽略SS,设置为主机模式

    SPSTAT=0XC0;  //清除状态寄存器

    SPDAT=0; //初始化数据寄存器    

}    

void SPI_SendByte(unsigned char SPI_SendData)

{

    SPDAT=SPI_SendData;

    while((SPSTAT&0x80==0));

    SPSTAT=0XC0;

}

/***************串口波特率设置***************/ 

void uartinitial(long fosc,long uartf)//参数为晶振频率和波特率

{

    AUXR|=0x04;       //波特率发生器工作在1T模式

    SCON=0x50;       //设置串口工作方式

    AUXR|=0x01;       //选择波特率发生器作为串口1的波特率

    BRT=256-fosc/(16*uartf);//设置波特率发生器的溢出率

    PCON=0x80;       //波特率加倍

    AUXR|=0x10;      //波特率发生器开始工作

    EA=1;  //总中断打开

    ES=1;  // 串口接收中断打开

}

/****************子函数完*********************/

void main()

{

    resetdownload();

    Init_SPI();

    uartinitial(22118400,115200);

    while(1)

    {

        ;

    }    

}

/*****************串口中断处理函数********************/

void UART() interrupt 4

{

    if(RI==1)

    {

        SPI_SendByte(SBUF);

        RI=0;

    }

    else

    {

        TI=0;

    }

}

从机程序如下:

#include"STC12C5A.h"

unsigned char SPI_Buffer=0xff;

/***********免断电,复位按键下载***********/ 

void resetdownload()

{

if(XBYTE[0x03ff]==0x80) 

{

XBYTE[0x03ff]=0x00;

IAP_CONTR|=0x60;    //免断电下载

}

XBYTE[0x03ff]=0x80;     //写明标志,可以下载程序

}

/**************SPI从机模式初始化***********************/

void Init_SPI()

{

    SPCTL=0XED;//忽略SS,设置为从机模式

    SPSTAT=0XC0; //清除状态寄存器

    SPDAT=0; //初始化数据寄存器 

    IE2=0X02; //打开SPI中断

    EA=1;

}

void main()

{

    resetdownload();

    Init_SPI();

    while(1)

    {

        ;

    }

}

void SPI_Rec() interrupt 9

{

    SPI_Buffer=SPDAT;

    P0=SPI_Buffer; //接收结果在P0口上显示

    SPSTAT=0XC0; //清除标志位

}

文档

STC12C5A60S2的主从模式SPI通讯测试

STC12C5A60S2的主从模式SPI通讯测试测试方法:通过PC机给主机(左)发送数据,主机通过SPI接口将数据传给从机(右),并将数据显示在P0口上。主机程序如下//**********主机程序*****************//#include"STC12C5A.h"/***********免断电,复位按键下载***********/voidresetdownload(){if(XBYTE[0x03ff]==0x80){XBYTE[0x03ff]=0x00;IAP_CONTR|=0x6
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top