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

📄 main.c

📁 isd4004 语音芯片的操作 基于c8051f005单片机
💻 C
字号:
#include "include.h"

unsigned char code dizhibiao[]=
{
0x00,0x00,0x00,0x4b,0x00,0x96,0x00,0xe1,0x01,0x2c,0x01,0x77,0x01,0xc2,0x02,0x0d,
0x02,0x58,0x02,0xa3,0x02,0xee,0x03,0x39,0x03,0x84,0x03,0xcf,0x04,0x1a,0x04,0x65,
0x04,0xb0,0x04,0xfb,0x05,0x46,0x05,0x91,0x05,0xdc,0x06,0x27,0x06,0x72,0x06,0xbd,
0x07,0x08,0x07,0x53,0x07,0x9e,0x07,0xe9,0x08,0x34,0x08,0x7f,0x08,0xca,0x09,0x15};
/*
void delay(unsigned int time)
{
    while(time!=0)
    time--;
}
*/




//***************************
//串行发送子程序 8BIT
void send(unsigned char isdx)
{ unsigned char isxcounter;
  SS=0;
  SCLK=0;
  for(isxcounter=0;isxcounter<8;isxcounter++)
  {if((isdx&0x01)==1)
   MOSI=1;
   else
   MOSI=0;
   isdx=isdx>>1;
   SCLK=1;
   delay(24);
   SCLK=0;
   delay(24);
  }
}
//****************************
//发送STOP指令,延时50MS
void isdstop(void)
{
  delay(120);
  send(0x30);
  SS=1;
  delay_ms(600);
}
//****************************
//发送上电指令,延时50MS
void isdpwrup(void)
{
  delay(120);
  SS=0;
  send(0x20);
  SS=1;
  delay_ms(600);  
}
//****************************
//发送掉电指令,延时50MS
void isdpwrdown(void)
{
  delay(120);
  send(0x10);
  SS=1;
  delay_ms(600);  
}
//****************************
//发送paly指令
void isdplay(void)
{
  LED=0;
  send(0xf0);
  SS=1;  
}
//****************************
//发送rec指令
void isdrec(void)
{
  LED=0;
  send(0xb0);
  SS=1;  
}
//****************************
//发送setplay指令
void setplay(unsigned char adl,unsigned char adh)
{
 delay_ms(24);
 send(adl);
 delay(24);
 send(adh);
 delay(24);
 send(0xe0);
 SS=1;
}
//****************************
//发送setrec指令
void setrec(unsigned char adl,unsigned char adh)
{
 delay_ms(12);
 _nop_();
 send(adl);
 _nop_();
 delay(24);
 _nop_();
 send(adh);
 _nop_();
 delay(24);
 send(0xa0);
 SS=1;
}
//****************************


//定义端口
//sbit CCE =P1^7; 
//sbit CDATA =P1^6;
//sbit CCLK =P1^5;
//*******************
//定义要接收数据数组***********
unsigned int duanhaozub[32]={0x1a,0x19,0x19,0x12,0x01,0x02,0x0b,0x00,0x00,0x0c,0x0e,0x05,0x0d,0x10,0x11,0x01,0x08,0x09,0x0b,0x06,0x07,0x0c,0x02,0x00,0x00,0x08,0x14,0x09,0x15,0x0a,0x07,0x16};
unsigned int duanhaozu[32]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};

unsigned int bb;


//*****************************

//*****************************
/*unsigned char congrec()
{ 
  unsigned char varible9;
  int i;
  for(i=0;i<8;i++)
  {
   while(CCLK==0)
    {;}
   if(CDATA==1)
    {varible9=varible9|0x01;}
   varible9=varible9<<1;
   while(CCLK==1)
    {;}
  }
  return varible9;
}
//************************************
void congshouzu(void)
{
  int j;
  for(j=0;j<15;j++)
   {
    duanhaozu[j]=congrec();
   }
}
//************************************
*/

 int a,b,c,i;
//PALY 全部的函数
void paly()
{
  for(i=0;i<32;i++)
   {  
	a=duanhaozu[i]*2;//调用数组duanhaozu
//   a=duanhaozub[i]*2;//或者数组duanhaozub
	 _nop_;
     b=dizhibiao[a];
	 _nop_;
	 a=a+1;
     c=dizhibiao[a];
	 _nop_;
     setplay(b,c);
     delay(20);
	 while(ISDINT==1)//EOM未中断
     {;}//若''中断‘’,向下执行
     LED=1;
     isdstop();
    }  
}


//************************************
main()
{
	sys_init();
  while(1)
  {
  // while(CCE==1)
//    {;}
  // congshouzu();//数组收完 准备放音   
//**********************************
//查段号,进行放音
   //if(START==0)
   //{ 
   paly();
   //}
  }
 
}

⌨️ 快捷键说明

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