ISD4004語音芯片在語音報(bào)站器中的應(yīng)用
2 軟件設(shè)計(jì) 程序流程圖如圖2所示。 電路上電后,首先完成程序的初始化,隨后查詢按鍵狀態(tài),進(jìn)入系統(tǒng)待機(jī)狀態(tài)。如果有按鍵按下,則轉(zhuǎn)去執(zhí)行該按鍵指向的工作程序。按鍵包括放音鍵、停止鍵、加一鍵、減一鍵以及特殊語鍵。在待機(jī)狀態(tài)下,如果放音鍵首次被按下,程序?qū)⑹紫扰袛嗍侨ミ€是回(公交車路徑一般是既去又回的),并點(diǎn)亮相應(yīng)的指示燈,自動讀出第一站的放音內(nèi)容,站號顯示1。如果不是首次按下,則首先判斷當(dāng)前站號,并以該站號為依據(jù)獲得存放該站放音內(nèi)容的首地址;然后調(diào)用放音子程序,讀入前面獲得的本站放音內(nèi)容首地址,開始放音。每一句放音完畢后,ISD4004的中斷引腳(25腳)會自動送一低電平信號。在硬件設(shè)計(jì)中,該引腳與單片機(jī)的P3.3連接,因此會引起一次中斷,在中斷子程序中有一個(gè)計(jì)數(shù)器記錄中斷次數(shù),從而判斷何時(shí)當(dāng)前一站結(jié)束,站號加一并刷新顯示。加一鍵按下后,程序放音內(nèi)容轉(zhuǎn)向下一站;減一鍵按下后,則使程序放音內(nèi)容轉(zhuǎn)向上一站,相應(yīng)的站號顯示也將隨之刷新;特殊語鍵按下后,程序轉(zhuǎn)向執(zhí)行特殊語放音(譬如“拐彎請注意”等語句);停止鍵按下,將中止當(dāng)前的放音狀態(tài)。為了便于讀者對ISD4004應(yīng)用的理解,本文給出了部分程序。 該部分程序主要完成放音操作,把獲得的放音內(nèi)容的地址送到ISD4004中,完成放音。 PLAY ACALL POWERUP 上電子程序 ACALL DELAY25 延遲子程序,至少延 遲25ms CLR P1.6 選中ISD4004 MOV PLAY2#11100000B 存放SETPLAY命令 MOV APLAY0 送放音地址低8位 ACALL SEND 調(diào)用送地址子程序 MOV APLAY1 送放音地址高8位 ACALL SEND MOV APLAY2 送SETPLAY命令 ACALL SEND SETB P1.6 CLR P1.6 MOV PLAYING#11110000B 送入放音指令 MOV APLAYING ACALL SEND SETB P1.6 RET POWERUP 送上電指令子程序 MOV POWING#00100000B 送入語音芯片上電信號 MOV APOWUPING CLR P1.6 ACALL SEND SETB P1.6 RET SEND: 向ISD4004送指令、 地址等的子程序 CLR MOSI CLR P3.2 MOV R1#8 OUTBIT1 CLR P3.2 時(shí)鐘下降 RRC A MOV MOSIC 輸出1位 NOP NOP SETB P3.2 時(shí)鐘上升沿到 NOP NOP NOP DJNZ R1OUTBIT1 RET 放音程序中,要嚴(yán)格按照ISD4004的要求編程。首先要送上電指令,然后等待25μs的延遲,再送16位放音起始地址,最后送8位的開始放音指令。 在放音電路的調(diào)試過程中,首先測量ISD4004的工作電壓是否是3V,如果是則進(jìn)入下級調(diào)試。再看是否可以送入放音地址,對此可以測量AUDOUT引腳的電壓,若為1.2V則說明可以讀入放音地址。再后測量是否能夠放音,可以測量AUDOUT引腳電壓,若為1.2V則說明ISD4004芯片工作正常,可以放音。如果沒有聽到放音則調(diào)試后級放音電路,看是否是后級電路有問題。 本文介紹的報(bào)站器電路已經(jīng)經(jīng)過上車實(shí)驗(yàn)調(diào)試,能夠穩(wěn)定可靠工作。












評論