原创 关于 ISD4002 语音录放的原程序

2007-6-15 13:12 3677 2 3 分类: MCU/ 嵌入式
     关于 ISD4002 语音录放的原程序

关于 ISD4002 语音录放的原程序,前段时间搞了好久,结果是自己搞的太乱了,现在这个程序是调试好的,现在已经在做了,不过是51的,大家改下就可以用在 PIC 上了,因为我没有檫写芯片,市场也没找到,就买了个 89C2051试 了.

;4002-120 录音程序  (不分段一次性录完直到 OVF标志----指示ISD的录、放操作已到达存储器的未尾。结束)
;   this is a basic recore and play programe if you want add other control plaease do it yourself.   by LINPO Andy  Tks   !
SS       EQU P1.0
SCLK     EQU P1.1
MOSI     EQU P1.2
LED      EQU P1.7
AN       EQU P1.6
STOP     EQU P1.5
PR       EQU P1.4
ADDRESSL EQU 30H
CANDAH   EQU 31H
RECORC   EQU 32H
SIG      EQU 33H
PANDAH   EQU 34H
PLAYC    EQU 35H

ORG     0000H
AJMP    START
ORG     0030H
START:  MOV  P1,#0FFH
        MOV  P3,#0FFH
MAIN:   SETB  LED
KEY:   JB    AN,KEY
        LCALL DELAY_20ms
        JB    AN,KEY
        JNB   PR,PLAY
        AJMP  RECORD
;/////////////////////////////    RECORDING   ///////////////
RECORD: ACALL POWERUP
        ACALL DELAY_30ms
        ACALL POWERUP
        ACALL DELAY_30ms
        ACALL DELAY_30ms
        CLR   SS
        MOV   ADDRESSL,#50H
        MOV   CANDAH,#0A0H
        MOV   A,ADDRESSL
        ACALL SEND
        MOV   A,CANDAH
        ACALL SEND
        SETB  SS
        CLR   SS
        MOV   RECORC,#0B0H
        MOV   A,RECORC
        ACALL SEND
        CLR   LED
        SETB  SS
  
KEY1:   JNB   P3.2,STOPRE
        JB    AN,KEY1
        LCALL DELAY_20ms
        JB    AN,KEY1
STOPRE: SETB  LED
        CLR   SS
        MOV   A,#10H
        ACALL SEND
        SETB  SS
        AJMP  MAIN
;//////////////////////////////////////     PLAY AUDIO  ////////////////////////////
PLAY:   ACALL POWERUP
        ACALL DELAY_30ms
        CLR   SS
        MOV   ADDRESSL,#70H
        MOV   PANDAH,#0E0H
        MOV   A,ADDRESSL
        ACALL SEND
        MOV   A,PANDAH
        ACALL SEND
        SETB  SS
        CLR   SS
        MOV   PLAYC,#0F0H
        MOV   A,PLAYC
        ACALL SEND
        SETB  SS
        CLR   LED

KEY2:   JNB P3.2,STOPRE
        JB    STOP,KEY2
        ACALL DELAY_20ms
        JB    STOP,KEY2
        AJMP  STOPRE

POWERUP: MOV  A,#20H
         CLR  SS
         ACALL SEND
         SETB  SS
         RET
;///////////////////////      TRANSLATION  DATA  /////////////////////////
SEND:    CLR   SCLK
         CLR   MOSI
         MOV   R1,#08H
OUT:    CLR   SCLK                   ;时钟下降
         RRC   A
         MOV   MOSI,C                ;输出1位
         NOP
         NOP
         NOP
         SETB   SCLK
         NOP
         NOP
         NOP
         DJNZ   R1,OUT
         RET

DELAY_30ms:
        MOV R1,#40H
DL:    MOV R2,#0FFH
        DJNZ R2,$
        DJNZ R1,DL
        RET
DELAY_20MS:
        MOV R1,#30H
DL1:   MOV R2,#0FFH
        DJNZ R2,$
        DJNZ R1,DL1
        RET
         END
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户164603 2009-11-18 19:12

朋友,能不能给我一份?

用户697545 2006-11-1 17:35

写得很好,受益匪浅!~~

相关推荐阅读
用户930569 2011-08-21 06:35
转载: STM8的C语言编程(6)--8位定时器应用之二
今天进行的实验依然是用定时器4,只不过改成了用中断方式来实现,由定时器4的中断服务程序来驱动LED的闪烁。.0pt;background:white;word-break:break-all">...
用户930569 2007-06-20 11:20
简易红外无线耳机
                  简易红外无线耳机   夜间收看电视节目或播放碟片时,为避免干扰他人休息通常改用耳机听音,此时若用导线将耳机连接至电视机,不但不雅观,而且影响人的活动。若采用本文介绍...
用户930569 2007-06-15 13:14
51单片机与pt2258的5。1音响遥控解码程序
这个程序是51单片机与pt2258的5。1音响遥控解码程序COUNTER EQU 35H;显示计数REMVOL  EQU  36H;音量连续控制DISPBUFF1 EQU 37H;DISPBUFF2 ...
我要评论
1
2
关闭 站长推荐上一条 /4 下一条