⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isd4002.c

📁 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 + -