|
本板采用國(guó)內(nèi)最常用的MCS-51語(yǔ)言單片機(jī)89C51,與最新的ISD4000系列語(yǔ)音芯片結(jié)合,可供用戶(hù)開(kāi)發(fā)各種最新的智能型數(shù)碼語(yǔ)音產(chǎn)品。 一、 結(jié)構(gòu) 板上已裝配好:89C51——單片機(jī),8031內(nèi)核,4K可反復(fù)擦寫(xiě)的程序存儲(chǔ)器,32條I/O口,5V工作ISD4003-08——語(yǔ)音芯片,音質(zhì)優(yōu)異的模擬存儲(chǔ)技術(shù),可反復(fù)錄放,8分鐘,可分1200段,SPI接口方式,3V供電LM386——功率放大器,0.5W驅(qū)動(dòng)24C01(選配件)——I2C總線(xiàn)串行存儲(chǔ)器。還有駐極體話(huà)筒(MIC)、話(huà)筒放大器、音量電位器、發(fā)光管等部件。 二、 性能參數(shù)外接電源電壓:5V(穩(wěn)壓)外接喇叭:4—16歐姆,0 .5W工作電流:25~30mA ( 錄音),50~80mA (放音)靜態(tài)電流:13mA 隨板提供的演示程序功能: 1、錄音跳線(xiàn)插在“REC”一側(cè)是錄音狀態(tài),按住“AN”鍵不放,指示燈亮即可對(duì)著板上話(huà)筒講話(huà)錄音,松鍵時(shí)錄音停止并形成一段。再按則錄下一段。按“STOP”鍵為復(fù)位,再錄音時(shí)又從第一段開(kāi)始。 2、放音跳線(xiàn)插在“PLAY”一側(cè)是放音狀態(tài),按一下“AN”鍵即播放一段,一段結(jié)束后自動(dòng)停止放音,再按“AN”則播放下一段。按“STOP”鍵為復(fù)位,再放音時(shí)又從第一段開(kāi)始。 89C51-ISD4000語(yǔ)音電路程序AT89C51單片機(jī) 89C51單片機(jī)12MHz 注:本程序?yàn)?/B>ISD4002、4003的控制程序,ISD4004的程序須加些改動(dòng),請(qǐng)注意程序后邊的注釋。SS EQU P1.0 ;片選SCLK EQU P1.1 ;ISD4003時(shí)鐘MOSI EQU P1.2 ;數(shù)據(jù)輸入MISO EQU P1.3 ;數(shù)據(jù)輸出LED EQU P1.7 ;指示燈INT EQU INT0 ;中斷AN EQU P1.6 ;執(zhí)行STOP EQU P1.5 ;復(fù)位PR EQU P1.4 ;PR=1錄音 PR=0放音;初始化 ORG 0000H ; AJMP MAIN ;MAIN: MOV SP,#10H ; MOV P1,#0FFH ; MOV P2,#0FFH ; MOV P3,#0FFH ; MOV P0,#0FFH ; CLR EA ;MAII: SETB LED ;關(guān)指示燈 ACALL DSTOP ;ISD掉電MAS0: MOV 3AH,#200 ;MAS1: JB AN,MAS0 ;等按AN鍵 DJNZ 3AH,MAS1 ; ACALL UP ;ISD上電 MOV 20H,#00H ;ISD低位地址 MOV 21H,#00H ;ISD高位地址 JB PR,REC ;PR=1 錄音 AJMP PLAY ;PR=0 放音;SETREC 16位;從指定地址錄音 10100 <X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 >REC: MOV A,20H ;發(fā)地址 A7-A0 ACALL ISDX ; MOV A,21H ;發(fā)地址 A9-A8 SETB ACC.7 ; CLR ACC.6 ; SETB ACC.5 ; CLR ACC.4 ; CLR ACC.3 ; ACALL ISDX ; SETB SS ;關(guān)片選;REC 8位;從當(dāng)前地址錄音 10110 <X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 >REC1: MOV 36H,#10 ;REC2: ACALL YS50 ;延時(shí)錄音 DJNZ 36H,REC2 ; CLR LED ;開(kāi)指示燈 MOV A,#0B0H ;發(fā) 1011 0XXX ACALL ISDX ; SETB SS ;關(guān)片選REC3: MOV 35H,#200 ;REC4: JNB INT,REC7 ;OVF=0芯片溢出 JNB AN,REC3 ; DJNZ 35H,REC4 ; SETB LED ;關(guān)指示燈 ACALL STOPP ;停止當(dāng)前操作REC5: JNB STOP,REC6 ;中斷RESET JB AN,REC5 ;等待AN=0 ACALL STOPP ;停止當(dāng)前操作 AJMP REC1 ;REC6: CLR SCLK ;時(shí)鐘SCLK=0 SETB SS ;關(guān)片選 ACALL STOPP ;停止當(dāng)前操作 AJMP MAII ;REC7: SETB LED ;關(guān)指示燈 MOV 36H,#15 ;REC8: ACALL YS50 ;延時(shí)錄音 JB AN,REC6 ;等待AN=1 DJNZ 36H,REC8 ; CLR LED ; MOV 36H,#15 ;REC9: ACALL YS50 ;延時(shí)錄音 JB AN,REC6 ;等待AN=1 DJNZ 36H,REC9 ; AJMP REC7 ;;SETPLAY 16位;從指定地址放音 11100 <X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 >PLAY: JNB AN,PLAY ;等待AN=1 MOV A,20H ;發(fā)地址 A7-A0 ACALL ISDX ; MOV A,21H ;發(fā)地址 A9-A8 SETB ACC.7 ; SETB ACC.6 ; SETB ACC.5 ; CLR ACC.4 ; CLR ACC.3 ; ACALL ISDX ; SETB SS ;關(guān)片選;PLAY 8位;從當(dāng)前地址放音 11110 <X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 >PLAY1: CLR LED ;LED開(kāi)指示燈 MOV A,#0F0H ;發(fā) 11110 XXXXXXXX ACALL ISDX ;發(fā) << SETPLAY >> SETB SS ;關(guān)片選PLAY2: JNB STOP,REC6 ;STOP=0停止放音 JB INT,PLAY2 ;無(wú)OVF EOM繼續(xù)放音 SETB LED ;關(guān)指示燈 ACALL STOPP ;停止當(dāng)前操作;檢測(cè)OVF CLR SS ;開(kāi)片選 CLR SCLK ;時(shí)鐘SCLK=0 SETB SCLK ;時(shí)鐘SCLK=1 JB MISO,REC6 ;芯片到未 CLR SCLK ;時(shí)鐘SCLK=0 SETB SS ;關(guān)片選 ACALL STOPP ;停止當(dāng)前操作PLAY3: JNB STOP,REC6 ;中斷放音 JB AN,PLAY3 ;等待AN=0 AJMP PLAY1 ;順序放音;ISD上電 << POWERUP >>UP: MOV A,#20H ;發(fā)00100 XXXXXXXXXXX ACALL ISDX ; SETB SS ;關(guān)片選 ACALL YS50 ;50mS延時(shí) ACALL YS50 ;50mS延時(shí) RET ;;停止當(dāng)前操作<< STOP >> 8位STOPP: MOV A,#30H ;發(fā) 0X11 0XXX ACALL ISDX ; SETB SS ;關(guān)片選 ACALL YS50 ;50mS延時(shí) ACALL YS50 ;50mS延時(shí) RET ;;停止當(dāng)前操作掉電<< STOPPWRDN >> 8位DSTOP: MOV A,#10H ;發(fā)0X010 XXXXXXXXXX ACALL ISDX ; SETB SS ;關(guān)片選 ACALL YS50 ;50mS延時(shí) ACALL YS50 ;50mS延時(shí) RET ;;ISD3300,4003 SPI寫(xiě)入程序 8位 數(shù)據(jù)在A(yíng)ISDX: CLR SS ;開(kāi)片選 MOV R6,#8 ; CLR SCLK ;時(shí)鐘SCLK=0ISD1: MOV C,ACC.0 ; MOV MOSI,C ;數(shù)據(jù)寫(xiě) MOSI SETB SCLK ;時(shí)鐘SCLK=1 RR A ; CLR SCLK ;時(shí)鐘SCLK=0 DJNZ R6,ISD1 ; RET ;;**** 10mS延時(shí) ****YS1: MOV TMOD,#01H ; MOV TH0,#0D8H ;10mS延時(shí)初值置入 MOV TL0,#0F0H ;(65536-X)*1=10MS SETB TR0 ;65536-(10000/1)=D8F0H JNB TF0,$ ; CLR TF0 ; CLR TR0 ; RET ;;**** 50mS延時(shí) ****YS50: MOV TMOD,#01H ; MOV TH0,#3CH ;50mS延時(shí)初值置入 MOV TL0,#0B0H ;(65536-X)*1=50MS SETB TR0 ;65536-(50000/1) JNB TF0,$ ; CLR TF0 ; CLR TR0 ; RET ; END ; 附:ISD4004的程序改動(dòng)注明:SETREC: ;指定地址錄音MOV 20H,#00H ;低八為地址MOV 21H,#00H ;高八位地址MOV 22H,#0a0H ;操作碼MOV A,20HACALL ISDXMOV A,21HACALL ISDXMOV A,22HACALL ISDX SETB SS 指定地址錄音(SETPLAY)和指定地址快進(jìn)(SETMC)的改動(dòng)與上述相同 |
|