📄 spi_receive.c
字号:
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
//-------------------------//
sbit SPISCLK =P1^0;
sbit MOSI =P1^1;
sbit MISO =P1^2;
sbit CS =P1^3;
sbit P20=P2^0; //选通数码管
sbit P21=P2^1;
//------------------------//
void Nop()
{
;
}
void delay(uchar t)
{
while(t--){;}
}
uchar SPI_Receive(void)
{
uchar i,dat=0,temp;
bit flag;
SPISCLK=1;
MISO=1;
CS=0;//选中器件
Nop();
Nop();
for(i=0;i<8;i++)
{
SPISCLK=1;
Nop();
Nop();
Nop();
SPISCLK=0;
Nop();
Nop();
flag=MISO;
if(flag) temp=0x01;
else temp=0x00;
dat=(dat<<1);
dat=(dat|temp);
}
CS=1;
SPISCLK=1;
return dat;
}
void main()
{
uchar udat;
uchar i=0;
uchar code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F};
// P20=0;
// P21=1;
while(1)
{
udat=SPI_Receive();
P2=0xfe;
P0=table[udat%10];
for(i=0;i<200;i++)
delay(500);
P2=0xfd;
P0=table[udat/10];
for(i=0;i<200;i++)
delay(500);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -