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

📄 isd4003.c

📁 可录放语音芯片ISD4003的放音驱动程序
💻 C
字号:
#include<reg52.h>
//**********管脚定义********//
sbit CLK= P2^0;
sbit DIN= P2^1;
sbit LOAD= P2^7;
//**********命令声明********//
#define addr_powerup 0x20//
#define addr_SETPLAY 0xe0//
#define addr_PLAY    0xf0//
#define addr_STOP    0x10//
//***********函数声明********//
void isd4003_init();//init
void isd4003_send_data(unsigned char addr,da);//send data
void read_welcome();//welcome
void isd4003_play(void);
void ps7219_delay(void);//delay
void isd4003_delay(void);
void delay1s(void);
void delay10ms(void);
/******************************************
*PROJECT CODE:isd4003_init                *
*CREATE DATE:4/11/2006                    *
*CREAT BY: Zhao Zhengang                  * 
*FUNCTION: initial of the ps7219          *
*MODIFY DATE:                             *
*DOCUMENT:                                *
*OTHERS:                                  *
******************************************/
void isd4003_init()
{
 read_welcome();//welcome
 //isd4003_send_data(addr_STOP,0x00);//
}
/******************************************
*PROJECT CODE:isd4003_init                *
*CREATE DATE:4/11/2006                    *
*CREAT BY:Zhao Zhengang                   * 
*FUNCTION: initial of the ps7219          *
*MODIFY DATE:                             *
*DOCUMENT:                                *
*OTHERS:                                  *
******************************************/
void isd4003_play()
{isd4003_send_data(addr_PLAY,0x00);
}
/******************************************
*PROJECT CODE:isd4003_send_data           *
*CREATE DATE:4/11/2006                    *
*CREAT BY: Zhao Zhengang                  * 
*FUNCTION: send 1 word to 7219            *
*MODIFY DATE:                             *
*DOCUMENT:                                *
*OTHERS:                                  *
******************************************/
void isd4003_send_data(unsigned char addr, da)
{ unsigned char i,byte_out;
  byte_out=addr;
  EA=0;
  LOAD=0;
  ps7219_delay();
  for(i=0;i<8;i++)
   {
    CLK=0;
    DIN=(bit)(byte_out&0x80);
    ps7219_delay();
    byte_out=byte_out<<1;
    CLK=1;  
    ps7219_delay();
   }
   byte_out=da;   
   for(i=0;i<8;i++)
    {
    CLK=0;
    DIN=(bit)(byte_out&0x80);
    ps7219_delay();
    byte_out=byte_out<<1;
    CLK=1;
    ps7219_delay();
    }
  LOAD=1;
  EA=1;
}
/******************************************
*PROJECT CODE:read_welcome                *
*CREATE DATE:4/11/2006                    *
*CREAT BY:Zhao Zhengang                   * 
*FUNCTION: send 1 word to 7219            *
*MODIFY DATE:                             *
*DOCUMENT:                                *
*OTHERS:                                  *
******************************************/
void read_welcome()
{isd4003_send_data(addr_powerup, 0x00);//start
 delay10ms();
 delay10ms();
 delay10ms();
 isd4003_send_data(addr_SETPLAY, 0x00);//find address
 isd4003_play();//play
}       
/******************************************
*PROJECT CODE:ps7219_delay                *
*CREATE DATE:4/11/2006                    *
*CREAT BY: Zhao Zhengang                  * 
*FUNCTION: delay of the 7219              *
*MODIFY DATE:                             *
*DOCUMENT:                                *
*OTHERS:                                  *
******************************************/
void ps7219_delay()
{unsigned char i;
 for(i=0;i<250;i++)
 {i++;} 
}
/******************************************
*PROJECT CODE:isd4003_delay                *
*CREATE DATE:4/11/2006                    *
*CREAT BY: Zhao Zhengang                  * 
*FUNCTION: delay of the 7219              *
*MODIFY DATE:                             *
*DOCUMENT:                                *
*OTHERS:                                  *
******************************************/
/*void isd4003_delay()
{       
unsigned char j,k;               
for(j=150;j>0;j--)        
for(k=200;k>0;k--);
}*/
void delay1s()
{       
unsigned char h,i,j,k;        
for(h=5;h>0;h--)        
for(i=4;i>0;i--)        
for(j=116;j>0;j--)        
for(k=214;k>0;k--);
}
void delay10ms(void)
{       
unsigned char i,j,k;        
for(i=5;i>0;i--)        
for(j=4;j>0;j--)        
for(k=248;k>0;k--);
}
main()
{
//isd4003_send_data(addr_STOP,0x00);
delay1s();
delay1s();
isd4003_init();
delay1s();
delay1s();
delay1s();
delay1s();
isd4003_send_data(addr_STOP,0x00);
//
//isd4003_init();
//delay1s();
//isd4003_init();
}

⌨️ 快捷键说明

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