注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! 打开购物车 查看留言付款方式联系我们
初中电子 单片机教材一 单片机教材二
搜索上次看见的商品或文章:
商品名、介绍 文章名、内容
首页 电子入门 学单片机 免费资源 下载中心 商品列表 象棋在线 在线绘图 加盟五一 加入收藏 设为首页
本站推荐:
[语音IC]ISD1420使用的单片机控制
文章长度[] 加入时间[2008/3/9] 更新时间[2024/3/30 19:40:01] 级别[0] [评论] [收藏]

  ISD1420使用的单片机控制

                           *********编写人: 杜洋 *********

ISD1400系列芯片是较为常用了语音录放集成电路,一般多用于语音电话、留言机等设备。更可于单片机实现接口,进行语音分段录放音的功能,可用于自动报时器,汽车自动报站器等设备,如果采用具有语音处理的16位或32位处理器实现同样的功能将会增大开发的周期和成本,会使本来简单的系统更加的复杂。
开发简单的语音录放系统时,ISD的芯片(或者台湾巨华APR系列芯片)将成为开发工程师的必然选择。
下面让我们来了解一下ISD系列芯片吧!
ISD1420为美国ISD公司出品的优质单片语音录放集成电路,由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利——直接模拟存储技术(DAST TM)实现的。利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器。直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现。不仅语音质量优胜,而且断电语音保护。
目前,ISD1420录放时间为20秒,(APR9301录放时间为20秒-30秒,RPR9600录放时间为50秒-60秒) 
。。。。

我了解的ISD芯片是PDIP(双列直插)封装形式,其分为软封装和硬封装两种。软封装的芯片是在一个电路板上嵌入芯片内核,它是比较便宜的,而且还可以剪裁的更小嵌入到电路里。(合能单片机软封装的单价为12元,硬封装为17元)
下面我将以ISD1420为例,说说我对ISD芯片的理解和使用,希望可以给大家一个参考。
一、ISD最小化系统的录放音:
ISD1400芯片可以和少量的外围元件构成一个最小化的录放音电路。下面是经典的最小化录放音电路图:
。。。。。

这个最小化系统有一个LED指示灯、三个微动开关,可以对芯片的录音、播放、停止进行控制。S3(RECORD)为录音键,按住它时LED灯点亮,此时为录音状态,当录放达到最大时间值或中途放开S3录音按键即停止录音。S2(PLAYL)为放音键,按一下它就可以播放录音,当放音达到录音的尾声时或中途按下了S1停止键则停止放音。S1为停止键,当放音过程中按下S1停止键停止放音。如果有待机时按住S1则开始放音,放音直到录音的尾声或中途放开S1键。
当芯片处于录音状态时LED点亮,当芯片放音结束时LED会闪亮一下。
只要按电路图接好电路,一般不用调试就可以使用。

二、用微处理器对ISD芯片的分段录放音控制:
用微处理器对ISD芯片的分段录放音控制时,才算是发挥了芯片的优势。ISD芯片通过8位并行地址线实现分段录放音,地址线的功能如下表:
。。。。。                        

ISD1420地址输入端具有双重功能,根据地址中的A6、A7的电平状态决定A0~A7的功能。如果A6、A7有一个低电平,A0~A7输入全解释为地址位,作为起始地址用,此时地址线仅作为输入端,在操作过程中不能输出内部地址信息。根据PLAYE、PLAYL或REC的下降沿信号,地址输入被锁定。如果A6、7同为高电平时,它们即为模式位。
在这里我们只用到地址功能来分段控制,所以我们需要保证A6、A7不可同时为1,这里我们可以用软件进行保护。
地址输入端A0~A7有效值范围为00000000~10011111,这表明最多可被划分为160个存贮单元,可录放多达160段语音信息。由A0~A7决定每段语音的起始地址,而起始地址又直接反映了录放的起始时间。其关系见公式:
  TQ=0.125s×(128A7+64A6+32A5+16A4+8A3+4A2+2A1+0)
