📄 isd1420.c
字号:
#include "ISD1420.h"
/*****************************************************************
**说明:能录,放6段2秒短时间和2段4秒长时间的语音(时间可以改)
**连接图:使用兰兴电路,只是P2_4代替WR,故芯片地址为0xcfff,直接用XBYTE[0xCFFF]会有错误,
** 故采用分离方式赋值,即P2=0XCF;P0= ;P2=0XFF;
**时间:2008.8.17
**作者:馒头
*****************************************************************/
//#define ISD1420_SEL XBYTE[0xCFFF] /*语音芯片地址*/
//sbit Record = P1^2; //录音控制端,低电平有效
//sbit Play = P1^3; //放音控制端,低电平有效
//*******前4段时间是1秒,后4段为2秒时间 *******************************
//***************************语音信号说明************************************
//*******各用1秒时间*******************************************
//ISD1420_Section =0 :“停”;
//ISD1420_Section =1 :“前进”;
//ISD1420_Section =2 :“后退”;
//ISD1420_Section =3 :“左转”;
//ISD1420_Section =4 :“右转”;
//*******************************************************************
//*******各用2秒时间***************************************
//ISD1420_Section =5 :“有障碍物”;
//ISD1420_Section =6 :“发现光源”;
//ISD1420_Section =7 :“找到目标”;
//ISD1420_Section =8 :“结束任务”;
//ISD1420_Section =9 : 录歌曲
unsigned char ISD1420address[10] ={0x00,0x08,0x10,0x18,0x20, 0x28,0x38,0x48,0x58,0x68} ;
char ISD1420_Counter = 0;
bit Record_En = 0; //录音使能
bit Play_En = 0; //放音使能
char Second_1s = 0; //控制录,放音时间
int Counter_1s = 0;
//===================================================================
//*****************录音函数******************************************
//**作者:馒头
//**时间:2008.8.16
//===================================================================
void ISD1420_Record(void)
{
Counter_1s = 0; //重新计时
Second_1s = 0;
Record = 0; //录音控制
Record_En = 1;
DisplayBuffer[4] = HexChar[1]; //用于指示
Play = 1;
Play_En = 0;
}
//===================================================================
//*****************录音函数******************************************
//**作者:馒头
//**时间:2008.8.16
//===================================================================
void ISD1420_Play(void)
{
Counter_1s = 0; //重新计时
Second_1s = 0;
Play = 0; //放音使能键
Play_En = 1;
DisplayBuffer[5] = HexChar[1]; //用于指示
Record = 1;
Record_En = 0;
}
void ISD1420_Task(void)
{
if(KeyValue)
{
switch(KeyValue)
{
case 1 :ISD1420_Counter = 0;
P2 = 0xCF; //初始化
P0 = ISD1420address[ISD1420_Counter];
P2 = 0xFF;
break;
case 2: ISD1420_Record(); //录音
break;
case 3: ISD1420_Play(); //放音
break;
case 4: ISD1420_Counter++; //语音段选择
if(ISD1420_Counter >= 10)
{ISD1420_Counter = 0;}
P2 = 0xCF;
P0 = ISD1420address[ISD1420_Counter];
P2 = 0xFF;
break;
default:break;
}
DisplayBuffer[2] = HexChar[ISD1420_Counter];
DisplayBuffer[7] = HexChar[KeyValue];
KeyValue = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -