📄 11.c
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit SS=P1^0;
sbit MOSI=P1^1;
sbit MISO=P1^2;
sbit SCLK=P1^3;
sbit INT=P3^2;
sbit K5=P2^6;
sbit K6=P2^7;
sbit LED=P3^0;
void delayus(uint time)
{
while(time--);
}
void delayms(uint time)
{
TMOD=0X01;
for(time;time>0;time--)
{
TH0=0xfc;
TL0=0x18;
TR0=1;
while(!TF0);
TF0=0;
TR0=0;
}
}
void spi_send(uchar isdx)
{
uchar i;
SS=0;
SCLK=0;
for(i=0;i<8;i++)
{
if(isdx&0x01)
MOSI=1;
else
MOSI=0;
isdx=isdx>>1;
SCLK=1;
delayus(2);
SCLK=0;
delayus(2);
}
}
//*******************************
//发送stop指令
//*******************************
void isd_stop(void)
{
delayus(10);
spi_send(0x30);
SS=1;
delayms(50);
}
//*******************************
//发送上电指令,并延迟50ms
//*******************************
void isd_pu(void)
{
delayus(10);
SS=0;
spi_send(0x20);
SS=1;
delayms(50);
}
//*******************************
//发送掉电指令,并延迟50ms
//*******************************
void isd_pd(void)
{
delayus(10);
spi_send(0x10);
SS=1;
delayms(50);
}
//*******************************
//发送play指令
//*******************************
void isd_play(void)
{
spi_send(0xf0);
SS=1;
}
//发送rec指令
//*******************************
void isd_rec(void)
{
spi_send(0xb0);
SS=1;
}
//发送setplay指令
//*******************************
void isd_setplay(uchar adl,uchar adh)
{
delayms(1);
spi_send(adl); //发送放音起始地址低位
delayus(2);
spi_send(adh); //发送放音起始地址高位
delayus(2);
spi_send(0xe0);
SS=1;
}
//*******************************
//发送setrec指令
//*******************************
void isd_setrec(uchar adl,uchar adh)
{
delayms(1);
spi_send(adl); //发送放音起始地址低位
delayus(2);
spi_send(adh); //发送放音起始地址高位
delayus(2);
spi_send(0xa0);
SS=1;
}
void main()
{
P0=P1=P2=P3=0xff;
while(1)
{
if(K5==0)
{
delayms(10);
if(K5==0)
{ LED=0;
isd_pu();
isd_pd();
isd_pu();
delayms(50);
delayms(500);
isd_setrec(0x00,0x00);
isd_rec();
while(K5==0);
LED=1;
}
}
if(K6==0)
{
delayms(10);
if(K6==0)
{
isd_pu();
isd_pd();
isd_pu();
isd_setplay(0xaa,0x00);
isd_play();
delayus(20);
while(INT==1);
isd_stop();
}
}
isd_stop();
isd_pd();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -