📄 isd4004.c
字号:
/*spi isd4004.h*/
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define unint unsigned int
uchar a,addr,table;
sbit ISD4004_SS = P1^7;
sbit ISD4004_SCLK= P2^1;
sbit ISD4004_MOSI= P3^6;
sbit ISD4004_MOSO= P3^7;
sbit _rac = P0^4;
sbit _int = P3^2;
//============================================================
//函数名称:void delay25ms()
//函数功能:延迟25ms
//日期:2007.03.31
//============================================================
void delay25ms()
{
unsigned int i;
for(i=0;i<=5000;i++);
}
//===========================================================
//函数名称:void ISD4004_ISD4004_Send(unsigned char m)
//函数功能:给ISD4004送命令
//日期:2007.03.31
//===========================================================
void ISD4004_Send(unsigned char m)
{
unsigned char i,j;
for(i=0;i<8;i++)
{
ISD4004_SCLK = 0;
if(m&0x01)
ISD4004_MOSI=1;
else
ISD4004_MOSI=0;
for(j=0;j<5;j++);
ISD4004_SCLK=1;
for(j=0;j<5;j++);
m=m>>1;
}
}
//===========================================================
//函数名称:void ISD4004_Powerup()
//函数功能:ISD4004上电
//日期:2007.03.31
//===========================================================
void ISD4004_Powerup()
{
ISD4004_SS=0; //开片选
ISD4004_Send(0x20);
delay25ms();
ISD4004_SS=1; //关片选
}
//============================================================
//函数名称:void ISD4004_Stop()
//函数功能:ISD4004停止
//日期:2007.03.31
//============================================================
void ISD4004_Stop()
{
ISD4004_SS=0;
ISD4004_Send(0x30);
ISD4004_SS=1;
}
//===========================================================
//函数名称:void ISD4004_Powerdown()
//函数功能:下电 停止并掉电
//日期:2007.03.31
//===========================================================
void ISD4004_Powerdown()
{
ISD4004_SS=0;
ISD4004_Send(0x10);
ISD4004_SS=1;
}
//==========================================================
//函数名称:void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
//函数功能:放音
//日期:2007.03.31
//==========================================================
void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
{
ISD4004_SS=0;
ISD4004_Send(addr_l);
ISD4004_Send(addr_h);
ISD4004_Send(0xe0);
ISD4004_SS=1;
ISD4004_SS=0;
ISD4004_Send(0xf0);
ISD4004_SS=1;
}
//================================================================
void ISD4004_Rec(unsigned char addr_h,unsigned char addr_l)
{
ISD4004_SS=0;
ISD4004_Send(addr_l);
ISD4004_Send(addr_h);
ISD4004_Send(0xa0);
ISD4004_SS=1;
ISD4004_SS=0;
ISD4004_Send(0xb0);
ISD4004_SS=1;
}
//================================================================
//函数名称:void fangyin()
//函数功能:语音 addr为地址
//日期:2007.03.31
//================================================================
void fangyin(uchar addr)
{
uchar a;
ISD4004_Powerup();
delay25ms();
a = addr * 2;
ISD4004_Play(table[a],table[a+1]);
}
//================================================================
//函数名称:void luyin()
//函数功能:语音 addr为地址
//日期:2007.03.31
//================================================================
void luyin(uchar addr)
{
uchar a;
ISD4004_Powerup();
delay25ms();
delay25ms();
a = addr * 2;
ISD4004_Rec(table[a],table[a+1]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -