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

📄 isd1720.lst

📁 ISD1700语音芯片的源程序代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  ISD1720                                                              03/10/2009 17:12:58 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN ISD1720.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE ISD1720.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  0090                 1     SS EQU P1.0 ;片选 
  0091                 2     SCLK EQU P1.1 ;ISD1730时钟 
  0092                 3     MOSI EQU P1.2 ;数据输入 
  0093                 4     MISO EQU P1.3 ;数据输出 
  0097                 5     LED EQU P1.7 ;指示灯 
  0096                 6     AN EQU P1.6 ;执行 
  0095                 7     STOP EQU P1.5 ;复位 
  0094                 8     PR EQU P1.4 ;PR=1录音 PR=0放音 
  00A7                 9     MORA EQU P2.7
                      10     ;***************************************************
                      11     ;20H-25H 为SPI命令字的1-6位存储单元 
                      12     ;***************************************************
0000                  13     ORG 0000H ;
0000 0102             14     AJMP MAIN ;
0002 758170           15     MAIN: MOV SP,#70H ;
0005 7590FF           16     MOV P1,#0FFH ;
0008 75A0FF           17     MOV P2,#0FFH ;
000B 75B0FF           18     MOV P3,#0FFH ;
000E 7580FF           19     MOV P0,#0FFH ;
0011 C2AF             20     CLR EA ;
0013 31E1             21     MAII: ACALL REST
0015 3191             22     ACALL DSTOP ;ISD掉电 
0017 D297             23     SETB LED ;关指示灯 
0019 753AC8           24     MAS0: MOV 3AH,#200
001C 309568           25     JNB STOP,REC6 ;
001F 2096F7           26     MAS1: JB AN,MAS0 ;等按AN键 
0022 D53AFA           27     DJNZ 3AH,MAS1 ;
0025 3145             28     PU: ACALL UP ;ISD上电 
0027 20A708           29     JB MORA,MICREC ;如果mic录音,apc=0440h。如果anain,apc=0480h 
002A 752108           30     MOV 21H,#08H
002D 752204           31     MOV 22H,#04H
0030 0138             32     AJMP GOON
0032 752140           33     MICREC:MOV 21H,#40H
0035 752204           34     MOV 22H,#04H
0038 31A2             35     GOON: ACALL WR_APC ;写apc
003A 311E             36     ACALL WAITRDY ;等待rdy=1
003C 3130             37     ACALL CLRINT ;清除中断 
003E 311E             38     ACALL WAITRDY ;等待rdy=1
0040 316F             39     ACALL CHK_MEM ;环状存储检查 
0042 209402           40     JB PR,REC ;PR=1 录音 
0045 01C0             41     AJMP PLAY ;PR=0 放音 
0047 75360A           42     REC: MOV 36H,#10
004A 5122             43     REC1: ACALL YS50 ;延时录音 
004C D536FB           44     DJNZ 36H,REC1
004F 752051           45     REC2: MOV 20H,#51H ;发送REC命令 
0052 752100           46     MOV 21H,#00H
0055 E520             47     MOV A,20H
0057 31F2             48     ACALL SPIO
0059 E521             49     MOV A,21H
005B 31F2             50     ACALL SPIO
005D D290             51     SETB SS ;关片选 
005F 11F4             52     ACALL CHECKRDY
0061 30E3E6           53     JNB ACC.3,REC1
0064 C297             54     CLR LED ;开 LED灯 
0066 7535C8           55     REC3: MOV 35H,#200
0069 3124             56     REC4: ACALL CHECKFULL
006B 3096F8           57     JNB AN,REC3
006E D535F8           58     DJNZ 35H,REC4
A51 MACRO ASSEMBLER  ISD1720                                                              03/10/2009 17:12:58 PAGE     2

