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

📄 isd1420.c

📁 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 + -