|
|
void ma_write(uchar addr,uchar dat)
{
uchar cycle1;
uint value=0;
value = (( 0x80 | addr ) << 8 ) | dat ;//寫命令 + 地址 + 數(shù)據(jù)
ma_cs = 0;
for( cycle1=0 ; cycle1<16 ; cycle1++ )
{
ma_sclk = 0; delay1(1);
ma_mosi = value&0x8000; delay1(1);
ma_sclk = 1; delay1(1);
value <<= 1;
}
ma_cs = 1;
delay1(25);
}
我用是的STC15W4K56S4的單片機(jī),從機(jī)中寫寄存器操作是一個16位的二進(jìn)制數(shù) ,包括3位命令+5位地址+8位數(shù)據(jù)。我把單片機(jī)的P1^3口定義為ma_mosi,在上面語句中(ma_mosi = value&0x8000;)這一句表達(dá)合不合理?因為MOSI腳是一位一位的發(fā)送數(shù)據(jù),這一語句發(fā)送的直接是一個16位數(shù)了,這樣是不是不合適的?
本人水平偏低,目前是在學(xué)習(xí)中,可能這個問題有些愚笨,盡管如此,還是希望大神不吝賜教,越簡單易懂越好,謝謝。
|
|