union User_Type
{
Uchar Ch[4] ;
ULint LIn ;
} Buffer , Buffer1 , Buffer2 ;
void Serial_Data_Move( void )
{
Uchar i ;
for( i = 0 ; i < 3 ; i ++ )
Buffer.Ch[ i ] = RGB[ i ] ;
Serial_Latch_Fg = 1 ;
for( i = 0 ; i < 8 ; i ++ )
{
Serial_Data1_Fg = ( Buffer.LIn & 0x80000000 ) ? 1 : 0 ;
Serial_Data2_Fg = ( Buffer.LIn & 0x40000000 ) ? 1 : 0 ;
Serial_Data3_Fg = ( Buffer.LIn & 0x20000000 ) ? 1 : 0 ;
Serial_Clk_Fg = 1 ;
_nop_( ) ;
Serial_Clk_Fg = 0 ;
Buffer.LIn < <= 3 ;
Delay( 100 ) ;
Serial_Latch_Fg = 0 ;
}
if( HC )
{
TB8 = 0 ;
SBUF = 0x0F ;
while( !TI ) ;
TI = 0 ;
Verify = 0 ;
TB8 = 1 ;
SBUF = 0x06 ;
while( !TI ) ;
TI = 0 ;
Verify += 0x06 ;
SBUF = 0x02 ;
while( !TI ) ;
TI = 0 ;
Verify += 0x02 ;
......
}
这是51与外部EEPROM的一段程序,Serial_Data1_Fg,Seria2_Data1_Fg,Serial_Data3_Fg,Serial_Clk_Fg,Serial_Latch_Fg分别是5个IO口的定义,是接口定义。
不知道是个什么EEPROM,或者是几个EEPROM相连,是什么型号,怎么连呢。
Serial_Data1_Fg = ( Buffer.LIn & 0x80000000 ) ? 1 : 0 ;
Serial_Data2_Fg = ( Buffer.LIn & 0x40000000 ) ? 1 : 0 ;
Serial_Data3_Fg = ( Buffer.LIn & 0x20000000 ) ? 1 : 0 ;
这三句是起什么作用的呢?