ISD1700程序以下蓝色文字由站长:armok 于:2008-07-21,19:56:13 加入。
电路图在38、39楼。
发一个ISD1760的录放音程序。
/******************************************************************** ******
* SPI操作ISD1760
* SPI操作ISD1760
********************************************************************* **...
以下蓝色文字由站长:armok 于:2008-07-21,19:56:13 加入。
电路图在38、39楼。
发一个ISD1760的录放音程序。
/******************************************************************** ******
* SPI操作ISD1760
* SPI操作ISD1760
********************************************************************* *****/
#include
uchar bdata SR0_L;
uchar bdata SR0_H;
uchar bdata SR1;
uchar ID,APCL=0,APCH=0;
/******************************************************************** ******
* 函数原型: void ISD_Init(void);
* 功能: 初始化
********************************************************************* *****/
void ISD_Init(void){
ISD_Reset();
do{
ISD_PU();
RdStatus();
DogReset();
}while((SR0_L&0x01)||(!(SR1&0x01)));
//if(SR0_L^0==1){system Err}
SBUF=RD_DevID();//读取芯片ID,----1760为0xa0
ClrInt();
ISD_WR_APC2(0xaf);
RdAPC();
}
/******************************************************************** ******
* 函数原型: void ISD_PU(void);
* 功能: 空间检查
********************************************************************* *****/
void ISD_CHK_MEM(void){
ISD_SendData(CHK_MEM);
ISD_SendData(0x00);
SS=1;
delay_ms(10);
}
/******************************************************************** ******
* 函数原型: void ISD_PU(void);
* 功能: 上电
********************************************************************* *****/
void ISD_PU(void){
ISD_SendData(PU);
ISD_SendData(0x00);
SS=1;
delay_ms(50);
}
/******************************************************************** ******
* 函数原型: void ISD_Stop(void);
* 功能: 停止
********************************************************************* *****/
/*
void ISD_Stop(void){
ISD_SendData(STOP);
ISD_SendData(0x00);
SS=1;
delay_ms(50);
}
/******************************************************************** ******
* 函数原型: void ISD_Reset(void);
* 功能: 复位
********************************************************************* *****/
void ISD_Reset(void){
ISD_SendData(RESET);
ISD_SendData(0x00);
SS=1;
delay_ms(50);
}
/******************************************************************** ******
* 函数原型: void ISD_PD(void);
* 功能: 掉电
********************************************************************* *****/
/*
void ISD_PD(void){
ISD_SendData(PD);
ISD_SendData(0x00);
SS=1;
}
/******************************************************************** ******
* 函数原型: void ISD_SendData(uchar BUF_ISD);
* 功能: 发送数据
********************************************************************* *****/
uchar ISD_SendData(uchar BUF_ISD){
uchar i,dat=BUF_ISD;
SCLK=1;
SS=0;
for(i=0;i<8;i++){
SCLK=0;
I_delay();
if(dat&0x01){
MOSI=1;
}
else{
MOSI=0;
}
dat>>=1;
if(MISO){
dat|=0x80;
}
SCLK=1;
I_delay();
MOSI=0;
// SS=1;
return(dat);
}
/******************************************************************** ******
* 函数原型: void RdStatus(void);
* 功能: 读取状态
********************************************************************* *****/
void RdStatus(void){
ISD_SendData(RD_STATUS);
ISD_SendData(0x00);
ISD_SendData(0x00);
SS=1;
delay_ms(10); //延迟10ms
SR0_L =ISD_SendData(RD_STATUS);
SR0_H =ISD_SendData(0x00);
SR1 =ISD_SendData(0x00);
SS=1;
delay_ms(10);
}
/******************************************************************** ******
* 函数原型: void RdStatus(void);
* 功能: 读取ID
********************************************************************* *****/
uchar RD_DevID(void){
ISD_SendData(RD_DEVID);
ISD_SendData(0x00);
ISD_SendData(0x00);
SS=1;
delay_ms(10); //延迟10ms
SR0_L =ISD_SendData(RD_DEVID);
SR0_H =ISD_SendData(0x00);
ID =ISD_SendData(0x00);
SS=1;
delay_ms(10);
return(ID);
/******************************************************************** ******
* 函数原型: void RD_APC(void);
* 功能: 读取APC
********************************************************************* *****/
void RdAPC(void){
ISD_SendData(RD_APC);
ISD_SendData(0x00);
ISD_SendData(0x00);
ISD_SendData(0x00);
SS=1;
delay_ms(10); //延迟10ms
SR0_L =ISD_SendData(RD_APC);
SR0_H =ISD_SendData(0x00);
APCL =ISD_SendData(0x00);
APCH =ISD_SendData(0x00);
SS=1;
delay_ms(10); //延迟10ms
/*
SBUF=SR0_L;
delay_ms(1);
SBUF=SR0_H;
delay_ms(1);
SBUF=APCL;
delay_ms(1);
SBUF=APCH;
*/
}
/******************************************************************** ******
* 函数原型: void ClrInt(void);
* 功能: 清除中断
********************************************************************* *****/
void ClrInt(void){
ISD_SendData(CLI_INT);
ISD_SendData(0x00);
SS=1;
delay_ms(10); //延迟10ms
本文档为【ISD1700程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。