当前位置:首页 > 单片机 > 单片机
[导读]以前弄的 51与FPGA用SPI进行通信的测试程序, 模拟的具体是SPI的哪种模式记不清了,只要改下sclk的时序就可以了.#include#include#include#include//SPI接口sbit cs = P2^3;sbit sclk = P2^4;sbit din = P2^2;sbit do

以前弄的 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);
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

51单片机是对兼容英特尔8051指令系统的单片机的统称。51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。因为51单片机的指令系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。

关键字: 51 单片机 51单片机论坛

【零基础】彻底搞懂51单片机各种型号(ATMEL系列)

关键字: 51 型号

51单片机交通灯(十字路口演示)

关键字: 51 交通

51单片机编程软件keil4的安装过程

关键字: 51 编程

接触过STC89,90,12,15系列,接触过SMT32F103,接触过TI TIVA cortex m4,接触过Mbed OS,接触过TI CC23530,CC2540的来怒答一波。

关键字: cc2530 51 单片机

总结一下最近学的东西,这两天学的东西,rfid门卡系统终于弄出来来了,这个程序算现在写过的比较满意的程序,大家可以参考参考

关键字: 51 rc522 人体红外感应 门禁系统

#include#include#define GPIO_LED P2//外部中断的IOsbit K3=P3^2;sbit K4=P3^3;void IntConfiguration();void Delay(unsig...

关键字: 51 外部中断测试

在“51操作系统学习笔记(一)”里,已经掌握了并行多任务的实现,和利用修改sp内容,子程序结束调用ret来实现程序跳转。但程序没有涉及中断,任务中有中断,程序会失去控制。这一单元,要学习带中断问题的多任务操作系

关键字: 51 操作系统

地址总线是单向的,用于传送地址信息。地址总线的宽度为16位,因此基外部存储器直接寻址64K。总线宽度为16位,“位”不是bit或者byte,总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数。一般情

关键字: 51 地址总线

/这个程序已经调试过了//下面调用实例////////////////////////////////////LCD1602读写头文件//四线驱动方式//////////////////////////////////#...

关键字: 51 lcd1602 四数据线驱动
关闭
关闭