本板采用国内最常用的MCS-51语言单片机89C51,与最新的ISD5116系列语音芯片结合,可供用户开发各种最新的智能型数码语音产品。如图

一、 结构
板上已装配好:
89C51--单片机,8031内核,4K可反复擦写的程序存储器,32条I/O口,5V工作
ISD5116--语音芯片,音质优异的模拟存储技术,可反复录放,录放采样频率为8KHZ~~4KHZ可选择(相应时间长度为8~16分钟),录音从MIC/线路可选择,可分2048段,I2C接口方式,3V供电
还有驻极体话筒(MIC)、话筒放大器、4位拨码开关、发光管等部件。
二、 性能参数
外接电源电压:5V(稳压)
外接喇叭:4-16欧姆,0 .5W
工作电流:25~30mA ( 录音),50~80mA (放音)
静态电流:13mA
随板提供的演示程序功能:
1、 录/放音采样频率、MIC/线路输入选择、全/半音量选择
由4位拨码开关选择,对应表为: (ON 为0,OFF为1)
| |
采样频率 |
音量 |
输入 |
开关 |
1,2 |
3 |
4 |
状态 |
00 |
01 |
10 |
11 |
0 |
1 |
0 |
1 |
效果 |
8KHZ
8分钟 |
6K
10分钟 |
4K
17分钟 |
禁止态 |
全 |
半 |
MIC |
线路 |
2、录音
跳线插在"REC"一侧是录音状态,按住"AN"键不放,指示灯亮即可对着板上话筒讲话录音,松键时录音停止并形成一段。再按则录下一段。
按"STOP"键为复位,再录音时又从第一段开始。
3、放音
跳线插在"PLAY"一侧是放音状态,按一下"AN"键即播放一段,一段结束后自动停止放音,再按"AN"则播放下一段。
按"STOP"键为复位,再放音时又从第一段开始。
89C51-ISD5116通用开发板程序 AT89C51单片机12MHZ
SDA EQU P1.0 ;I2C数据
SCL EQU P1.1 ;I2C时钟
LED EQU P1.7 ;指示灯
INT EQU INT0 ;中断
START EQU P1.6 ;执行
STOP EQU P1.5 ;复位
PR EQU P1.4 ;PR=1录音,=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
MAS0: MOV 3AH,#200
MAS1: JB START,MAS0 ;等待按下START键
DJNZ 3AH,MAS1
ACALL UP
JNB PR,PLAY ;PR=0 放音
AJMP REC ;PR=1 录音
;-------------------------SETPLAY 16位
;-------------------------从指定地址放音
PLAY: JB P2.0,SELC_PSAM8A ;判断采样
JB P2.1,SELC_PSAM8A
JB P2.2,SELC_PSAM8A
JB P2.3,SELC_PSAM8A
LCALL PSAMP8H
AJMP PLAYP
SELC_PSAM8A: JB P2.0,SELC_PSAM8B
JB P2.1,SELC_PSAM8B
JB P2.2,SELC_PSAM8B
JNB P2.3,SELC_PSAM8B
LCALL PSAMP8H
JMP PLAYP
SELC_PSAM8B: JB P2.0,SELC_PSAM6A
JB P2.1,SELC_PSAM6A
JNB P2.2,SELC_PSAM6A
JB P2.3,SELC_PSAM6A
LCALL PSAMP8L
JMP PLAYP
SELC_PSAM6A: JB P2.0,SELC_PSAM6B
JNB P2.1,SELC_PSAM6B
JB P2.2,SELC_PSAM6B
JB P2.3,SELC_PSAM6B
LCALL PSAMP6H
JMP PLAYP
SELC_PSAM6B: JB P2.0,SELC_PSAM6C
JNB P2.1,SELC_PSAM6C
JB P2.2,SELC_PSAM6C
JNB P2.3,SELC_PSAM6C
LCALL PSAMP6H
JMP PLAYP
SELC_PSAM6C: JB P2.0,SELC_PSAM4A
JNB P2.1,SELC_PSAM4A
JNB P2.2,SELC_PSAM4A
JB P2.3,SELC_PSAM4A
LCALL PSAMP6L
JMP PLAYP
SELC_PSAM4A: JNB P2.0,SELC_PSAM4B
JB P2.1,SELC_PSAM4B
JB P2.2,SELC_PSAM4B
JB P2.3,SELC_PSAM4B
LCALL PSAMP4H
JMP PLAYP
SELC_PSAM4B: JNB P2.0,SELC_PSAM4C
JB P2.1,SELC_PSAM4C
JB P2.2,SELC_PSAM4C
JNB P2.3,SELC_PSAM4C
LCALL PSAMP4H
JMP PLAYP
SELC_PSAM4C: JNB P2.0,PCHA1
JB P2.1,PCHA1
JNB P2.2,PCHA1
JB P2.3,PCHA1
LCALL PSAMP4L
JMP PLAYP
;-------------------------------------
PCHA1: AJMP MAII
;---------------------------------从当前地址放音
PLAYP: JNB START,PLAYP
LCALL BEGN
MOV A,#080H ;从地址10000000(写)
LCALL TB
MOV A,#0A9H ;发送放音地址指令
LCALL TB
MOV A,#00H ;发送放音地址 高字节
LCALL TB
MOV A,#00H ;发送放音地址 低字节
LCALL TB
NOP
NOP
SETB P1.1
NOP
NOP
LCALL STOPII
;------------------------PLAY 8位
;------------------------
PLAY1: CLR LED
LCALL BEGN
MOV A,#080H ;从地址10000000(写)
LCALL TB
MOV A,#0A8H ;放音开始
LCALL TB
NOP
NOP
SETB P1.1
NOP
NOP
LCALL STOPII
PLAY2: JNB STOP,BK
JB INT,PLAY2
SETB LED
ACALL STOPP
;-----------------------检测OVF
LCALL BEGN
MOV A,#081H ;从地址10000001(读)
LCALL TB ;发送从地址
LCALL RB ;接收状态内容到A中
CLR P1.1
SETB P1.0 ;主设备不响应
NOP
NOP
SETB P1.1
NOP
NOP
LCALL STOPII
JB ACC.6,BK
ACALL STOPP
PLAY3: JNB STOP,BK
JB START,PLAY3 ;等待START=0(按下)
AJMP PLAY1 ;继续下一个
;-------------------------回到开始
BK: ACALL STOPP ;停止当前操作
AJMP MAII ;回到开始MAII
;-----------------------停止当前操作《STOP》 8位
STOPP: LCALL BEGN
MOV A,#080H ;从地址10000000(写)
LCALL TB
MOV A,#080H ;停止,但在通电状态
LCALL TB
NOP
NOP
SETB P1.1
NOP
NOP
LCALL STOPII
LCALL YS50
LCALL YS50
RET
; ================================SETREC 16位
;----------------------从指定地址录音
REC: JB P2.0,SELC_SAM8A ;判断采样
JB P2.1,SELC_SAM8A
JB P2.2,SELC_SAM8A
JB P2.3,SELC_SAM8A
LCALL SAMP8A
JMP RECR
SELC_SAM8A: JB P2.0,SELC_SAM8B
JB P2.1,SELC_SAM8B
JB P2.2,SELC_SAM8B
JNB P2.3,SELC_SAM8B
LCALL SAMP8B
JMP RECR
SELC_SAM8B: JB P2.0,SELC_SAM6A
JB P2.1,SELC_SAM6A
JNB P2.2,SELC_SAM6A
JB P2.3,SELC_SAM6A
LCALL SAMP8A
JMP RECR
SELC_SAM6A: JB P2.0,SELC_SAM6B
JNB P2.1,SELC_SAM6B
JB P2.2,SELC_SAM6B
JB P2.3,SELC_SAM6B
LCALL SAMP6A
JMP RECR
SELC_SAM6B: JB P2.0,SELC_SAM6C
JNB P2.1,SELC_SAM6C
JB P2.2,SELC_SAM6C
JNB P2.3,SELC_SAM6C
LCALL SAMP6B
JMP RECR
SELC_SAM6C: JB P2.0,SELC_SAM4A
JNB P2.1,SELC_SAM4A
JNB P2.2,SELC_SAM4A
JB P2.3,SELC_SAM4A
LCALL SAMP6A
JMP RECR
SELC_SAM4A: JNB P2.0,SELC_SAM4B
JB P2.1,SELC_SAM4B
JB P2.2,SELC_SAM4B
JB P2.3,SELC_SAM4B
LCALL SAMP4A
JMP RECR
SELC_SAM4B: JNB P2.0,SELC_SAM4C
JB P2.1,SELC_SAM4C
JB P2.2,SELC_SAM4C
JNB P2.3,SELC_SAM4C
LCALL SAMP4B
JMP RECR
SELC_SAM4C: JNB P2.0,CHA1
JB P2.1,CHA1
JNB P2.2,CHA1
JB P2.3,CHA1
LCALL SAMP4A
JMP RECR
;-------------------------------------------
CHA1: AJMP MAII
;------------------------------------
RECR: LCALL BEGN
MOV A,#080H ;从地址10000000(写)
LCALL TB
MOV A,#091H ;发送录音地址指令
LCALL TB
MOV A,#00H ;发送录音地址 高字节
LCALL TB
MOV A,#00H ;发送录音地址 低字节
LCALL TB
NOP
NOP
SETB P1.1
NOP
NOP
LCALL STOPII
|