spi.c
上传用户:shyuanyi
上传日期:2008-05-24
资源大小:69k
文件大小:1k
源码类别:

RFID编程

开发平台:

C/C++

  1. #include  "my_head.h"
  2. /*********************************************/
  3. #define   MOSI       P1_5
  4. #define   MISO       P1_6
  5. #define   SPI_SCK    P1_7
  6. //-------------------------
  7. void  Init_spi(void)
  8. {
  9.    MISO  =  1;
  10.    MISO  =  1;
  11.    SPI_SCK= 1;
  12.    //SS    =  1;
  13. }
  14. BYTE  KeySpiByte_SendReceive(BYTE  sdat)
  15. {
  16.   BYTE  i,rdat=0;//must=0!
  17.   for(i=0;i<8;i++ )
  18.     {
  19.      SPI_SCK = 0;              //(0)
  20.      MOSI = (bit)(sdat & 0x80);//(1)
  21.  rdat<<=1;                 //(2)
  22.  rdat |= MISO;             //(3)
  23.      SPI_SCK = 1;              //(4)  
  24.  sdat<<=1;                 //(5)
  25.     }
  26.   return(rdat);
  27. }
  28. BYTE  MemSpiByte_SendReceive(BYTE  sdat)
  29. {
  30.   BYTE  i,rdat=0;//must=0!
  31.   for(i=0;i<8;i++ )
  32.     {
  33.      SPI_SCK = 0;              //(0)
  34.      MOSI = (bit)(sdat & 0x80);//(1)
  35.  rdat<<=1;                 //(2)
  36.    _nop_(),_nop_();
  37.      SPI_SCK = 1;              //(3)
  38.  _nop_(),_nop_();
  39.  rdat |= MISO;             //(4)
  40.  sdat<<=1;                 //(5)
  41.     }
  42.   return(rdat);
  43. }