USB中国技术论坛

armer 发表于 2006-8-3 20:42

鼠标c语言格式例程(平台:arm lpc2132)

例程如下
   
   
为准确期间 未使用 循环   
   
可以改进   
   
void SEND_BYTE(uint8 word)  
{



int i,j;


uint32 parity=0;

for (j=0;j<8;j  )


{

  if ((word>>j)&0x1 == 1)
  
  parity="(parity);

}

parity="parity;




IO0DIR = CLK|DATA;
IO0SET = CLK|DATA;


IO0CLR = CLK;  




for(i=0;i<1500;i  )
;



//IO0DIR=CLK|DATA;
for(i=0;i<300;i  );


IO0CLR=DATA;

for(i=0;i<75;i  );


IO0DIR=DATA;





//for(i=0;i<500;i  );








//while (( IO0PIN & CLK )!=0);




//while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



if ( (word>>0)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  
  
  


while( ( IO0PIN & CLK )==0);


while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



if ( (word>>1)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  
  
  
  


while( ( IO0PIN & CLK )==0);


while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



if ( (word>>2)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  

while( ( IO0PIN & CLK )==0);





while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



if ( (word>>3)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  
while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );


if ( (word>>4)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  

while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );


if ( (word>>5)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  

while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );


if ( (word>>6)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  

while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );


if ( (word>>7)&0x1 )
  
  
  IO0SET=0x1;
  
  else
  
  
  IO0CLR=0x1;
  
  

while( ( IO0PIN & CLK )==0);




while (( IO0PIN & CLK )!=0);
for(i=0;i<200;i  );
if ( parity &0x1 )
  IO0SET=0x1;
  else
  IO0CLR=0x1;
  while( ( IO0PIN & CLK )==0);
while (( IO0PIN & CLK )!=0);
for(i=0;i<200;i  );
IO0SET=0x1;
while( ( IO0PIN & CLK )==0);
for(i=0;i<200;i  );
IO0DIR=0;
for(j=0;j<1500;j  );

}  
   
   
接受数据   
   
   
void RECEIVE_BYTE(void)
{
int i,j;


uint32 parity=0;

at=0;

/*for (j=0;j<8;j  )


{

  if ((word>>j)&0x1 == 1)
  
  parity="(parity);

}

parity="parity;*/






while (( IO0PIN & CLK )!=0);


for(i=0;i<500;i  );



while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<0;
  
  
  
  


while( ( IO0PIN & CLK )==0);


while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<1;
  
  
  
  
  


while( ( IO0PIN & CLK )==0);


while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<2;
  
  

while( ( IO0PIN & CLK )==0);





while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<3;
  
  
while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<4;
  
  

while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<5;
  
  

while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<6;
  
  

while( ( IO0PIN & CLK )==0);



while (( IO0PIN & CLK )!=0);



for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<7;
  
  

while( ( IO0PIN & CLK )==0);




while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<8;
  
  

while( ( IO0PIN & CLK )==0);




while (( IO0PIN & CLK )!=0);


for(i=0;i<200;i  );



at|=(IO0PIN&0x1)<<9;
  
  
  
while( ( IO0PIN & CLK )==0);




for(i=0;i<1000;i  );  
   
}  
   
   
平台 arm    lpc2132

Powered by USB中国技术论坛 Archiver 6.1.0  © 2001-2007USB中国技术论坛

USB开发中国论坛静态html版本,已经seo36.com协助优化!