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

📄 1420.asm

📁 51控制zy1420语音芯片录音
💻 ASM
字号:
;zy1420语音芯片控制

 
     
      REC      BIT   P0.0
      PLE      BIT   P0.1
      PLL      BIT   P0.2
      RECLED   BIT   P0.3

      ORG   0000H
      LJMP     START
START:

      MOV   R7,#0070H
      MOV   R6,#HIGH(1500)   ;1S
      MOV   R5,#LOW(1500)
      CALL  PLAYL
      MOV   R7,#50         ;控制延时50ms
WAIT1:
      LCALL DELAY1MS
      DJNZ  R7,WAIT1
      ;SJMP  $
      
      MOV   R7,#10H
      MOV   R6,#HIGH(1500)
      MOV   R5,#LOW(1500)
      CALL  PLAYL

      MOV   R7,#50         ;控制延时50ms
WAIT2:
      LCALL DELAY1MS
      DJNZ  R7,WAIT2
      ;SJMP  $
      
      MOV   R7,#20H
      MOV   R6,#HIGH(1500)
      MOV   R5,#LOW(1500)
      CALL  PLAYL
      
        MOV   R7,#50         ;控制延时50ms
WAIT3:
      LCALL DELAY1MS
      DJNZ  R7,WAIT3
      ;SJMP  $
      
      MOV   R7,#00H
      MOV   R6,#HIGH(1500)
      MOV   R5,#LOW(1500)
      CALL  PLAYE

      SJMP  $


;**************************************
; 名称:RECORD
; 功能:录音
; 入口:R7(开始地址),R6(H),R5(L)(录音时间,单位:ms)
; 如果R6,R5>剩余录音时间,则录完为止
;**************************************
RECORD:
  MOV   A,R7
  LCALL ADDR_OUT       ;设定开始录音地址
  CLR   REC            ;控制开始录音
  
  MOV   R7,#50         ;控制延时50ms
RECORD1:
  LCALL DELAY1MS
  DJNZ  R7,RECORD1
RECORD2:
  LCALL DELAY1MS       ;延时1ms
  JB    RECLED,RECORD3 ;录音模块录满结束判断
  DJNZ  R5,RECORD2     ;录音时间控制
  DJNZ  R6,RECORD2
RECORD3:
  SETB  REC            ;释放录音按键
  RET


;**************************************
;名称:PLAYL
;功能:电平控制放音
;入口:R7(开始地址),R6(H),R5(L)(放音时间,单位:ms)
; 如果R6,R5>剩余放音时间,则放完为止
;**************************************
PLAYL:
  MOV   A,R7
  LCALL ADDR_OUT       ;设定开始播放地址
  CLR   PLL            ;控制播放
PLAYL1:
  LCALL DELAY1MS       ;延时1ms
  JNB   RECLED,PLAYL2  ;检测语音模块是否播放完毕
  DJNZ  R5,PLAYL1      ;播放时间控制
  DJNZ  R6,PLAYL1
PLAYL2:
  SETB  PLL            ;释放播放按键
  RET


;**************************************
;名称:PLAYE
;功能:脉冲触发放音
;入口:R7(开始地址)
;**************************************
PLAYE:
  MOV   A,R7
  LCALL ADDR_OUT       ;设定开始播放地址
  CLR   PLE            ;控制脉冲触发播放
  MOV   R7,#50         ;延时50ms
PLAYE1:
  LCALL DELAY1MS
  DJNZ  R7,PLAYE1
  SETB  PLE            ;结束控制信号
  RET

;**************************************
;名称:ADDR_OUT
;功能:发送地址
;入口:A(地址)
;**************************************
ADDR_OUT:
 RLC 	A
 MOV 	P1.7,C
 RLC 	A
 MOV 	P1.6,C
 RLC	 A
 MOV 	P1.5,C
 RLC 	A
 MOV 	P1.4,C
 RLC 	A
 MOV 	P1.3,C
 RLC 	A
 MOV 	P1.2,C
 RLC 	A
 MOV 	P1.1,C
 RLC 	A
 MOV 	P1.0,C
RET

;**************************************
; 名称:DELAY1MS
; 功能:延时1MS
; 入口:R6,R5
;**************************************
DELAY1MS:
  MOV 	R4, #249    ;12M晶振:1000=2+2+(1+1+2)*249
DELAY1MS1:
  NOP
  NOP
  DJNZ 	R4,DELAY1MS1
  RET


  END

⌨️ 快捷键说明

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