C51语音单片机通用开发板电路图和相关程序

上传人:豆浆 文档编号:109798250 上传时间:2022-06-17 格式:DOC 页数:23 大小:87.50KB
收藏 版权申诉 举报 下载
C51语音单片机通用开发板电路图和相关程序_第1页
第1页 / 共23页
C51语音单片机通用开发板电路图和相关程序_第2页
第2页 / 共23页
C51语音单片机通用开发板电路图和相关程序_第3页
第3页 / 共23页
资源描述:

《C51语音单片机通用开发板电路图和相关程序》由会员分享,可在线阅读,更多相关《C51语音单片机通用开发板电路图和相关程序(23页珍藏版)》请在装配图网上搜索。

1、.89C51-ISD4000语音单片机通用开发板本板采用国内最常用的MCS-51语言单片机89C51,与最新的ISD4000系列语音芯片结合,可供用户开发各种最新的智能型数码语音产品。一、结构板上已装配好:89C51-单片机,8031内核,4K可反复擦写的程序存储器,32条I/O口,5V工作ISD4003-08-语音芯片,音质优异的模拟存储技术,可反复录放,8分钟,可分1200段,SPI接口方式,3V供电LM386-功率放大器,0.5W驱动24C01(选配件)-I2C总线串行存储器。还有驻极体话筒(MIC)、话筒放大器、音量电位器、发光管等部件。二、性能参数外接电源电压:5V(稳压)外接喇叭:

2、4-16欧姆,0.5W工作电流:2530mA(录音),5080mA(放音)静态电流:13mA随板提供的演示程序功能:1、录音跳线插在REC一侧是录音状态,按住AN键不放,指示灯亮即可对着板上话筒讲话录音,松键时录音停止并形成一段。再按则录下一段。按STOP键为复位,再录音时又从第一段开始。2、放音跳线插在PLAY一侧是放音状态,按一下AN键即播放一段,一段结束后自动停止放音,再按AN则播放下一段按STOP键为复位,再放音时又从第一段开始。89C51-ISD4000语音电路程序AT89C51单片机89C51单片机12MHz注:本程序为ISD4002、4003的控制程序,ISD4004的程序须加些

3、改动,请注意程序后边的注释。SSEQUP1.0;片选SCLKEQUP1.1;ISD4003时钟MOSIEQUP1.2;数据输入MISOEQUP1.3;数据输出LEDEQUP1.7;指示灯INTEQUINT0;中断ANEQUP1.6;执行STOPEQUP1.5;复位PREQUP1.4;PR=1录音PR=0放音;初始化ORG0000H;AJMPMAIN;MAIN:MOVSP,#10H;MOVP1,#0FFH;MOVP2,#0FFH;MOVP3,#0FFH;MOVP0,#0FFH;CLREA;MAII:SETBLED;关指示灯ACALLDSTOP;ISD掉电MAS0:MOV3AH,#200;MAS1

4、:JBAN,MAS0;等按AN键DJNZ3AH,MAS1;ACALLUP;ISD上电MOV20H,#00H;ISD低位地址MOV21H,#00H;ISD高位地址JBPR,REC;PR=1录音AJMPPLAY;PR=0放音;SETREC16位;从指定地址录音10100REC:MOVA,20H;发地址A7-A0ACALLISDX;MOVA,21H;发地址A9-A8SETBACC.7;CLRACC.6;SETBACC.5;CLRACC.4;CLRACC.3;ACALLISDX;SETBSS;关片选;REC8位;从当前地址录音10110REC1:MOV36H,#10;REC2:ACALLYS50;延时

5、录音DJNZ36H,REC2;CLRLED;开指示灯MOVA,#0B0H;发10110XXXACALLISDX;SETBSS;关片选REC3:MOV35H,#200;REC4:JNBINT,REC7;OVF=0芯片溢出JNBAN,REC3;DJNZ35H,REC4;SETBLED;关指示灯ACALLSTOPP;停止当前操作REC5:JNBSTOP,REC6;中断RESETJBAN,REC5;等待AN=0ACALLSTOPP;停止当前操作AJMPREC1;REC6:CLRSCLK;时钟SCLK=0SETBSS;关片选ACALLSTOPP;停止当前操作AJMPMAII;REC7:SETBLED;关

