IS22C011/20語音芯片的原理及在MCS-51單片機(jī)中的應(yīng)用
5.1 硬件連接
當(dāng)IS22C011/20的S1~S4、STB/BUSY等信號端由MCS-51或其它接口芯片(如8255A)控制時可方便地實(shí)現(xiàn)單段一次、多次或多段連續(xù)觸發(fā),圖7為8031與IS22C011/20連接線路。由于8031在復(fù)位時的口線輸出為高電平,而S1~S4為高電平有效,因此P1. 0~P1.3可通過4069反相器與S1~S4相連。將STB/BUSY控制端與P3.5(T1口)相連可用于單段多次或多段連續(xù)觸發(fā),T1口工作于方式 2可自動再裝入8位計(jì)數(shù)方式,并允許T1口中斷。一旦前段播放完畢,則由STP信號觸發(fā)T1口向CPU發(fā)出中斷申請,以進(jìn)行再次觸發(fā)或觸發(fā)下一段,因此, STP/BUSY信號選項(xiàng)應(yīng)選擇STP信號,而S1~S4則用于選擇脈沖觸發(fā)。由于防抖觸發(fā)延遲時間為15ms,因此觸發(fā)時的脈沖寬度必須大于15ms,本文中的程序設(shè)計(jì)為30ms。
5.2 軟件編寫
以下為單段一次、再次播放和二段連播程序清單,其中“DEL”為觸發(fā)脈沖脈寬延時子程序,脈寬為30ms。為了提高CPU的工作效率,程序中采用T0 口中斷定時方式。R0用于設(shè)置播放次數(shù)或段落數(shù),#00H為單段一次播放,#01H為單段二次或二段連播。R1、R2的低四位設(shè)置二次播放的觸發(fā)譯碼,單段二次連播時R1、R2應(yīng)設(shè)置相同的譯碼,單段一次時R2可不用。由于采用4069反相驅(qū)動,因此R1、R2中設(shè)置的觸發(fā)譯碼應(yīng)將表1中的譯碼取反。具體的程序清單如下:
評論