|
今天第一次調(diào)ISD4004,資料上說它用SPI總線驅(qū)動,我用STC89C52模擬SPI時序。但是SPI應(yīng)該是先傳輸高位的,而用ISD的SPI時,先傳輸高位不能驅(qū)動,只有先傳輸?shù)臀徊拍茯?qū)動。想問下這是怎么回事。
模擬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;
}
之所以有返回值,是因?yàn)橹皩戇@個時是同時讀寫的,現(xiàn)在不用讀數(shù)據(jù),無視掉就好了。
現(xiàn)在就是用 dat=dat<<1; ISD4004不能工作,而用 dat=dat>>1; ISD能工作(當(dāng)然還改了包含地址的指令的傳輸順序)。
希望各位指點(diǎn)一下。
|
|