6、指示灯MOV36H,#15;REC8:ACALLYS50;延时录音JBAN,REC6;等待AN=1DJNZ36H,REC8;CLRLED;MOV36H,#15;REC9:ACALLYS50;延时录音JBAN,REC6;等待AN=1DJNZ36H,REC9;AJMPREC7;SETPLAY16位;从指定地址放音11100PLAY:JNBAN,PLAY;等待AN=1MOVA,20H;发地址A7-A0ACALLISDX;MOVA,21H;发地址A9-A8SETBACC.7;SETBACC.6;SETBACC.5;CLRACC.4;CLRACC.3;ACALLISDX;SETBSS;关片选;PLAY8

7、位;从当前地址放音11110PLAY1:CLRLED;LED开指示灯MOVA,#0F0H;发11110XXXXXXXXACALLISDX;发SETBSS;关片选PLAY2:JNBSTOP,REC6;STOP=0停止放音JBINT,PLAY2;无OVFEOM继续放音SETBLED;关指示灯ACALLSTOPP;停止当前操作;检测OVFCLRSS;开片选CLRSCLK;时钟SCLK=0SETBSCLK;时钟SCLK=1JBMISO,REC6;芯片到未CLRSCLK;时钟SCLK=0SETBSS;关片选ACALLSTOPP;停止当前操作PLAY3:JNBSTOP,REC6;中断放音JBAN,PLAY

8、3;等待AN=0AJMPPLAY1;顺序放音;ISD上电UP:MOVA,#20H;发00100XXXXXXXXXXXACALLISDX;SETBSS;关片选ACALLYS50;50mS延时ACALLYS50;50mS延时RET;停止当前操作8位STOPP:MOVA,#30H;发0X110XXXACALLISDX;SETBSS;关片选ACALLYS50;50mS延时ACALLYS50;50mS延时RET;停止当前操作掉电8位DSTOP:MOVA,#10H;发0X010XXXXXXXXXXACALLISDX;SETBSS;关片选ACALLYS50;50mS延时ACALLYS50;50mS延时RET

9、;ISD3300,4003SPI写入程序8位数据在AISDX:CLRSS;开片选MOVR6,#8;CLRSCLK;时钟SCLK=0ISD1:MOVC,ACC.0;MOVMOSI,C;数据写MOSISETBSCLK;时钟SCLK=1RRA;CLRSCLK;时钟SCLK=0DJNZR6,ISD1;RET;*10mS延时*YS1:MOVTMOD,#01H;MOVTH0,#0D8H;10mS延时初值置入MOVTL0,#0F0H;(65536-X)*1=10MSSETBTR0;65536-(10000/1)=D8F0HJNBTF0,$;CLRTF0;CLRTR0;RET;*50mS延时*YS50:MOV

10、TMOD,#01H;MOVTH0,#3CH;50mS延时初值置入MOVTL0,#0B0H;(65536-X)*1=50MSSETBTR0;65536-(50000/1)JNBTF0,$;CLRTF0;CLRTR0;RET;END;附:ISD4004的程序改动注明:SETREC:;指定地址录音MOV20H,#00H;低八为地址MOV21H,#00H;高八位地址MOV22H,#0a0H;操作码MOVA,20HACALLISDXMOVA,21HACALLISDXMOVA,22HACALLISDXSETBSS指定地址录音(SETPLAY)和指定地址快进(SETMC)的改动与上述相同ISD4000-89

11、c51开发板C程序示例/*/ISD4002-89c51开发板演示例程C51版本*/作者:中青世纪Lell*/2008.2.27*/*/更多ISD4000使用心得请登陆中青世纪论坛*/*/*#includesbitSS=P10;/片选sbitSCLK=P11;/ISD4003时钟sbitMOSI=P12;/数据输入sbitMISO=P13;/数据输出sbitLED=P17;/指示灯sbitISD_INT=P32;/中断sbitAN=P16;/执行sbitSTOP=P15;/复位sbitPR=P14;/PR=1录音?PR=0放音voiddelay(unsignedinttime)/延迟n微秒whi

12、le(time!=0)time-;voiddelayms(unsignedinttime)/延迟n毫秒TMOD=0x01;for(time;time0;time-)TH0=0xfc;TL0=0x18;TR0=1;while(TF0!=1);TF0=0;TR0=0;/*/ISD4002spi串行发送子程序,8位数据/*voidspi_send(unsignedcharisdx)unsignedcharisx_counter;SS=0;/ss=0,打开spi通信端SCLK=0;for(isx_counter=0;isx_counter1;SCLK=1;delay(2);SCLK=0;delay(2

13、);/*/发送stop指令/*voidisd_stop(void)delay(10);spi_send(0x30);SS=1;delayms(50);/*/发送上电指令,并延迟50ms/*voidisd_pu(void)delay(10);SS=0;spi_send(0x20);SS=1;delayms(50);/*/发送掉电指令,并延迟50ms/*voidisd_pd(void)delay(10);spi_send(0x10);SS=1;delayms(50);/*/发送play指令/*voidisd_play(void)LED=0;spi_send(0xf0);SS=1;/*/发送rec指

