查看: 1755|回复: 0
打印 上一主题 下一主题

模拟SPI程序书写思路

[复制链接]
跳转到指定楼层
沙发
发表于 2016-4-18 21:54:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void SPI_SEND_ONE_DATA(uchar i)    //SPI发一个字节
{
  uchar loop;
  uint delay;
  uchar temp;
  temp = 0x80;
  for(loop = 0; loop < 8; loop++)
  {
   if((i & (temp >> loop)))
    DIN_1;
   else
     DIN_0;
   for(delay = 10;delay > 0; delay--);
   SCLK_1;
   for(delay = 50;delay > 0; delay--);
   SCLK_0;
   for(delay = 50;delay > 0; delay--);
  }
//  for(delay = 50;delay> 0; delay--);
}

uchar SPI_READ_ONE_DATA(void)  //SPI收一个字节
{
  uchar loop;
  uint delay;
  uchar temp;
  uchar i;
  i = 0x00;
  for(loop = 0; loop < 8; loop++)
  {
   i = i << 1;
   SCLK_1;
   for(delay = 50; delay > 0; delay--);
   temp = P1IN;
   if((temp & 0x08))
     i |= 0x01;
   SCLK_0;
   for(delay = 50;delay > 0; delay--);
  }
//  for(delay = 50;delay > 0; delay--);
  return i;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表