📄 isd4002.c
字号:
#include "ISD4002.h"
void YS50(void){
#if 1
TMOD=1;
TH0=0xcf;
TL0=0x2c;
TR0=1;
while(!TF0);
TF0=0;
TR0=0;
#else
unsigned char i;
for(i=250;i>0;i--);
#endif
}
void ISD_Write(unsigned char d){
unsigned char i,j;
SS=0;
SCLK=0;
j=d;
for(i=0;i<8;i++){
if(j&0x01)
MOSI=1;
else
MOSI=0;
SCLK=1;
j=j>>1;
SCLK=0;
}
}
unsigned char ISD_Read(void){
unsigned char i,d;
SS=0;
SCLK=1;
for(i=0;i<8;i++){
SCLK=0;
if(MOSO&0x01)
d|=0x01;
else
d&=~0x01;
SCLK=1;
d<<=1;
}
// SS=1;
return d;
}
void POWERUP(void){
ISD_Write(0x20);
SS=1;
YS50();
}
void SET_PLAY(unsigned int addr){
unsigned char buffer[2];
if(addr>0x7ff)return;
buffer[0]=addr>>8;
buffer[0]&=0x07;
buffer[0]|=0xe0;
buffer[1]=addr;
ISD_Write(buffer[1]);
ISD_Write(buffer[0]);
// ISD_Write(0xe0);
// ISD_Write(0xf0);
SS=1;
PLAY();
}
void PLAY(void){
ISD_Write(0xf0);
SS=1;
}
void SET_REC(unsigned int addr){
unsigned char buffer[2];
if(addr>0x7ff)return;
buffer[0]=addr>>8;
buffer[0]&=0x07;
buffer[0]|=0xa0;
buffer[1]=addr;
ISD_Write(buffer[1]);
ISD_Write(buffer[0]);
// ISD_Write(0xa0);
// ISD_Write(0xb0);
SS=1;
REC();
}
void REC(void){
ISD_Write(0xb0);
SS=1;
}
void SET_MC(unsigned int addr){
unsigned char buffer[2];
if(addr>0x7ff)return;
buffer[0]=addr>>8;
buffer[0]&=0x07;
buffer[0]|=0xe8;
buffer[1]=addr;
ISD_Write(buffer[1]);
ISD_Write(buffer[0]);
// ISD_Write(0xe8);
// ISD_Write(0xf8);
SS=1;
MC();
}
void MC(void){
ISD_Write(0xf8);
SS=1;
}
void STOP(void){
ISD_Write(0xc0);
SS=1;
YS50();
}
void STOP_WRDN(void){
ISD_Write(0x40);
SS=1;
YS50();
}
unsigned char RINT(void){
unsigned char dt;
unsigned char d=0;
dt=ISD_Read();
if(dt&0x80)
d+=1;
if(dt&0x40)
d+=2;
return d;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -