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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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(稳压)

外接喇叭:4-16欧姆,0 .5W

工作电流:25~30mA ( 录音),50~80mA (放音)

静态电流:13mA

随板提供的演示程序功能:

1、录音

跳线插在"REC"一侧是录音状态,按住"AN"键不放,指示灯亮即可对着板上话筒讲话录音,

松键时录音停止并形成一段。再按则录下一段。按"STOP"键为复位,再录音时又从第一段开始。

2、放音

跳线插在"PLAY"一侧是放音状态,按一下"AN"键即播放一段,一段结束后自动停止放音,再按"AN"则播放下一段

按"STOP"键为复位,再放音时又从第一段开始。

89C51-ISD4000语音电路程序AT89C51单片机

89C51单片机12MHz

注:本程序为ISD4002、4003的控制程序,ISD4004的程序须加些改动,请注意程序后边的注释。

SS EQU P1.0 ;片选

SCLK EQU P1.1 ;ISD4003时钟

MOSI EQU P1.2 ;数据输入

MISO EQU P1.3 ;数据输出

LED EQU P1.7 ;指示灯

INT EQU INT0 ;中断

AN EQU P1.6 ;执行

STOP EQU P1.5 ;复位

PR EQU P1.4 ;PR=1录音 PR=0放音

;初始化

ORG 0000H ;

AJMP MAIN ;

MAIN: MOV SP,#10H ;

MOV P1,#0FFH ;

MOV P2,#0FFH ;

MOV P3,#0FFH ;

MOV P0,#0FFH ;

CLR EA ;

MAII: SETB LED ;关指示灯

ACALL DSTOP ;ISD掉电

MAS0: MOV 3AH,#200 ;

MAS1: JB AN,MAS0 ;等按AN键

DJNZ 3AH,MAS1 ;

ACALL UP ;ISD上电

MOV 20H,#00H ;ISD低位地址

MOV 21H,#00H ;ISD高位地址

JB PR,REC ;PR=1 录音

AJMP PLAY ;PR=0 放音

;SETREC 16位

;从指定地址录音 10100

REC: MOV A,20H ;发地址 A7-A0

ACALL ISDX ;

MOV A,21H ;发地址 A9-A8

SETB ACC.7 ;

CLR ACC.6 ;

SETB ACC.5 ;

CLR ACC.4 ;

CLR ACC.3 ;

ACALL ISDX ;

SETB SS ;关片选

;REC 8位

;从当前地址录音 10110 REC1: MOV 36H,#10 ;

REC2: ACALL YS50 ;延时录音

DJNZ 36H,REC2 ;

CLR LED ;开指示灯

MOV A,#0B0H ;发 1011 0XXX

ACALL ISDX ;

SETB SS ;关片选

REC3: MOV 35H,#200 ;

REC4: JNB INT,REC7 ;OVF=0芯片溢出

JNB AN,REC3 ;

DJNZ 35H,REC4 ;

SETB LED ;关指示灯

ACALL STOPP ;停止当前操作

REC5: JNB STOP,REC6 ;中断RESET

JB AN,REC5 ;等待AN=0

ACALL STOPP ;停止当前操作

AJMP REC1 ;

REC6: CLR SCLK ;时钟SCLK=0

SETB SS ;关片选

ACALL STOPP ;停止当前操作

AJMP MAII ;

REC7: SETB LED ;关指示灯

MOV 36H,#15 ;

REC8: ACALL YS50 ;延时录音

JB AN,REC6 ;等待AN=1

DJNZ 36H,REC8 ;

CLR LED ;

MOV 36H,#15 ;

REC9: ACALL YS50 ;延时录音

JB AN,REC6 ;等待AN=1

DJNZ 36H,REC9 ;

AJMP REC7 ;

;SETPLAY 16位

;从指定地址放音 11100 PLAY: JNB AN,PLAY ;等待AN=1

MOV A,20H ;发地址 A7-A0

ACALL ISDX ;

MOV A,21H ;发地址 A9-A8

SETB ACC.7 ;

SETB ACC.6 ;

SETB ACC.5 ;

CLR ACC.4 ;

CLR ACC.3 ;

ACALL ISDX ;

SETB SS ;关片选

;PLAY 8位

;从当前地址放音 11110 PLAY1: CLR LED ;LED开指示灯

MOV A,#0F0H ;发 11110 XXXXXXXX

ACALL ISDX ;发 << SETPLAY >>

SETB SS ;关片选

PLAY2: JNB STOP,REC6 ;STOP=0停止放音

JB INT,PLAY2 ;无OVF EOM继续放音

SETB LED ;关指示灯

ACALL STOPP ;停止当前操作

;检测OVF

CLR SS ;开片选

CLR SCLK ;时钟SCLK=0

SETB SCLK ;时钟SCLK=1

JB MISO,REC6 ;芯片到未

CLR SCLK ;时钟SCLK=0

SETB SS ;关片选

ACALL STOPP ;停止当前操作

PLAY3: JNB STOP,REC6 ;中断放音

JB AN,PLAY3 ;等待AN=0

AJMP PLAY1 ;顺序放音

;ISD上电 << POWERUP >>

UP: MOV A,#20H ;发00100 XXXXXXXXXXX

ACALL ISDX ;

SETB SS ;关片选

ACALL YS50 ;50mS延时

ACALL YS50 ;50mS延时

RET ;

;停止当前操作<< STOP >> 8位

STOPP: MOV A,#30H ;发 0X11 0XXX

ACALL ISDX ;

相关文档
最新文档