单片机spi通信的问题物品用单片机的I/O口输出SPI接到74hc595再用来驱动数码管.我只是初步接触SPI通信,请问我用C8051F330的话,我用P0.P0.2输出SPI,P0.4接74hc595的RCK,谁能告诉我怎么启动SPI传输数据的

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 00:39:25

单片机spi通信的问题物品用单片机的I/O口输出SPI接到74hc595再用来驱动数码管.我只是初步接触SPI通信,请问我用C8051F330的话,我用P0.P0.2输出SPI,P0.4接74hc595的RCK,谁能告诉我怎么启动SPI传输数据的
单片机spi通信的问题
物品用单片机的I/O口输出SPI接到74hc595再用来驱动数码管.我只是初步接触SPI通信,请问我用C8051F330的话,我用P0.P0.2输出SPI,P0.4接74hc595的RCK,谁能告诉我怎么启动SPI传输数据的程序吗?比如我要把这个数组的数据传给出去该怎么写呢?图中的SCAN
int sm[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

单片机spi通信的问题物品用单片机的I/O口输出SPI接到74hc595再用来驱动数码管.我只是初步接触SPI通信,请问我用C8051F330的话,我用P0.P0.2输出SPI,P0.4接74hc595的RCK,谁能告诉我怎么启动SPI传输数据的
对于C8051F330而言,你需要设置好SPI的时序,极性以及空闲时的状态,一般在送完一个字节后,要等待spi中断后,在能进行第二次送数据
我截取部分程序给你看看
void SPI_INT(void) //SPI初始化
{
SPI0CFG=0x40;
SPI0CN=0x01; //0000 0001最后一位是SPI使能位 SPI工作在三线主方式
SPI0CKR=0x0f; //SPI 时钟频率设置为100kHz 0x63
IE &= 0xbf; //关闭SPI中断
}
void pio_int(void) // 端口配置
{
XBR0=0x06;
XBR1=0x40;
P0MDIN=0xff; //禁止模拟输入,0为模拟,1为数字
P0MDOUT=0x0d; //0为开漏,1为推挽(ff)
P0SKIP=0x08;
P1MDIN=0xff;
P1MDOUT=0xff; //低四位用于138
P1SKIP=0x00;
P0=0xff;
P1=0xff;
}
//
我空间有个点阵驱动的程序,你可以去看看
用的就是你的这个单片机
日志名字
QQ空间247519442
C8051F330 16*16点阵(SPI 、SMBus、I2C)PCF8563