基于AT89S52的ISD4004语音芯片使用.doc_第1页
基于AT89S52的ISD4004语音芯片使用.doc_第2页
基于AT89S52的ISD4004语音芯片使用.doc_第3页
基于AT89S52的ISD4004语音芯片使用.doc_第4页
基于AT89S52的ISD4004语音芯片使用.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于AT89S52的ISD4004语音芯片使用/以下程序可对ISD4004语音芯片进行录音也可放音/使用89S52单片机,12M晶振#include#includesbit ss=P00;sbit mosi=P01;sbit sclk=P02;sbit int0=P03;sbit rac=P04;sbit key_stop=P37;/停止键sbit key_rec=P35;/录音键sbit key_play=P36;/放音键uint rec_hang;/录音所用去的行数void display()/显示函数 显示录音所用去的行数uchar i;uchar shu=0,0,0,0;shu0=rec_hang/1000+0;shu1=rec_hang%1000/100+0;shu2=rec_hang%100/10+0;shu3=rec_hang%10+0;write_com(0x80);/if(moden=1)write_date(1);for(i=0;i4;i+)write_date(shui);void send_8(uchar date)/仿SPI通信uchar i;/ss=1;如果不屏蔽掉该语句和下面的/ss=1;,且不另外在各子函数和/指令后面加ss=1;,则4004不能从指定地址进行录放操作,而从其他某个地址/进行操作,且按下停止键后,再按下放音键,4004会继续播放之前的音乐/而不会从指定的地址进行放音ss=0;/下降沿开始传输数据sclk=0;for(i=0;i=1;sclk=0;/ss=1;void stop()send_8(0x30);/停止信号的控制码ss=1;void power_up()send_8(0x20);/上电信号的控制码ss=1;void setrec(uchar ad_high,uchar ad_low)/从指定地址开始录音 控制信号函数send_8(ad_low);/发送低8位地址码send_8(ad_high);/发送高8位地址码send_8(0xa0);/发送8位控制码ss=1;void setplay(uchar ad_high,uchar ad_low)/从指定地址开始放音 控制信号函数send_8(ad_low);/发送低8位地址码send_8(ad_high);/发送高8位地址码send_8(0xe0);/发送8位控制码ss=1;void record(uchar ad_high,uchar ad_low)/从某个地址录音power_up();/上电delay(27);power_up();delay(27);delay(27);setrec(ad_high,ad_low);/录音地址send_8(0xb0);/从当前地址开始录音ss=1;void play(uchar ad_high,uchar ad_low)/从某个地址放音power_up();/上电delay(27);setplay(ad_high,ad_low);/放音地址send_8(0xf0);/从当前地址开始放音ss=1;void main()init0();while(1)if(key_rec=0)/按下录音键,开始录音while(key_rec=0);record(0x00,0x00);while(1)if(rac)delay(200);rec_hang+;/计算录音所用去的行数if(key_stop=0)/如果按下停止键,则停止录音,并显示录音所用去的行数while(key_stop=0);stop();display();break;if(key_play=0)/按下放音键,开始放音while(key_play=0);play(0x00,0x00);while(int0);display();/这两条语句仅用来检测ISD4004放完一段音乐后int0脚产生下降沿,这两条语句可不用if(key_stop=0)/按下停止键,停止录音或者放音while(key_stop=0);stop();/1602液晶显示头文件#define uchar unsigned char#define uint unsigned intsbit lcdrs=P33;sbit lcden=P32;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com)lcdrs=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)lcdrs=1;P2=date;delay(5);lcden=1;delay(5);lcden=0;void init0()lcden=0;write_com(0x38);/设置1602显示模式为5*7点阵write_com(0x

温馨提示

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

评论

0/150

提交评论