本帖最后由 newsolider1 于 2012-2-28 01:32 编辑
让STC12C5A60S2 通过SPI 接口 想9级级联的595芯片发送数据 (mosi 接 ds sclk 接 shcp end(P1^0) 接 stcp )
程序设想是通过SPI接口一次性串行发送9个字节的数据后在同时从595芯片的8位并行接口输出
但是初始化无法通过 所写程序如下 请各位大侠指点指正
#include <REG51.H>
#include <intrins.h>
#include <stdlib.h>
#include <SPI.h>
typedef unsigned char uchar;
typedef unsigned int uint;
uchar code table[]={0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
uchar a;
sbit end=P1^0;
sbit SPIF=SPSTAT^7;
void spiinit()
{
SPCTL=0xd4;
SPSTAT=0xc0;
SPDAT=0;
end=0;
}
void main()
{
uchar x;
_nop_();
_nop_();
_nop_();
spiinit();
while(1)
{
for(x=0;x<9;x++)
SPDAT=table[x];
}
}
void spi() interrupt 9
{
SPIF=1;
a++;
if(a==9)
{
a=0;
end=1;
end=0;
}
SPI.h 内容
sfr AUXR = 0x8e; //Auxiliary register
sfr SPSTAT = 0xcd; //SPI status register
sfr SPCTL = 0xce; //SPI control register
sfr SPDAT = 0xcf; //SPI data register
} |