|
今天第一次調ISD4004,資料上說(shuō)它用SPI總線(xiàn)驅動(dòng),我用STC89C52模擬SPI時(shí)序。但是SPI應該是先傳輸高位的,而用ISD的SPI時(shí),先傳輸高位不能驅動(dòng),只有先傳輸低位才能驅動(dòng)。想問(wèn)下這是怎么回事。
模擬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;
}
之所以有返回值,是因為之前寫(xiě)這個(gè)時(shí)是同時(shí)讀寫(xiě)的,現在不用讀數據,無(wú)視掉就好了。
現在就是用 dat=dat<<1; ISD4004不能工作,而用 dat=dat>>1; ISD能工作(當然還改了包含地址的指令的傳輸順序)。
希望各位指點(diǎn)一下。
|
|