例如:
第一段语音从0秒开始,地址设置为00000000;
  第二段语音从2秒开始,地址设置为00010000;
  第三段语音从5秒开始,地址设置为00100000;
  第四段语音从12秒开始,地址设置为01010000;

。。。。。
ISD芯片与微处理器(单片机)的硬件接口电路:A0~A7接单片机的一组I/O口上,再用3个I/O口分别作录音使能(接REC[27脚])、放音使能(接PLAYL[23脚])和停止反馈(接RECLED[25脚])。此时就可以用单片机对ISD分段录放音了。
为了方便录音工作,我设计了一个录音专用电路板。CPU采用89S51,由两位静态数码管显示十六进制数据,还据有选择录音起始位,清除上一次录音等功能。非常适用于分段放音电路的前期录音与调试。下面就是录音板的电路图及源程序(汇编),供大家参考:
。。。。。
以下是程序(汇编):

/*-------------------------------------------
项目号:   212-0001
项目名:   家电中央控制系统工程   
程序名:   ISD1402语音芯片分段录放音调试   
编写人:    杜洋 
初写时间:  2005年9月4日
程序功能:    实现对ISD1420语音芯片的分段录放音
实现方法:  用定时器产生最小125MS的录音长度值
CPU说明:   89S52 24-PC  12MHZ晶振
接口说明:  (详见初定义)
信息说明:  
修改日志:  
  NO.1-2005.9.19 增加了地址极限保护功能,防止录音出错。
 
-------------------------------------------*/

;------------------------------------------初定义

ISDDAT       EQU   P1                                     ;语音地址线

KEYRED       EQU   P3.3                                 ;录音按键

ISDRED       EQU   P3.0                                 ;录音使能(低有效)

KEYPLAYL     EQU   P3.4                                 ;长放音键

ISDPLAYL     EQU   P3.2                                 ;长放音使能

KEYPLAYS     EQU   P3.5                                 ;短放音按键

ISDPLAYS     EQU   P3.1                                 ;短放音使能

KEYSET       EQU   P3.6                                 ;

XX         EQU   P1.7                                 ;调试用灯

STOPIN       EQU   P3.7                                 ;放音停止脉冲输入

LED1         EQU   P0      ;静态数码管第一位                               ;数码管显示第一位(十位)

LED2         EQU   P2      ;静态数码管第二位                               ;数码管显示第二位(个位)

WRAM         EQU   20H      ;录音地址寄存器                               ;数码管显示值寄存器

WBIT1       EQU   21H      ;放弃此次录音寄存器                               ;

WW         EQU   22H   ;

WBIT3       EQU   23H   ;


;-------------------------------------------------------------------程序入口
ORG   0000H

JMP   ISD_START

ORG   000BH

JMP   TT0

ORG   0030H

;----------------------------------------------程序开始
ISD_START:
      MOV   R1,#8
      MOV   R0,#WRAM
RAM1:
      MOV   @R0,#0
      INC   R0
      DJNZ   R1,RAM1

      SETB   ISDPLAYL
      SETB   ISDRED
      SETB   ISDPLAYS
      SETB   KEYSET
      MOV   R2,#3
      MOV   TMOD,#01H       ;定时计数器工作方式
      MOV   TH0,#9EH       ;初值(9E58H--25MS)
      MOV   TL0,#58H       ;
      SETB   ET0               ;开T0允许      
      SETB   EA               ;开总中断

  MOV   ISDDAT,#0FFH
      MOV   WRAM,#00H
  CALL   DISPLAY
      MOV   WBIT1,#0                                                      
LOOP:                                             ;录音部分
      JB   KEYRED,N1
      CALL   DL20MS
      JB   KEYRED,N1
      MOV   ISDDAT,WRAM
      MOV   WBIT1,WRAM
      MOV   WBIT3,WRAM
      CLR   ISDRED
      SETB   TR0               ;启动定时器
M0:      
      JNB   P1.6,M1                  ;地址极限值保护
      JNB   P1.7,M1
      JMP   M2
M1:
      JNB   KEYRED,M0      
M2:
      SETB   ISDRED
      CLR   TR0
