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

📄 1700.txt

📁 用ISD1700来实现读温度
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                DogReset();  
        }while((SR0_L&0x01)||((SR1&0x04)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>  

}  

/**************************************************************************  
*    函数原型: void SetREC(uchar cNum);  
*    功    能: 定点录音  
**************************************************************************/  
void SetREC(uchar cNum){  

        uint Add_ST, Add_ED;  
        uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;  

        do{  
                RdStatus();  
                DogReset();  
        }while((SR0_L&0x01)||(!(SR1&0x01)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>  

        ClrInt();  

        GetToneAdd(cNum, &Add_ST, &Add_ED);  

        Add_ST_L=(uchar)(Add_ST&0x00ff);  
        Add_ST_H=(uchar)((Add_ST>>8)&0x00ff);  
        Add_ED_L=(uchar)(Add_ED&0x00ff);  
        Add_ED_H=(uchar)((Add_ST>>8)&0x00ff);  

        ISD_SendData(SET_REC);  
        ISD_SendData(0x00);  
        ISD_SendData(Add_ST_L);                  //S7:S0  开始地址  
        ISD_SendData(Add_ST_H);                  //S10:S8  
        ISD_SendData(Add_ED_L);                  //E7:E0  结束地址  
        ISD_SendData(Add_ED_H);                 //E10:E8  
        ISD_SendData(0x00);  
        SS=1;  
        delay_ms(10);               //延迟10ms  

        do{  
                RdStatus();  
                DogReset();  
//        }while((SR0_L&0x01)||((SR1&0x08)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>  
        }while((SR0_L&0x01)||(!(SR1&0x01)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>  
}  

/**************************************************************************  
*    函数原型: void SetERASE(uchar cNum);  
*    功    能: 定点删除,容易破坏存储结构(CMA),所以不用  
**************************************************************************/  
/*  
void SetERASE(uchar cNum){  

        uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;  

        Add_ST_L=(uchar)(Add_ST&0xff);  
        Add_ST_H=(uchar)(Add_ST>>8);  
        Add_ED_L=(uchar)(Add_ED&0xff);  
        Add_ED_H=(uchar)(Add_ED>>8);  

        ISD_SendData(SET_ERASE);  
        ISD_SendData(0x00);  
        ISD_SendData(Add_ST_L);          //S7:S0  开始地址  
        ISD_SendData(Add_ST_H);          //S10:S8  
        ISD_SendData(Add_ED_L);          //E7:E0  结束地址  
        ISD_SendData(Add_ED_H);          //E10:E8  
        ISD_SendData(0x00);  
//        SS=1;  
//  delay_ms(120);  
}  

/**************************************************************************  
*    函数原型: void Erase_All(void);  
*    功    能: 全部删除  
**************************************************************************/  
void Erase_All(void){  
        ISD_SendData(G_ERASE);  
        ISD_SendData(0x00);  
        SS=1;  
        delay_ms(100);               //延迟10ms  
}  

/**************************************************************************  
*    END  
*    END  
**************************************************************************/  
以下是SPI.H  
#ifndef _SPIEX_  
#define _SPIEX_  

#include<STC89C58.h>  
#include "typedef.h"  

#define  PU                          0x01  
#define  STOP                          0x02  
#define  RESET                  0x03  
#define  CLI_INT                 0x04  
#define  RD_STATUS                0x05  
#define  RD_PLAY_PTR          0x06  
#define  PD                          0x07  
#define  RD_REC_PTR          0x08  
#define  RD_DEVID                0x09  
#define  G_ERASE                0x43  
#define  RD_APC                  0x44  
#define  WR_APC1                  0x45  
#define  WR_APC2                  0x65  
#define  WR_NVCFG                  0x46  
#define  CHK_MEM                0x49  
#define  SET_PLAY                  0x80  
#define  SET_REC                  0x81  
#define  SET_ERASE          0x82  

#define  HIGH        1  
#define  LOW        0  
/*  
#define  RIGHT        1  
#define  ERROR        0  

//#define SET_BIT(x,y)  (x|=(1<<y))        //x的y位置1  
//#define CLR_BIT(x,y)  (x&=~(1<<y))        //清x的y位  
//#define GET_BIT(x,y)  (x&(1<<y))        //读x的y位  
/*-----------------------------------------------------------------------  
//SR0_L        0                1                2                3                4                5                6                7  
//         CMD_Err   FULL     PU           EOM           INT            A0                A1                A2  

//SR0_H        8                 9                10                11                12                13                14                15  
//                A3                A4                A5                A6                A7                A8                A9                A10  

//SR1        0                1                2                3                4                5                6                7  
//           RDY    ERASE    PLAY    REC     SE1     SE2     SE3           SE4  

//APC        0                1                2                3                4                5                6                7  
//          VOL0          VOL1    VOL2         MON_IN          MIX_IN  SE_EDIT  SPI_FT  AUD/AUX(AUD线路输出,AUX直接驱动喇叭)  

//APC        8                 9                10                11  
//          PWM_SPK  PU_AO  VALERT  EOM_EN(在SETPLAY模式下,置1遇到EOM则结束,否则继续播放)  
----------------------------------------------------------------------------*/  
/*  
sbit INT_1700        =        SR0_L^4;  
sbit EOM                =        SR0_L^3;  
sbit PU_1700        =        SR0_L^2;  
sbit FULL                =        SR0_L^1;  
sbit CMD_ERR        =        SR0_L^0;  

sbit REC_1700        =        SR1^3;  
sbit PLAY_1700        =        SR1^2;  
sbit ERASE_1700        =        SR1^1;  
sbit RDY                =        SR1^0;  
*/  
sbit SS                =        P4^3;  
sbit SCLK        =        P4^2;  
sbit MOSI        =        P4^1;  
sbit MISO        =        P4^0;  


extern void  I_delay(void);  
extern void delay_ms(register uint Count);  
extern void DogReset(void) reentrant;  

/**************************************************************************  
*    函数原型: void GetToneAdd(uchar cNum, Uint * ipStartAdd, Uint * ipEndAdd);  
*    功    能: 取出当前语音的首末地址  
**************************************************************************/  
void GetToneAdd(uchar cNum, uint * ipStartAdd, uint * ipEndAdd);  

/**************************************************************************  
*    函数原型: void ISD_Init(void);  
*    功    能: 初始化  
**************************************************************************/  
void  ISD_Init(void);  

/**************************************************************************  
*    函数原型: void ISD_PU(void);  
*    功    能: 上电  
**************************************************************************/  
void ISD_CHK_MEM(void);  

/**************************************************************************  
*    函数原型: void ISD_Up(void);  
*    功    能: 上电  
**************************************************************************/  
void  ISD_PU(void);  

/**************************************************************************  
*    函数原型: void ISD_Stop(void);  
*    功    能: 停止  
**************************************************************************/  
void ISD_Stop(void);  

/**************************************************************************  
*    函数原型: void ISD_Reset(void);  
*    功    能: 复位  
**************************************************************************/  
void ISD_Reset(void);  

/**************************************************************************  
*    函数原型: void ISD_PD(void);  
*    功    能: 掉电  
**************************************************************************/  
void ISD_PD(void);  

/**************************************************************************  
*    函数原型: void ISD_SendData(uchar BUF_ISD);  
*    功    能: 发送数据  
**************************************************************************/  
uchar ISD_SendData(uchar BUF_ISD);  

/**************************************************************************  
*    函数原型: void RdStatus(void);  
*    功    能: 读取状态  
**************************************************************************/  
void RdStatus(void);  

/**************************************************************************  
*    函数原型: void RdStatus(void);  
*    功    能: 读取ID  
**************************************************************************/  
uchar RD_DevID(void);  

/**************************************************************************  
*    函数原型: void RD_APC(void);  
*    功    能: 读取APC  
**************************************************************************/  
void RdAPC(void);  

/**************************************************************************  
*    函数原型: void ClrInt(void);  
*    功    能: 清除中断  
**************************************************************************/  
void ClrInt(void);  

/**************************************************************************  
*    函数原型: void ISD_WR_APC2(uchar voiceValue);  
*    功    能: WR_APC2  
**************************************************************************/  
void ISD_WR_APC2(uchar voiceValue);  

/**************************************************************************  
*    函数原型: void ISD_WR_NVCFG(void);  
*    功    能: 永久写入寄存器  
**************************************************************************/  
void ISD_WR_NVCFG(void);  

/**************************************************************************  
*    函数原型: void SetPLAY(uchar cNum);  
*    功    能: 定点播放  
**************************************************************************/  
void SetPLAY(uchar cNum);  

/**************************************************************************  
*    函数原型: void SetREC(uchar cNum);  
*    功    能: 定点录音  
**************************************************************************/  
void SetREC(uchar cNum);  

/**************************************************************************  
*    函数原型: void SetERASE(uchar cNum);  
*    功    能: 定点删除  

**************************************************************************/  
/*  
void SetERASE(uchar cNum);  

/**************************************************************************  
*    函数原型: void Erase_All(void);  
*    功    能: 全部删除  
**************************************************************************/  
void Erase_All(void);  

/**************************************************************************  
*    END  
*    END  
**************************************************************************/  
#endif  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -