📄 isd1700c.c
字号:
#include "REG8952.h"
//command define
#define PU 0x01 //上电
#define STOP 0x02 //停止
#define RESET 0x03 //复位
#define CLR_INT 0x04 //清除中断
#define RD_STATUS 0x05 //读取 SR 状态寄存器指令
#define RD_PLAY_PTR 0x06 //获取播放指针地址
#define PD 0x07 //掉电
#define RD_REC_PTR 0x08 //获取录音指针地址
#define DEVID 0x09 //获取芯片ID
#define PLAY 0x40 //播放
#define REC 0x41 //录音
#define ERASE 0x42 //单段擦除
#define G_ERASE 0x43 //全部擦除
#define RD_APC 0x44 //读取APC寄存器内容
#define WR_APC1 0x45 //写APC寄存器
#define WR_APC2 0x65
#define WR_NVCFG 0x46 //写NVCFG寄存器默认值
#define LD_NVCFG 0x47 //将NVCFG内容加载至APC寄存器
#define FWD 0x48 //快进
#define CHK_MEM 0x49 // 检查芯片环状存储结构
#define EXTCLK 0x4a
#define SET_PLAY 0x80 //精确寻地址播放
#define SET_REC 0x81 //精确寻地址录音
#define SET_ERASE 0x82 //精确寻地址擦除
#define UINT8 unsigned char
//spio define
sbit ISD1790_SS = P1^3; //片选信号
sbit ISD1790_MISO = P1^0; //数据输出
sbit ISD1790_MOSI = P1^1; //数据输入
sbit ISD1790_SCLK = P1^2; //时钟信号
sbit ISD1790_AN = P1^5; //按键执行
sbit ISD1790_STOP = P1^4; //停止运行
//var define
UINT8 bdata SR0H;
UINT8 bdata SR0L;
sbit bCMD_ERR = SR0L^0; //错误标志位为1表示上一个SPI指令无效
sbit bPU = SR0L^2; //上电标志位
sbit bEOM = SR0L^3; //当检测到EOM时该位置1
sbit bINT = SR0L^4; //当一个SPI操作完成时该位置1 可被CLR-INT清零
UINT8 bdata SR1;
sbit bRDY = SR1^0; //RDY=1时空闲 可以接受SPI命令,RDY=0为忙不接受新的SPI除(RESET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -