Side Menu

ISD4000-89C51开发板源程序

2017-5-6 11:02| 发布者: admin| 查看: 1165| 评论: 0

摘要: 下载;ISD4000-89C51开发板源程序本程序下面的不全,请下载上面的资料查看完整。//*****************************************************// ISD4002-89c51开发板演示例程 C51版本 *// 作者:中青世纪 Lell *// 2008 ...
下载;<ISD4000-89C51开发板源程序>

 本程序下面的不全,请下载上面的资料查看完整。

//*****************************************************
// ISD4002-89c51开发板演示例程 C51版本 *
// 作者:中青世纪 Lell *
// 2008.2.27 *
// *
// 更多ISD4000使用心得请登陆中青世纪论坛 *
// http://www.atvoc.com/bbs *
// *
//*****************************************************
 
#include <reg51.h>
sbit SS = P1^0; //片选
sbit SCLK = P1^1; //ISD4003时钟
sbit MOSI = P1^2; //数据输入
sbit MISO = P1^3; //数据输出
sbit LED = P1^7; //指示灯
sbit ISD_INT= P3^2; //中断
sbit AN = P1^6; //执行
sbit STOP = P1^5; //复位
sbit PR = P1^4; //PR=1录音? PR=0放音
void delay(unsigned int time) //延迟n微秒
{
while(time!=0)
{
time-- ;
}
}
void delayms(unsigned int time) //延迟n毫秒
{ TMOD=0x01;
 
for(time;time>0;time--)
{
TH0=0xfc;
TL0=0x18;
TR0=1;
while(TF0!=1)
{;}
TF0=0;
TR0=0;
}
 
}
 
//************************************
//ISD4002 spi串行发送子程序,8位数据
//************************************
void spi_send(unsigned char isdx)
{ unsigned char isx_counter;
SS=0; //ss=0,打开spi通信端
SCLK=0;
for(isx_counter=0;isx_counter<8;isx_counter++) //先发低位再发高位,依次发送。
{ if ((isdx&0x01)==1)
MOSI=1;
else
MOSI=0;
isdx=isdx>>1;
SCLK=1;
delay(2);
 
SCLK=0;
delay(2);
}
}
 
//*******************************
//发送stop指令
//*******************************
void isd_stop(void)
{ delay(10);
spi_send(0x30);
SS=1;
delayms(50);
}
//*******************************
//发送上电指令,并延迟50ms
//*******************************
void isd_pu(void)
{ delay(10);
SS=0;
spi_send(0x20);
SS=1;
delayms(50);
}
//*******************************
//发送掉电指令,并延迟50ms
//*******************************
 
void isd_pd(void)
{ delay(10);
 
spi_send(0x10);
SS=1;
delayms(50);
}
//*******************************
//发送play指令
//*******************************
void isd_play(void)
{
LED=0;
spi_send(0xf0);
SS=1;
}
//*******************************
//发送rec指令
//*******************************
void isd_rec(void)
{
LED=0;
spi_send(0xb0);
SS=1;
}
//*******************************
//发送setplay指令
//*******************************
void isd_setplay(unsigned char adl,unsigned char adh)
 
{
 
spi_send(adl); //发送放音起始地址低位
adh=adh|0xe0;
spi_send(adh); //发送放音起始地址高位
SS=1;
}
//*******************************
//发送setrec指令
//*******************************
void isd_setrec(unsigned char adl,unsigned char adh)
{
spi_send(adl); //发送放音起始地址低位
adh=adh|0xa0;
spi_send(adh); //发送放音起始地址高位
SS=1;
}
 

鲜花

握手

雷人

路过

鸡蛋