⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isd2560p录放程序.asm

📁 一个可分页存储语音的高性能芯片
💻 ASM
字号:
;语音芯片ISD2560分段录放程序,按键按下下录一段音或者播入一段语音
key_next     bit    p1.1;操控键
key_mode     bit    p1.2;录放模式
play_rec     bit    p1.0;1\放、0\录
PD           BIT    P1.6;power down;1\off,0\on
EOM          BIT    P1.7
A8           BIT    P2.3
A9           BIT    P2.4
CE           BIT    P3.6;0时可进行录放操作
BYT_DLY      EQU    30H  ;延时单元
address      EQU    P0   ;单片机输出到模块地址口

;*******************************************************
              ORG 0000H
          LJMP    START
              ORG 0030H
START:    MOV    SP,#0A0H

;*************************
      MOV    A,#00H
      MOV    R0,#0FFH
CLR_RAM:
      MOV    @R0,A
      DJNZ   R0,CLR_RAM
      NOP
      NOP
      MOV     BYT_DLY,#100
      CALL    DELAY
;*************************
;录放音初始化预备
      MOV    address,#00H      ;段地址清0
      CLR    A8
      CLR    A9
      mov    R7,#00H           ;录音段计数单元
      MOV    R0,#00H           ;放音段计数简单元
      JB      key_mode,MODE_PLAY
;主程序
MODE_REC:
      CALL    KEY_REC        ;调录音子程序
      JNB    key_mode,MODE_REC
      MOV    address,#00H
      CLR    A8
      CLR    A9
      mov    R0,#00H

MODE_PLAY:
      CALL    KEY_PLAY       ;调放音子程序
      JB     key_mode,MODE_play
      MOV    address,#00H
      CLR    A8
      CLR    A9
      mov    R7,#00H
      jmp     MODE_rec
;***************************************************************************************
;***************************************************************************************
;录音源程序:
KEY_REC:
        CLR     play_rec      ;设为录音状态

        JB      key_next,REC_OVER ;录音键是否按下?
        MOV     BYT_DLY,#200
        CALL    DELAY
        JB      key_next,REC_OVER ;录音键是否按下?
        CALL    NEXT1
REC_OVER:
        RET
;*********************
NEXT1:  INC     R7
        CJNE    R7,#1,NEXT2
        MOV     address,#00H   ;送字段1起始地址
        CLR     A8
        CLR     A9
        LCALL   RECORD
        RET
NEXT2:  CJNE    R7,#2,NEXT3
        MOV     address,#20H   ;送字段2起始地址
        CLR     A8
        CLR     A9
        LCALL   RECORD
        RET
NEXT3:  CJNE    R7,#3,NEXT4
        MOV     address,#40H   ;送字段3起始地址
        CLR     A8
        CLR     A9
        LCALL   RECORD
        RET
NEXT4:  CJNE    R7,#4,NEXT5
        MOV     address,#60H   ;送字段4起始地址
        CLR     A8
        CLR     A9
        LCALL   RECORD
        RET
NEXT5:  CJNE    R7,#5,FBACK
        MOV     R7,#00H
        MOV     address,#80H   ;送字段5起始地址
        CLR     A8
        CLR     A9
        LCALL   RECORD
FBACK:
        RET

RECORD: CLR     CE      ;/CE端为0,开始录音
        JNB     key_next,$
        MOV     BYT_DLY,#200
        CALL    DELAY
        JNB     key_next,$
        SETB    CE
        RET
;***************************************************************************************
;***************************************************************************************
;放音源程序:
KEY_PLAY:
        SETB    play_rec     ;放音状态

        JB      key_next,PLAY_OVER ;放音键是否按下?
        MOV     BYT_DLY,#200
        CALL    DELAY
        JB      key_next,PLAY_OVER ;放音键是否按下

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -