1760语音芯片C语言源程序汇总.docx

上传人:b****1 文档编号:1677688 上传时间:2022-10-23 格式:DOCX 页数:17 大小:16.82KB
下载 相关 举报
1760语音芯片C语言源程序汇总.docx_第1页
第1页 / 共17页
1760语音芯片C语言源程序汇总.docx_第2页
第2页 / 共17页
1760语音芯片C语言源程序汇总.docx_第3页
第3页 / 共17页
1760语音芯片C语言源程序汇总.docx_第4页
第4页 / 共17页
1760语音芯片C语言源程序汇总.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

1760语音芯片C语言源程序汇总.docx

《1760语音芯片C语言源程序汇总.docx》由会员分享,可在线阅读,更多相关《1760语音芯片C语言源程序汇总.docx(17页珍藏版)》请在冰豆网上搜索。

1760语音芯片C语言源程序汇总.docx

1760语音芯片C语言源程序汇总

//#pragmasrc

#include"reg51.h"

#include"ISD1700.H"

#include"sound.h"

#defineucharunsignedchar

#defineuintunsignedint

sbitISD_MISO=P3^4;

sbitISD_MOSI=P3^5;

sbitISD_SCLK=P3^6;

sbitISD_SS=P3^7;

sbitISD_SS1=P3^3;

bitre_fig;

uchardataISD_COMM_RAM[7];

uchardataISD_COMM_RAM_C[7];

uchardata*isd_comm_ptr;

uchardata*back_data_ptr;

voidinit(void);

voiddelay(intx);

voidcomm_sate(void);

voidrest_isd_comm_ptr(void);

ucharT_R_comm_byte(ucharcomm_data);

voidisd1700_par2_comm(ucharcomm_par,uintdata_par);

voidisd1700_Npar_comm(ucharcomm_par,comm_byte_count);//noparametercomm

voidisd1700_7byte_comm(ucharcomm_par,uintstar_addr,uintend_addr);

voidspi_pu(void);

voidspi_stop(void);

voidspi_Rest(void);

voidspi_CLR_INT(void);

voidspi_RD_STAUS(void);

voidspi_RD_play_ptr(void);

voidspi_pd(void);

voidspi_RD_rec_ptr(void);

voidspi_devid(void);

voidspi_play(void);

voidspi_rec(void);

voidspi_erase(void);

voidspi_G_ERASE(void);

voidspi_rd_apc(void);

voidspi_wr_apc1(void);

voidspi_wr_apc2(void);

voidspi_wr_nvcfg(void);

voidspi_ld_nvcfg(void);

voidspi_fwd(void);

voidspi_chk_mem(void);

voidspi_CurrRowAddr(void);

voidseril_back_sate(ucharbyte_number);

voidspi_set_opt(ucharspi_set_comm);

//串口通信接口函数

voidcomm_sate(void)

{

ucharsate_temp;

uintapc_temp;

if(RI)//接收到命令

{sate_temp=SBUF;//下面根据不同的命令执行不同的函数

if(sate_temp==0x09)

{spi_devid();}

if(sate_temp==0x44)

{spi_rd_apc();}

if(sate_temp==0x40)

{spi_play();}

if(sate_temp==0x04)

{spi_CLR_INT();}

if(sate_temp==0x05)

{spi_RD_STAUS();}

if(sate_temp==0x43)

{spi_G_ERASE();}

if(sate_temp==0x01)

{spi_pu();}

if(sate_temp==0x02)

{spi_stop();}

if(sate_temp==0x03)

{spi_Rest();}

if(sate_temp==0x06)

{spi_RD_play_ptr();}

if(sate_temp==0x07)

{spi_pd();}

if(sate_temp==0x08)

{spi_RD_rec_ptr();}

if(sate_temp==0x41)

{spi_rec();}

if(sate_temp==0x42)

{spi_erase();}

if(sate_temp==0x45)

{spi_wr_apc1();}

if(sate_temp==0x65)

{spi_wr_apc2();}

if(sate_temp==0x46)

{spi_wr_nvcfg();}

if(sate_temp==0x47)

{spi_ld_nvcfg();}

if(sate_temp==0x48)

{spi_fwd();}

if(sate_temp==0x49)

{spi_chk_mem();}

if(sate_temp==0x60)

{spi_CurrRowAddr();}

if(sate_temp==0x80)

{

spi_set_opt(ISD1700_SET_PLAY|ISD_LED);

//spi_set_opt(ISD1700_SET_PLAY);

}

if(sate_temp==0x81)

{

spi_set_opt(ISD1700_SET_REC|ISD_LED);

//spi_set_opt(ISD1700_SET_REC);

ISD_COMM_RAM_C[0]=ISD1700_SET_REC;

seril_back_sate

(1);

}

if(sate_temp==0x82)

{

spi_set_opt(ISD1700_SET_ERASE|ISD_LED);

//spi_set_opt(ISD1700_SET_ERASE);

}

if(sate_temp==ISD1700_WR_APC2)

{

RI=0;

while(!

RI);

apc_temp=SBUF;

apc_temp=apc_temp<<8;

RI=0;

while(!

RI);

apc_temp|=SBUF;

RI=0;

ISD_SS1=0;

ISD_SS=0;

isd1700_par2_comm(ISD1700_WR_APC2,apc_temp);

ISD_SS1=1;

ISD_SS=1;

}

RI=0;

}

if(re_fig)

{

rest_isd_comm_ptr();

sate_temp=0;

do{

SBUF=*back_data_ptr++;

while(!

TI);

TI=0;

}while(++sate_temp<=2);

re_fig=0;

}

}

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

