Chinaunix首页 | 论坛 | 博客
  • 博客访问: 965704
  • 博文数量: 175
  • 博客积分: 2788
  • 博客等级: 少校
  • 技术积分: 2060
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-25 12:25
个人简介

知之者不如好之,好之者不如乐之

文章分类

全部博文(175)

文章存档

2016年(1)

2015年(20)

2014年(8)

2013年(68)

2012年(16)

2011年(35)

2010年(1)

2008年(26)

分类: 嵌入式

2013-11-14 20:46:10

原文:

以前弄的 51与FPGA用SPI进行通信的测试程序,      模拟的具体是SPI的哪种模式记不清了,
只要改下sclk的时序就可以了.

#include
#include
#include
#include

//SPI接口
sbit cs = P2^3;
sbit sclk = P2^4;
sbit din = P2^2;
sbit dout = P2^1;
//
sbit ACC7=ACC^7;
unsigned char da1;
/***********************************************************************/
void LCD_Init();
void COM_Init();//测试用
void delay(t);//延时函数
unsigned char SPI_InOut(unsigned char input);
/***********************************************************************/
void main()       //主函数
{
unsigned char m,i,s[10];
int a[2];
unsigned char j[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
COM_Init();
LCD_Init();
while(1)
{
for(i=0;i<9;i++)
{
m=j;
a[0]=SPI_InOut(m);
//a[0]=da1;
sprintf(s,"%2x",a[0]);
PutStr(0,0,s);
SBUF=m;
while(!TI);
TI=0;
delay(2000);
}
}
}
/***********************************************************************/
//测试用COM
void COM_Init()//9600
{
TMOD=0x20;
SCON=0x50;
TH1=0xfd;
TL0=0xfd;
TR1=1;
}
//******************************
void LCD_Init()
{
  delay(10);     //等待复位
  LcmInit();
  LcmClearTXT();
  LcmClearBMP();
}
//**********************************************************************
void delay(t)//延时函数
{
unsigned int i,j;
for(i=0;i
{
for(j=0;j<121;j++)
{;}
}
}
//..******************************************************************
//模拟SPI,发送和接收数据,同时
//输入值       input
//返回值        getdata
//。******************************************************************
unsigned char SPI_InOut(unsigned char input)  //  
{
unsigned char i="8",getdata;
cs=0;
while(i--)
{
//sclk=1;
     din=(bit)(input&0x80);//输出
   
//_nop_();
//delay(1);
sclk=0; //下降沿

//*****************************


getdata>>=1;//接收
    ACC="getdata";
    ACC7=dout;
    getdata="ACC";  //数据到getchar中
_nop_();
sclk=1;
input=input<<1;
// if(i==0)
// da1=getdata;
}
//_nop_();
//_nop_();
//_nop_();
cs=1;
return(getdata);
}

阅读(2999) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~