基于AT89S52的ISD4004语音芯片使用

发布者:yunhao最新更新时间:2016-10-24 来源: eefocus关键字:AT89S52  ISD4004  语音芯片 手机看文章 扫描二维码
随时随地手机看文章
//以下程序可对ISD4004语音芯片进行录音也可放音

//使用89S52单片机,12M晶振        
#include
#include<1602.h>
sbit ss=P0^0;
sbit mosi=P0^1;                                                                                  
sbit sclk=P0^2;
sbit int0=P0^3;
sbit rac=P0^4;
sbit key_stop=P3^7;//停止键
sbit key_rec=P3^5;//录音键
sbit key_play=P3^6;//放音键
uint rec_hang;//录音所用去的行数
void display()//显示函数  显示录音所用去的行数
{
 uchar i;
 uchar shu[]={'0','0','0','0'};
 shu[0]=rec_hang/1000+'0';
 shu[1]=rec_hang%1000/100+'0';
 shu[2]=rec_hang%100/10+'0';
 shu[3]=rec_hang%10+'0';
 write_com(0x80);
 //if(moden>=1)write_date('1');
 for(i=0;i<4;i++)
 {
  write_date(shu[i]);
 }
}
void send_8(uchar date)//仿SPI通信
{
 uchar i;
 //ss=1;如果不屏蔽掉该语句和下面的///ss=1;,且不另外在各子函数和
  //指令后面加ss=1;,则4004不能从指定地址进行录放操作,而从其他某个地址
  //进行操作,且按下停止键后,再按下放音键,4004会继续播放之前的音乐
  //而不会从指定的地址进行放音
 ss=0;//下降沿开始传输数据
 sclk=0;
 for(i=0;i<8;i++)
 {
  mosi=date&0x01;
  sclk=1;
  date>>=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 int
sbit lcdrs=P3^3;
sbit lcden=P3^2;
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;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(0x01);//清屏
 write_com(0x0c);//开显示,不显示光标,光标不闪烁
 write_com(0x06);//设置当读或写一个字符后,地址指针加一,且光标加一
 //write_com(0x80);//设置写数据起始地址
}

关键字:AT89S52  ISD4004  语音芯片 引用地址:基于AT89S52的ISD4004语音芯片使用

上一篇:基于AT89S52的24C02使用
下一篇:基于51单片机的直流PTC热敏电阻恒温控制系统

推荐阅读最新更新时间:2024-03-16 15:17

语音芯片的常见控制方式 语音芯片的“等级”之分
对语音芯片的控制方式,常见的有: MP3控制模式、按键控制模式、3×8按键组合控制模式、并口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制。 ◆ MP3控制模式--音乐芯片播放/暂停、停止、上一曲、下一曲、音量+、音量-等功能 ◆ 按键控制模式--所定义的管脚可以直接触发芯片的一个功能。 ◆ 3×8按键组合控制模式--通过两两按键配合,实现任意9个模式周期显示。 ◆ 并口控制模式--传送信息的一种标准接口,可将8位数据位同时并行传送。 ◆ 一线串口控制模式--即脉冲数控制语音段播放模式 ◆ 二线串口控制模式以及三线串口控制--即SPI通讯控制语音IC播放语音片段的模式; 芯片(也可以称IC)作为电子科技最直观的体
[嵌入式]
<font color='red'>语音芯片</font>的常见控制方式 <font color='red'>语音芯片</font>的“等级”之分
基于AT89S52单片机的家电控制系统设计
摘要:介绍了利用AT89S52单片机开发多路家电实时控制系统的实现方案。给出了设计所用的辅助硬件设备和硬件电路,同时,从系统的功能入手,分析了软件模块的设计思路。对设计方法进行了详细阐释,并分析了该设计的一些不足之处和改进的主要方向。 家电控制的智能化已成为社会需求的新趋势。基于微机控制系统的智能化家电使我们的生活更加便利。而是否能够实现远程家电的开关控制。又是否能够随时查询电器的工作状况,或者能够事先对家电的定时开关做出控制。又成为越来越感兴趣的研究方向。家电产品现已进入成熟期和稳定期。市场规模稳步上涨,但竞争日愈剧烈,其核心部件。即控制器性能及质量对企业产品的影响很大。同时,经济快速发展,人们对于家庭生活的舒适程
[家用电子]
基于<font color='red'>AT89S52</font>单片机的家电控制系统设计
AT89S52抢答器程序
那是我自己写的简易抢答器,key1按下数码管显示1,同时发光二级管第1个闪动;key2按下数码管显示2,同时发光二级管第2个闪动; key3按下数码管显示3,同时发光二级管第3个闪动; key4 按下数码管显示4,同时发光二级管第4个闪动; #include reg51.h #define uchar unsigned char sbit wi=P2^7; sbit key4= P3^3; sbit key1= P3^0; sbit key2= P3^1; sbit key3= P3^2; uchar display_code ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
[单片机]
交换控制单片机电路设计方案解析
1、引言 小型会议系统或语音群聊系统是由多路音频电路组成的.为了使通话井然有序,需要通过音频交换电路来控制各路音频信号的输出。音频交换电路主要用于完成语音信号的切换。以实现同频终端的话音通信。经对可靠性、经济性、兼容性和供货情况进行多方面的综合考虑,该控制系统选用了AT89S52型单片机和交换控制矩阵器件MT8816AE。其中,AT89S52型单片机具有实用,价廉,功耗小,速度快,体积小,功能强等优点:MT8816AE是CMOS单片集成电路,具有功耗小,可靠性高等特点。 2、控制系统组成和电路设计 它由主控计算机、音频交换电路、终端设备等组成。其工作原理是:在主控计算机捕获终端的工作频率后。向交换控制单片机发出指令,交换矩阵
[单片机]
STC89C52和AT89S52用法上的注意总结
1)STC89C52RC单片机: 8K字节程序存储空间; 512字节数据存储空间; 内带2K字节EEPROM存储空间; 2)AT89S52单片机: 8K字节程序存储空间; 256字节数据存储空间; 没有内带EEPROM存储空间; 另外sTC系列的直接用串口下载就可以AT系列的要多装一个驱动 STC89C52和AT89S52用法上的注意总结 STC和AT的引脚完全兼容,硬件连接基本一样,但STC的是增强型,多了一些AT没有的功能,比如储存容量RAM大小,还有多了TImer3和P4口等,因此STC用AT的程序是没什么问题的,但是AT用STC的程序就有可能不正常,比如STC上我使用了TImer3或者P4口,而AT并没有这
[嵌入式]
一种基于AT89S52的汽车组合开关检测装置的设计
  汽车组合开关是汽车中常用的一种开关(外形见图1所示),有近光、远光、小灯、大灯、超车、雨刮高速、雨刮低速、雨刮间歇、洗涤、左转、右转等挡位。目前许多生产厂家在检测组合开关时仍采用传统的模拟测试方式。这种方式容易造成个别挡位漏检和错检,检测效率也低。为此笔者制作了一种基于AT89S52的汽车组合开关检测装置,该装置可以对组合开关的所有挡位进行精确检测,设置有声、光报警功能,有效防止了模拟测试中的错检和个别挡位漏检现象。在此仅对该装置的电路部分剖析如下。 图1 常用开关 一、总体方案设计   组合开关检测是生产中非常重要的一个环节,一般采用模拟检测方式,即将组合开关所有的外围电路安装至测试台上,用指示灯模拟各个挡位的工