14、令/*voidisd_rec(void)LED=0;spi_send(0xb0);SS=1;/*/发送setplay指令/*voidisd_setplay(unsignedcharadl,unsignedcharadh)spi_send(adl);/发送放音起始地址低位adh=adh|0xe0;spi_send(adh);/发送放音起始地址高位SS=1;/*/发送setrec指令/*voidisd_setrec(unsignedcharadl,unsignedcharadh)spi_send(adl);/发送放音起始地址低位adh=adh|0xa0;spi_send(adh);/发送放音起始地

15、址高位SS=1;/*/芯片溢出,LED闪烁提醒停止录音/*voidisd_overflow(void)while(AN=0)LED=1;delayms(300);LED=0;delayms(300);/*/检查芯片是否溢出(读OVF,并返回OVF值)/*unsignedcharchk_isdovf(void)SS=0;delay(2);SCLK=0;delay(2);SCLK=1;SCLK=0;delay(2);if(MISO=1)SCLK=0;SS=1;/关闭spi通信端isd_stop();/发送stop指令return1;/OVF为1,返回1elseSCLK=0;SS=1;/关闭spi通

16、信端isd_stop();/发送stop指令return0;/OVF为0,返回0/*/主程序/功能:1.录音时,按住AN键,LED点亮开始录音,松开AN即可停止录音/再次按下AN键,LED点亮开始录第二段音,依次类推,直到芯片溢出。/按stop键芯片复位/2.放音时,按一下AN键,即播放一段语音。按stop键芯片复位。/*voidmain(void)unsignedcharovflog;while(1)P0=P1=P2=P3=0xff;/初始化while(AN=1)/等待AN键按下if(AN=0)/按键防抖动delayms(20);isd_pu();/AN键按下,ISD上电并延迟50msisd

17、_pd();isd_pu();if(PR=1)/如果PR=1则转入录音部分delayms(500);/延迟录音isd_setrec(0x00,0x00);/发送0x0000h地址的setplay指令doisd_rec();/发送rec指令while(AN=0)/等待录音完毕if(ISD_INT=0)/如果芯片溢出,进行LED闪烁提示,isd_overflow();/如果取消录音(松开AN键)则停止录音,芯片复位if(ISD_INT=0)break;LED=1;/录音完毕,LED熄灭isd_stop();/发送停止命令while(AN=1)/如果AN再次按下,开始录制下一段语音if(STOP=0

18、)/如果按下STOP按键,则芯片复位break;if(AN=0)delayms(500);while(AN=0);else/如果PR=0则转入放音部分while(AN=0);isd_setplay(0x00,0x00);/发送setplay指令,从0x0000地址开始放音doisd_play();/发送放音指令delay(20);while(ISD_INT=1)/等待放音完毕的EOM中断信号;LED=1;isd_stop();/放音完毕,发送stop指令if(ovflog=chk_isdovf()/检查芯片是否溢出,如溢出则停止放音,芯片复位break;while(AN=1)/等待AN键再次按

19、下if(STOP=0)break;if(AN=0)delayms(20);while(AN=0);/AN键再次按下,播放下一段语音isd_stop();isd_pd();注意:与ISD4002/03不同的是,由于ISD4004芯片的语音地址是16位,在发送带地址指令(如setplay,setrec,setmc)时,需要先发送两个字节的地址信息,再发送一个字节的命令字,ISD4004的程序编写与ISD4002/03的区别,仅此而已。例如,ISD4004的setplay指令程序应为:voidisd_setplay(unsignedcharadl,unsignedcharadh)delayms(1);spi_send(adl);/发送放音起始地址低位delay(2);spi_send(adh);/发送放音起始地址高位delay(2);spi_send(0xe0);/发送setplay指令字节SS=1;.23

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!