一種基于單片機控制的ISD4004語(yǔ)音芯片應用電路
3 軟件設計
3.1 程序流程圖
如圖2所示:
圖2
3.2 程序工作思想
電路上電后,程序首先完成程序的初始化,隨后查詢(xún)按鍵狀態(tài),進(jìn)入系統待機狀態(tài)。如果有按鍵按下,則轉去執行該按鍵指向的工作程序。按鍵包括放音鍵,停止鍵,加一,減一鍵以及特殊語(yǔ)鍵。在待機狀態(tài)下,如果放音鍵首次被按下,程序將首先判斷是去還是回(公交車(chē)路徑一般是既去又回的),并點(diǎn)亮相應的指示燈。自動(dòng)讀出第一站的放音內容,站號顯示1。如果不是首次按下,程序則首先判斷當前站號,并以該站號為依據獲得存放該站放音內容的首地址。調用放音子程序,讀入前面獲得的本站放音內容首地址,開(kāi)始放音。每一句放音完畢后,ISD4004的中斷引腳(25腳)會(huì )自動(dòng)送一低電平信號。在硬件設計中,該引腳與單片機的 P3.3連接。因此,會(huì )引起一次中斷,在中斷子程序中會(huì )有一個(gè)計數器記錄中斷次數,從而判斷何時(shí)一站結束,站號加一并刷新顯示。加一鍵按下后則使程序放音內容轉向下一站,減一鍵則使程序放音內容轉向上一站,相應的站號顯示也將隨之刷新。特殊語(yǔ)鍵按下后,程序轉向執行特殊語(yǔ)放音(譬如拐彎請注意等語(yǔ)句)。停止鍵被按下將中止當前的放音狀態(tài)。
3.3 部分工作子程序
為了便于讀者對ISD4004應用的理解,本文給出了部分操作程序。
該部分程序主要完成放音操作,把獲得的放音內容的地址送到ISD4004中,完成放音。下面給出的就是放音部分程序。放音子程序:
PLAY:
ACALL POWERUP ;上電子程序
ACALL DELAY25 ;延遲子程序,至少延遲25ms
CLR P1.6 ;選中ISD4004
MOV PLAY2,#11100000B ;存放SETPLAY命令
MOV A,PLAY0 ;送放音地址低8位
ACALL SEND ;調用送地址子程序
MOV A,PLAY1 ;送放音地址高8位
ACALL SEND
MOV A,PLAY2 ;送SETPLAY命令
ACALL SEND
SETB P1.6
CLR P1.6
MOV PLAYING,#11110000B ;送入放音指令
MOV A,PLAYING
ACALL SEND
SETB P1.6
RET
POWERUP: ;送上電指令子程序
MOV POWING,#00100000B ;送入語(yǔ)音芯片上電信號
MOV A,POWUPING
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 MOSI,C ;輸出1位
NOP
NOP
NOP
SETB P3.2 ;時(shí)鐘上升沿到
NOP
NOP
NOP
DJNZ R1,OUTBIT1
RET
3.4 編程以及調試時(shí)要注意的一些問(wèn)題
在放音程序中,要嚴格按照ISD4004的要求編程。首先要送上電指令,然后等待25毫秒的延遲,再送16位放音起始地址,最后送8位的開(kāi)始放音指令。
在放音電路的調試過(guò)程中,首先測量ISD4004的工作電壓是否3伏,如果是則進(jìn)入下級調試。再看是否可以送入放音地址,對此可以測量AUDOUT引腳的電壓,若為1.2伏則說(shuō)明可以讀入放音地址。隨后測量是否能夠放音,可以測量AUDOUT引腳電壓,若為1.2伏,則說(shuō)明ISD4004芯片工作正常,應該可以放音。如果還沒(méi)有聽(tīng)到放音,則可以調試后級放音電路,看是否后級電路的問(wèn)題。
4 結束語(yǔ)
本文通過(guò)對ISD4004語(yǔ)音芯片在語(yǔ)音報站器中的一個(gè)實(shí)際應用的簡(jiǎn)單介紹,使讀者熟悉了1SD4004的基本應用。同時(shí)本文介紹的報站器電路已經(jīng)經(jīng)過(guò)上車(chē)實(shí)驗調試,能夠可靠穩定工作。
參考文獻
1 李華 《MCS-51系列單片機實(shí)用接口技術(shù)》 北京航空航天大學(xué)出版社 1993年
2 薛鈞義 張彥斌 《MCS-51/96系列單片微型計算機及其應用》 西安交通大學(xué)出版社 1997年第2版
3 王振紅 李洋 郝承祥 《ISD4004語(yǔ)音芯片的工作原理及其在智能控制系統中的應用》 電子器件 2002年3月第25卷第1期
評論