[汽车电子]
一种基于<font color='red'>AT89S52</font>的汽车组合开关检测装置的设计
基于AT89S52某型直升机控制保护盒的数字化设计
直升机起飞后,由飞机发动机带动发电机发电为机载设提供一个稳定的115 V/400 Hz的交流电。所有用电的机载设备电源都是直接使用115 V/400 Hz或经变换后使用,因此,该电源的稳定性直接关系到机载设备的寿命及飞行安全。机载控制保护盒主要监测发电机电网的电压、频率等信号,当电网出现过压、欠压、过频、欠频、过过频、欠频和差动电流超标时,在安全时间内及时切断主电路和发电机激磁电路转为备用电源供电,从而有效保护机载设备和飞行安全。 某型直升机机载控制保护盒是上世纪80年代的产品,控制电路均由分立元件搭建的模拟电路实现,具有体积大、测量误差大等缺点。本文采用AT89S52单片机设计了一款数字化机载控制保护盒,该数字化机载控制保
[单片机]
基于<font color='red'>AT89S52</font>某型直升机控制保护盒的数字化设计
语音芯片开发:语音采集的原理分析
在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中高频率fmax的2倍时,即:fs.max =2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号高频率的5~10倍,采样定理又称奈奎斯特定理。 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。 通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。 采样频
[嵌入式]
<font color='red'>语音芯片</font>开发:语音采集的原理分析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved