您当前的位置:五五电子网电子知识单片机-工控设备51单片机ISD1760录放音程序 正文
ISD1760录放音程序

ISD1760录放音程序

点击数:7948 次   录入时间:03-04 11:51:14   整理:http://www.55dianzi.com   51单片机

/************************************************************************** 
*    SPI操作ISD1760 
*    SPI操作ISD1760 
**************************************************************************/ 

#include<SPI.H> 


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}<CMD_Err==1> 

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); 

[1] [2] [3] [4]  下一页


本文关键字:程序  51单片机单片机-工控设备 - 51单片机

上一篇:触摸屏原理