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

📄 pro1.a51

📁 单片机SPI总线扩展模块ISD4002录放音程序
💻 A51
字号:
COML     EQU    20H     ;16位命令的低字节存储单元
COMH     EQU    21H     ;16位命令的高字节存储单元
MISO     EQU    P1.0    ;主机输入,从设备输出信号
SS       EQU    P1.1    ;从设备片选信号
MOSI     EQU    P3.0    ;主机输出,从设备输入信号
SCLK     EQU    P3.1    ;从设备的时钟脉冲
ADDR     EQU    8600H   ;单片机读录放按钮状态度地址
         ORG    0000H 
         LJMP   MAIN
 

         ORG    0400H
MAIN:    MOV    SP,#60H
         ;接下来是从指定的2个地址开始录2段语音,第一段录音不能超过30秒
         MOV    DPTR,#ADDR
RECP:    MOVX   A,@DPTR
         JB ACC.1,RECP
         CALL   POWERUP
         CALL   POWERUP
         CALL   DEL25ms
         CALL   SETREC1
         CALL   REC
RECP2:   MOVX   A,@DPTR
         JNB ACC.1,RECP2
         CALL   STOP
RECP3:   MOVX A,@DPTR
	 JB ACC.1,RECP3
	 CALL POWERUP
	 CALL POWERUP
	 CALL DEL25ms
	 CALL SETREC2
	 CALL REC
RECP4:   MOVX   A,@DPTR
         JNB ACC.1,RECP4
         CALL   STOP


PLYP1:   MOV   DPTR,#ADDR
PLYP11:  MOVX   A,@DPTR
         JB ACC.0,PLYP11
         CALL   POWERUP
         CALL   SETPLY1
         CALL   PLAY
         CALL   DELAY
PLYP2:   MOVX   A,@DPTR
         JB     ACC.0,PLYP2
         CALL   POWERUP
         CALL   SETPLY2
         CALL   PLAY
         CALL   DELAY
         SJMP   PLYP1




SETREC1: MOV    COMH,#0A4H
         SJMP   SETPLYA
SETREC2: MOV    COMH,#0A5H
         SJMP   SETPLYA
SETPLY1: MOV    COMH,#0E4H
         SJMP   SETPLYA
SETPLY2: MOV    COMH,#0E5H
         SJMP   SETPLYA
SETPLYA: MOV    COML,#00H
         CALL   COMM
         RET



COMM:    CLR SS
         MOV    A,COML
         ACALL  TRANSFE
         MOV    A,COMH
         CALL   TRANSFE
         SETB   SS
         RET




PLAY:    MOV    A,#0F0H
         CLR    SS
         CALL   TRANSFE
         SETB   SS
         RET


 STOP:   MOV    A,#30H
         CLR    SS
         CALL   TRANSFE
         SETB   SS
         RET
   

STOPPWD: MOV    A,#10H
         CLR    SS
         CALL   TRANSFE
         SETB   SS
         RET


REC:     MOV    A,#0B0H
         CLR    SS
         CALL   TRANSFE
         SETB   SS
         RET



POWERUP: MOV    A,#20H
         CLR    SS
         CALL   TRANSFE
         SETB   SS
         CALL   DEL25ms
         RET



TRANSFE:  MOV    R7,#8
BITOUT:   CLR SCLK
          RRC     A
          MOV    MOSI,C
          SETB   SCLK
          DJNZ   R7,BITOUT
          RET


DELAY:     MOV    R0,#20
DELY0:     MOV    R7,#100
DELY1:     MOV    R6,#250
           DJNZ   R6,$
           DJNZ   R7,DELY1
           DJNZ   R0,DELY0
	   RET




DEL25ms:  MOV     R7,#25
DEL25:    MOV     R6,#250
          DJNZ    R6,$
          DJNZ    R7,DEL25
          RET
  


     END


















         

⌨️ 快捷键说明

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