N1:                                                ;回放刚才录音
      JB   KEYPLAYL,N2
      CALL   DL20MS
      JB   KEYPLAYL,N2
      MOV   ISDDAT,WBIT1
      CLR   ISDPLAYS
      CALL   DL60MS
      SETB   ISDPLAYS
N2:                                                ;加地址功能,设定放音地址
      JB   KEYPLAYS,N3
      CALL   DL20MS
      JB   KEYPLAYS,N3
      INC   WBIT1
      MOV   ISDDAT,WBIT1
      CALL   DISPLAY2
      CALL   DL60MS
N3:                                                ;清除刚才录音
      JB   KEYSET,N4
      CALL   DL20MS
      JB   KEYSET,N4
      MOV   ISDDAT,WBIT3
      MOV   WRAM,WBIT3
      MOV   WBIT1,WBIT3
      CALL   DISPLAY
N4:
      JMP   LOOP
;-------------------------------------------数码管显示程序
DISPLAY:
    MOV WW,WRAM
    JMP GO
DISPLAY2:
           MOV WW,WBIT1
GO:
           MOV A,WW                                           ;静态数码管显示
    MOV DPTR,#TAB1          
    ANL A,#0F0H    
    SWAP A
    MOVC A,@A+DPTR
    MOV LED1,A
    MOV A,WW
    ANL A,#0FH
    MOVC A,@A+DPTR
    MOV LED2,A
    RET
;----------------------------------LED数码管显示表(0-F) TAB1
TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
    DB 88H,83H,0A7H,0A1H,86H,8EH
;---------------------------------------------------------T0中断
TT0:
      MOV   TH0,#9EH       ;重装初值(25MS)
      MOV   TL0,#58H       ;                    
      DJNZ   R2,TT0EXIT     ;1位的录音时长(125MS)
      MOV   R2,#3         ;
      INC   WRAM
      CALL   DISPLAY
TT0EXIT:
      RETI               ;T0中断结束
;-----------------------------------延时子程序
DL20MS:                                             ;20毫秒延时,主要用于去抖动。(100,100)
  MOV   R6,#100
DL20MS_1:                                    
  MOV   R7,#100      
  DJNZ   R7,$
  DJNZ   R6,DL20MS_1
  RET                                                              
DL60MS:                                           ;60毫秒延时
  CALL   DL20MS  
      CALL   DL20MS  
      CALL   DL20MS  
      RET
DL05S:                                             ;1秒延时,用在了开始等待。(50)
  MOV   R5,#50
DL05S_1:      
      CALL   DL20MS
      DJNZ   R5,DL05S_1
      RET
;---------------------------------------结束
END

在录音板上按一下录音键,并录入第一个段音。完成后LED上显示了第二段的起始地址,按重放键放音,感觉满意后记下这个数据,开始下一段录音。如果感觉不满意则按清除键回到上次的地址位重新录音。录好后,在放音时只要给出放音的起始地址即可放音,当放音结束后RECLED将输出一个低电平脉冲。程序查寻此脉冲并停止放音或开始另一段放音。程序如下:
PLAY     EQU   P3.3                   ;语音播放__

STOPIN   EQU   P3.0                   ;语音停止信号输入__

MOV   SPDAT,#00H;放入放音地址
      CLR   PLAY ;开始放音
      JB   STOPIN,$;查寻停止反馈
      SETB   PLAY;有停止信号,停止放音
      CALL   DL20MS;延时等待芯片恢复
      MOV   SPDAT,#27H;放入第二段放音地址
  CLR   PLAY      
      JB   STOPIN,$
      SETB   PLAY
      CALL   DL20MS

这种方法非常的方便实用。

1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。
2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! 以上可能是本站收集或者转载的文章,本站可能没有文章中的元件或产品,如果您需要类似的商品请 点这里查看商品列表!
本站协议 | 版权信息 |  关于我们 |  本站地图 |  营业执照 |  发票说明 |  付款方式 |  联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102
E-mail:51dz$163.com($改为@);Tel:(0755)27947428
工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389