📄 isd4004_rp.c
字号:
//=============================ISD4004录放音程序
//-------------------------------------
PowerDown() //下电
{
uchar Comm,i;
Comm = 0x10; //00010000
SS = 1;
_nop_();_nop_();
SCK = 0;
_nop_();_nop_();
SS = 0;
_nop_();_nop_();
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (Comm & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
Comm = Comm >> 1;
}
SS = 1;
}
//-------------------------------------
PowerUp() //上电
{
uchar Comm,i;
Comm = 0x20; //00100000
SS = 1;
_nop_();_nop_();
SCK = 0;
_nop_();_nop_();
SS = 0;
_nop_();_nop_();
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (Comm & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
Comm = Comm >> 1;
}
SS = 1;
}
//-------------------------------------
StopMode() //停止
{
uchar Comm,i;
Comm = 0x30; //00110000
SS = 1;
_nop_();_nop_();
SCK = 0;
_nop_();_nop_();
SS = 0;
_nop_();_nop_();
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (Comm & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
Comm = Comm >> 1;
}
SS = 1;
delay(8000);
PowerDown();
delay(8000);
}
//-------------------------------------
Record(uint address) //录音
{
uchar i,Comm,addH,addL;
addL = address;
addH = address >> 8;
PowerUp();
delay(8000); //上电延时
PowerUp();
delay(8000);
delay(8000);
Comm = 0xa0; //10100000--SET REC
SS = 1;
_nop_();_nop_();
SCK = 0;
_nop_();_nop_();
SS = 0;
_nop_();_nop_();
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (addL & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
addL = addL >> 1;
}
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (addH & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
addH = addH >> 1;
}
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (Comm & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
Comm = Comm >> 1;
}
Comm = 0xb0; //10110000--REC
SS = 1;
_nop_();_nop_();
SCK = 0;
_nop_();_nop_();
SS = 0;
_nop_();_nop_();
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (Comm & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
Comm = Comm >> 1;
}
SS = 1;
P1 = 0xff;
}
//-------------------------------------
Playback(uint address) //放音
{
uchar i,Comm,addH,addL;
PowerUp();
delay(8000); //上电延时
addL = address;
addH = address >> 8;
Comm = 0xe0; //11100000--SET PLAY
SS = 1;
_nop_();_nop_();
SCK = 0;
_nop_();_nop_();
SS = 0;
_nop_();_nop_();
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (addL & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
addL = addL >> 1;
}
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (addH & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
addH = addH >> 1;
}
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (Comm & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
Comm = Comm >> 1;
}
Comm = 0xf0; //11110000--PLAY
SS = 1;
_nop_();_nop_();
SCK = 0;
_nop_();_nop_();
SS = 0;
_nop_();_nop_();
for (i = 0;i < 8;i ++)
{
MOSI = (bit) (Comm & 0x01);
_nop_();_nop_();
SCK = 1;
_nop_();_nop_();
SCK = 0;
Comm = Comm >> 1;
}
SS = 1;
P1 = 0xff;
while(INT==1);
StopMode();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -