点击下载:《ISD5116-89C51开发板源程序》 下面程序是部分的,请点击上面的查看全部 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 ;主设备不响应 |