|
今天第一次調ISD4004,資料上說它用SPI總線驅動,我用STC89C52模擬SPI時序。但是SPI應該是先傳輸高位的,而用ISD的SPI時,先傳輸高位不能驅動,只有先傳輸低位才能驅動。想問下這是怎么回事。
模擬SPI程序如下:
unsigned char SPI_rw_byte(unsigned char dat)
{
unsigned char i;
sclk=0;
for(i=0;i<8;i++)
{
// dat=dat<<1;
dat=dat>>1;
mosi=CY;
sclk=1;
sclk=0;
// dat=dat|miso;
}
return dat;
}
之所以有返回值,是因為之前寫這個時是同時讀寫的,現在不用讀數據,無視掉就好了。
現在就是用 dat=dat<<1; ISD4004不能工作,而用 dat=dat>>1; ISD能工作(當然還改了包含地址的指令的傳輸順序)。
希望各位指點一下。
|
|