/*******以下为ISD各子功能函数,详细请查阅ISD语音芯片数据手册******/

//设置函数

voidspi_set_opt(ucharspi_set_comm)

{

uintstart_addr,end_addr;

RI=0;

while(!

RI);

start_addr=SBUF;

start_addr=start_addr<<8;

RI=0;

while(!

RI);

start_addr|=SBUF;

RI=0;

while(!

RI);

end_addr=SBUF;

end_addr=start_addr<<8;

RI=0;

while(!

RI);

end_addr|=SBUF;

RI=0;

ISD_SS1=0;

ISD_SS=0;

isd1700_7byte_comm(spi_set_comm,start_addr,end_addr);

ISD_SS1=1;

ISD_SS=1;

}

//器件上电

voidspi_pu(void)

{

ISD_SS1=0;

ISD_SS=0;

isd1700_Npar_comm(ISD1700_PU,2);

ISD_SS1=1;

ISD_SS=1;

}

//器件停止

voidspi_stop(void)

{

ISD_SS1=0;

ISD_SS=0;

isd1700_Npar_comm(ISD1700_STOP,2);

ISD_SS=1;

ISD_SS1=1;

ISD_COMM_RAM_C[0]=ISD1700_STOP;

seril_back_sate

(1);

}

//器件复位

voidspi_Rest(void)

{

ISD_SS=0;

ISD_SS1=0;

isd1700_Npar_comm(ISD1700_REST,2);

ISD_SS=1;

ISD_SS1=1;

}

//清楚EOM标志

voidspi_CLR_INT(void)

{

ISD_SS=0;

ISD_SS1=0;

isd1700_Npar_comm(ISD1700_CLR_INT,2);

ISD_SS=1;

ISD_SS1=1;

}

//器件状态

voidspi_RD_STAUS(void)

{uchari;

ISD_SS=0;

ISD_SS1=0;

isd1700_Npar_comm(ISD1700_RD_STAUS,3);

ISD_SS=1;

ISD_SS1=1;

i=ISD_COMM_RAM_C[1];

//j=ISD_COMM_RAM_C[2];

ISD_COMM_RAM_C[1]=ISD_COMM_RAM_C[0];

ISD_COMM_RAM_C[0]=i;

seril_back_sate(3);

}

//当前地址

voidspi_CurrRowAddr(void)

{uchari;

ISD_SS=0;

ISD_SS1=0;

isd1700_Npar_comm(ISD1700_RD_STAUS,3);

ISD_SS=1;

ISD_SS1=1;

i=ISD_COMM_RAM_C[1];

ISD_COMM_RAM_C[1]=ISD_COMM_RAM_C[0]>>5|ISD_COMM_RAM_C[1]<<3;

ISD_COMM_RAM_C[0]=i>>5;

seril_back_sate(3);

}

//读播放地址

voidspi_RD_play_ptr(voi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1