您当前的位置:五五电子网电子知识电子知识资料计算机应用用ISD4004设计的一个语音录放系统 正文
用ISD4004设计的一个语音录放系统

用ISD4004设计的一个语音录放系统

点击数:7870 次   录入时间:03-04 11:52:16   整理:http://www.55dianzi.com   计算机应用

  程序设计中使用了很多延时程序,以下为不同长度的延时子函数,便于在程序中调用。
  
  具体代码如下:

  程序设计的关键是对ISD4004的操作。ISD4004有许多操作命令,这些命令通过SPI接口传给ISD4004。MCS-51单片机没有SPI接口,因此需要程序模拟SPI接口。子函数ISD_WriteSpi的功能是程序模拟SPI接口向ISD4004发送一字节数据。具体代码如下:

  子函数ISD_OneCode的功能是向ISD4004发送单字节指令。代码如下:

  子函数ISD_MultiCode的功能是向ISD4004发送多字节指令。代码如下:

  子函数Ini_ISD的功能是初始化ISD4004芯片。具体代码如下:

  子函数Play_Voice的功能是ISD4004的放音控制,播放Addrp指定地址的语音。函数调用ISD_MultiCode向ISD4004发送设置播放地址命令,再发送播放命令。在mplayvoice()函数中,通过判断ISD4004的状态决定是否发送停止播放命令。具体代码如下:

  子函数Record_Voice的功能是ISD4004的录音控制,向指定地址存储语音,函数实现同Play_Voice。具体代码如下:

  该模块根据上位机发送的命令,执行录音和放音操作。上位机发送的指令代码代表了不同的录音放音操作。本地单片机接收指令后,首先进行指令译码,明确要执行的操作,而后执行响应的操作。
  
  串口数据接收过程中,引入了一种简单的数据校验机制,保证通信的正确性。校验方法为:假设本轮串口接收Ⅳ字节数据,则将前Ⅳ-1个字节的数据相加,将得到的累加值除以256,和最后一个自己的数据相比较,如果相同,则数据传输正确,不同,则传输错误,抛弃本轮传输数据不做处理。这是本地机和上位机之间自行约定的一种数据传输校验机制。
  
  串口接收数据的第二字节即Rec_Ser[l]为指令字节,指出了本次命令要求录音还是放音,及其时间长短。本系统使用ISD4004芯片时,划分了三秒区,五秒区串口接收数据的第四字节即Rec_Ser[3]。ISD4004与单片机间通信依照SPI总线协议,按照指令表中的指令格式,编写了单字节指令和多字节指令的发送函数。主程序根据串口接收到的指令进行录/放音操作。
  
  该模块是作为智能家庭安防系统中的一个组件使用的,因此控制命令从串口接收获得。
  
  读者可以扩展键盘,改为键盘发送命令,设计一个语音录放模块。



上一页  [1] [2] 


本文关键字:语音  计算机应用电子知识资料 - 计算机应用