0071 D297             59     SETB LED
0073 3130             60     ACALL CLRINT
0075 315A             61     ACALL STOPP
0077 30950D           62     REC5: JNB STOP,REC6
007A 2096FA           63     JB AN,REC5
007D 315A             64     ACALL STOPP
007F 3130             65     ACALL CLRINT
0081 311E             66     ACALL WAITRDY
0083 316F             67     ACALL CHK_MEM
0085 0147             68     AJMP REC
0087 7960             69     REC6: MOV R1,#60H
0089                  70     TOERASE:
0089 209512           71     JB STOP,TOPD
008C 5122             72     ACALL YS50
008E D9F9             73     DJNZ R1,TOERASE
0090 31CC             74     ACALL G_ERASE
0092 7903             75     MOV R1,#03H
0094                  76     LEDWAIT:
0094 C297             77     CLR LED
0096 5108             78     ACALL LEDELAY
0098 D297             79     SETB LED
009A 5108             80     ACALL LEDELAY
009C D9F6             81     DJNZ R1,LEDWAIT
009E 315A             82     TOPD: ACALL STOPP
00A0 3130             83     ACALL CLRINT
00A2 0113             84     AJMP MAII
00A4 D297             85     REC7: SETB LED
00A6 75360A           86     MOV 36H,#10
00A9 5122             87     REC8: ACALL YS50
00AB 2096D9           88     JB AN,REC6
00AE D536F8           89     DJNZ 36H,REC8
00B1 C297             90     CLR LED
00B3 75360A           91     MOV 36H,#10
00B6 5122             92     REC9: ACALL YS50
00B8 2096CC           93     JB AN,REC6
00BB D536F8           94     DJNZ 36H,REC9
00BE 01A4             95     AJMP REC7
00C0 3096FD           96     PLAY: JNB AN,PLAY
00C3                  97     REPLAY: ;放音play,也可以用set_play放音 
00C3 752040           98     MOV 20H,#40H
00C6 752100           99     MOV 21H,#00H
00C9 E520            100     MOV A,20H
00CB 31F2            101     ACALL SPIO
00CD E521            102     MOV A,21H
00CF 31F2            103     ACALL SPIO
00D1 D290            104     SETB SS
00D3 3112            105     ACALL CHECKSR
00D5 20E0EB          106     JB ACC.0,REPLAY
00D8 C297            107     CLR LED
00DA 3095AA          108     PLAY1: JNB STOP,REC6
00DD 11F4            109     ACALL CHECKRDY
00DF 30E0F8          110     JNB ACC.0,PLAY1
00E2 D297            111     SETB LED
00E4 315A            112     ACALL STOPP
00E6 30959E          113     PLAY2: JNB STOP,REC6
00E9 2096FA          114     JB AN,PLAY2
00EC 3180            115     ACALL FWD
00EE 11F4            116     ACALL CHECKRDY
00F0 316F            117     ACALL CHK_MEM
00F2 01C0            118     AJMP PLAY
                     119     ;扫描ISD1700状态寄存器SR1
00F4                 120     CHECKRDY:
00F4 752005          121     MOV 20H,#05H
00F7 752100          122     MOV 21H,#00H
00FA 752200          123     MOV 22H,#00H
00FD                 124     CHECKRDY1:
A51 MACRO ASSEMBLER  ISD1720                                                              03/10/2009 17:12:58 PAGE     3

00FD 31B4            125     ACALL RDSTATUS
00FF E520            126     MOV A,20H
0101 31F2            127     ACALL SPIO
0103 F526            128     MOV 26H,a
0105 E521            129     MOV A,21H
0107 31F2            130     ACALL SPIO
0109 F527            131     MOV 27H,A
010B E522            132     MOV A,22H
010D 31F2            133     ACALL SPIO
010F F528            134     MOV 28h,A
0111 22              135     RET
                     136     ;扫描ISD1700状态寄存器SR0
0112                 137     CHECKSR:
0112 752005          138     MOV 20H,#05H
0115 31B4            139     acall rdstatus
0117 E520            140     MOV A,20H
0119 31F2            141     ACALL SPIO
011B F526            142     MOV 26H,a
011D 22              143     RET
                     144     ;等待ISD1700状态寄存器SR1.0位(RDY) 置1
011E                 145     WAITRDY:
011E 11F4            146     ACALL CHECKRDY
0120 30E0FB          147     JNB ACC.0,WAITRDY
0123 22              148     RET
                     149     ;检测ISD1700状态寄存器SR0.1位(FULL),是否为1
0124                 150     CHECKFULL:
0124 31B4            151     ACALL RDSTATUS
0126 E520            152     MOV A,20H
0128 31F2            153     ACALL SPIO
012A 30E102          154     JNB ACC.1,CHECKFULL2
012D 11A4            155     Acall REC7
012F                 156     CHECKFULL2:
012F 22              157     RET
                     158     ;清楚中断标志INT指令<< CLR_INT >>
0130                 159     CLRINT:
0130 752004          160     MOV 20H,#04H
0133 752100          161     MOV 21H,#00H
0136 E520            162     MOV A,20H
0138 31F2            163     ACALL SPIO
013A E521            164     MOV A,21H
013C 31F2            165     ACALL SPIO
013E D290            166     SETB SS
0140 5122            167     ACALL YS50 ;50mS延时 
0142 5122            168     ACALL YS50 ;50mS延时 
0144 22              169     RET ;
                     170     ;ISD1700上电 << POWERUP >>
0145 752001          171     UP: MOV 20H,#01H
0148 752100          172     MOV 21H,#00H
014B E520            173     MOV A,20H
014D 31F2            174     ACALL SPIO
014F E521            175     MOV A,21H
0151 31F2            176     ACALL SPIO
0153 D290            177     SETB SS
0155 5122            178     ACALL YS50 ;50mS延时 
0157 5122            179     ACALL YS50 ;50mS延时 
0159 22              180     RET
                     181     ;停止当前操作<< STOP >>
015A 752002          182     STOPP: MOV 20H,#02H
015D 752100          183     MOV 21H,#00H
0160 E520            184     MOV A,20H
0162 31F2            185     ACALL SPIO
0164 E521            186     MOV A,21H
0166 31F2            187     ACALL SPIO
0168 D290            188     SETB SS
016A 5122            189     ACALL YS50 ;50mS延时 
016C 5122            190     ACALL YS50 ;50mS延时 

⌨️ 快捷键说明

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