ORG 0000H
MAIN:
ACALL POWERUP ;上电子程序
ACALL DELAY25 ;延迟子程序,至少延迟25ms
CLR P1.1 ;选中ISD4004
MOV A, #00001000B ;送放音地址低8位
ACALL SEND ;调用送地址子程序
MOV A, #00000000B ;送放音地址高8位
ACALL SEND
MOV A, #11100000B ;送SETPLAY命令
ACALL SEND
SETB P1.1
NOP
CLR P1.1
MOV A, #11110000B ;送入放音指令
ACALL SEND
SETB P1.1
RET
POWERUP: ;送上电指令子程序
MOV A, #00100000B ;送入语音芯片上电信号
CLR P1.1
ACALL SEND
SETB P1.1
RET
SEND: ;向ISD4004送指令,地址等的子程序
CLR P1.2 ;时钟下降
MOV R1, #8
OUTBIT1:
CLR P1.2 ;时钟下降
RRC A
MOV P1.3, C ;输出1位
NOP
NOP
NOP
SETB P1.2 ;时钟上升沿到
NOP
NOP
NOP
DJNZ R1, OUTBIT1
RET
DELAY25:
MOV R4,#1
DELAY1:
MOV R3,#1
DELAY2:
DJNZ R3,DELAY2
DJNZ R4,DELAY1
RET