電源:(VCCA,VCCD) 為使噪聲最小,芯片的模擬和數(shù)字電路使用不同的電源總線,并且分別引到外封裝的不同管腳上,模擬和數(shù)字電源端最好分別走線,盡可能在靠近供電端處相連,而去耦電容應(yīng)盡量靠近器件。
地線:(VSSA,VSSD) 芯片內(nèi)部的模擬和數(shù)字電路也使用不同的地線。
同相模擬輸入(ANA IN ) 這是錄音信號(hào)的同相輸入端。輸入放大器可用單端或差分驅(qū)動(dòng)。單端輸入時(shí),信號(hào)由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3KΩ電阻輸入阻抗決定了芯片頻帶的低端截止頻率。差分驅(qū)動(dòng)時(shí),信號(hào)最大幅度為峰峰值16mV,為ISD33000 系列相同。
反相模擬輸入(ANA IN-) 差分驅(qū)動(dòng)時(shí),這是錄音信號(hào)的反相輸入端。信號(hào)通過(guò)耦合電容輸入,最大幅度為峰峰值16mV
音頻輸出(AUD OUT) 提供音頻輸出,可驅(qū)動(dòng)5KΩ的負(fù)載。
片選(SS) 此端為低,即向該ISD4004 芯片發(fā)送指令,兩條指令之間為高電平。
串行輸入(MOSI) 此端為串行輸入端,主控制器應(yīng)在串行時(shí)鐘上升沿之前半個(gè)周期將數(shù)據(jù)放到本端,供ISD 輸入。
串行輸出(MISO) ISD 的串行輸出端。ISD 未選中時(shí),本端呈高阻態(tài)。
串行時(shí)鐘(SCLK) ISD 的時(shí)鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI 和MISO 的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。
中斷(/INT) 本端為漏極開(kāi)路輸出。ISD 在任何操作(包括快進(jìn))中檢測(cè)到EOM 或OVF 時(shí),本端變低并保持。中斷狀態(tài)在下一個(gè)SPI 周期開(kāi)始時(shí)清除。中斷狀態(tài)也可用RINT 指令讀取。OVF 標(biāo)志----指示ISD的錄、放操作已到達(dá)存儲(chǔ)器的未尾。EOM 標(biāo)志----只在放音中檢測(cè)到內(nèi)部的EOM 標(biāo)志時(shí),此狀態(tài)位才置1。
行地址時(shí)鐘(RAC) 漏極開(kāi)路輸出。每個(gè)RAC 周期表示ISD 存儲(chǔ)器的操作進(jìn)行了一行(ISD4004 系列中的
存貯器共2400 行)。該信號(hào)175ms 保持高電平,低電平為25ms??爝M(jìn)模式下,RAC 的218.75μs 是高電平,31.25μs 為低電平。該端可用于存儲(chǔ)管理技術(shù)。
外部時(shí)鐘(XCLK) 本端內(nèi)部有下拉元件。芯片內(nèi)部的采樣時(shí)鐘在出廠前已調(diào)校,誤差在 1%內(nèi)。商業(yè)級(jí)芯片在整個(gè)溫度和電壓范圍內(nèi), 頻率變化在 2.25%內(nèi)。工業(yè)級(jí)芯片在整個(gè)溫度和電壓范圍內(nèi),頻率變化在-6/ 4%內(nèi),此時(shí)建議使用穩(wěn)壓電源。若要求更高精度,可從本端輸入外部時(shí)鐘(如前表所列)。由于內(nèi)部的防混淆及平滑濾波器已設(shè)定,故上述推薦的時(shí)鐘頻率不應(yīng)改變。輸入時(shí)鐘的占空比無(wú)關(guān)緊要,因內(nèi)部首先進(jìn)行了分頻。在不外接地時(shí)鐘時(shí),此端必須接地。
自動(dòng)靜噪(AMCAP) 當(dāng)錄音信號(hào)電平下降到內(nèi)部設(shè)定的某一閾值以下時(shí),自動(dòng)靜噪功能使信號(hào)衰弱,這樣有助于養(yǎng)活無(wú)信號(hào)(靜音)時(shí)的噪聲。通常本端對(duì)地接1mF 的電容,構(gòu)成內(nèi)部信號(hào)電平峰值檢測(cè)電路的一部分。檢出的峰值電平與內(nèi)部設(shè)定的閾值作比較,決定自動(dòng)靜噪功能的翻轉(zhuǎn)點(diǎn)。大信號(hào)時(shí),自動(dòng)靜噪電路不衰減,靜音時(shí)衰減6dB。1mF 的電容也影響自動(dòng)靜噪電路對(duì)信號(hào)幅度的響應(yīng)速度。本端接VCCA 則禁止自動(dòng)靜噪。
●單片8 至16 分鐘語(yǔ)音錄放
●內(nèi)置微控制器串行通信接口
●3V 單電源工作
●多段信息處理
●工作電流25-30mA,維持電流1μA
●不耗電信息保存100 年(典型值)
●高質(zhì)量、自然的語(yǔ)音還原技術(shù)
●10 萬(wàn)次錄音周期(典型值)
●自動(dòng)靜噪功能
●片內(nèi)免調(diào)整時(shí)鐘,可選用外部時(shí)鐘
型 號(hào) |
時(shí) 間 |
輸入采樣 |
典型帶寬 |
最大段數(shù) |
最小段長(zhǎng) |
外部鐘頻 |
ISD4004-08 |
8分鐘 |
8.0kHz |
3.4kHz |
1200 |
200ms |
1024.0kHz |
ISD4004-10 |
10分鐘 |
6.4kHz |
2.7kHz |
1200 |
250ms |
819.2kHz |
ISD4004-12 |
12分鐘 |
5.3kHz |
2.3kHz |
1200 |
300ms |
682.7kHz |
ISD4004-16 |
16分鐘 |
4.0kHz |
1.7kHz |
1200 |
400ms |
512.0kHz |
ISD4004 系列工作電壓3V,單片錄放時(shí)間8 至16 分鐘,音質(zhì)好,適用于移動(dòng)電話及其他便攜式電子產(chǎn)品中。芯片采用CMOS 技術(shù),內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動(dòng)靜噪及高密度多電平閃爍存貯陳列。芯片設(shè)計(jì)是基于所有操作必須由微控制器控制,操作命令可通過(guò)串行通信接口(SPI 或Microwire)送入。芯片采用多電平直接模擬量存儲(chǔ)技術(shù), 每個(gè)采樣值直接存貯在片內(nèi)FLASH存貯器中,因此能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂(lè)、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"。采樣頻率可為 4.0,5.3,6.4,8.0kHz,頻率越低,錄放時(shí)間越長(zhǎng),而音質(zhì)則有所下降,片內(nèi)信息存于FLASH存貯器中,可在斷電情況下保存100 年(典型值),反復(fù)錄音10 萬(wàn)次。
●單片8 至16 分鐘語(yǔ)音錄放
●內(nèi)置微控制器串行通信接口
●3V 單電源工作
●多段信息處理
●工作電流25-30mA,維持電流1μA
●不耗電信息保存100 年(典型值)
●高質(zhì)量、自然的語(yǔ)音還原技術(shù)
●10 萬(wàn)次錄音周期(典型值)
●自動(dòng)靜噪功能
●片內(nèi)免調(diào)整時(shí)鐘,可選用外部時(shí)鐘
型 號(hào) | 時(shí) 間 | 輸入采樣 | 典型帶寬 | 最大段數(shù) | 最小段長(zhǎng) | 外部鐘頻 |
ISD4004-08 | 8分鐘 | 8.0kHz | 3.4kHz | 1200 | 200ms | 1024.0kHz |
ISD4004-10 | 10分鐘 | 6.4kHz | 2.7kHz | 1200 | 250ms | 819.2kHz |
ISD4004-12 | 12分鐘 | 5.3kHz | 2.3kHz | 1200 | 300ms | 682.7kHz |
ISD4004-16 | 16分鐘 | 4.0kHz | 1.7kHz | 1200 | 400ms | 512.0kHz |
ISD4004 系列工作電壓3V,單片錄放時(shí)間8 至16 分鐘,音質(zhì)好,適用于移動(dòng)電話及其他便攜式電子產(chǎn)品中。芯片采用CMOS 技術(shù),內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動(dòng)靜噪及高密度多電平閃爍存貯陳列。芯片設(shè)計(jì)是基于所有操作必須由微控制器控制,操作命令可通過(guò)串行通信接口(SPI 或Microwire)送入。芯片采用多電平直接模擬量存儲(chǔ)技術(shù), 每個(gè)采樣值直接存貯在片內(nèi)FLASH存貯器中,因此能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂(lè)、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"。采樣頻率可為 4.0,5.3,6.4,8.0kHz,頻率越低,錄放時(shí)間越長(zhǎng),而音質(zhì)則有所下降,片內(nèi)信息存于FLASH存貯器中,可在斷電情況下保存100 年(典型值),反復(fù)錄音10 萬(wàn)次。
只要接在普通I/O口就可以了,任意接,主要是編程時(shí)你要知道你接的哪個(gè)口就行了。
這樣沒(méi)有影響,只是在2狀態(tài)下不要再點(diǎn)擊“項(xiàng)目特征應(yīng)用”按鈕,點(diǎn)擊后就會(huì)變成2狀態(tài)。
在分部分項(xiàng)預(yù)算書(shū)界面點(diǎn)擊清單項(xiàng)后面的名稱欄,出現(xiàn)三點(diǎn)按鈕,點(diǎn)擊三點(diǎn)按鈕,出現(xiàn)圖1,然后你可以在里面編輯你需要說(shuō)明的信息和各種特征等。
電源:(VCCA,VCCD) 為使噪聲最小,芯片的模擬和數(shù)字電路使用不同的電源總線,并且分別引到外封裝的不同管腳上,模擬和數(shù)字電源端最好分別走線,盡可能在靠近供電端處相連,而去耦電容應(yīng)盡量靠近器件。
地線:(VSSA,VSSD) 芯片內(nèi)部的模擬和數(shù)字電路也使用不同的地線。
同相模擬輸入(ANA IN+) 這是錄音信號(hào)的同相輸入端。輸入放大器可用單端或差分驅(qū)動(dòng)。單端輸入時(shí),信號(hào)由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3KΩ電阻輸入阻抗決定了芯片頻帶的低端截止頻率。差分驅(qū)動(dòng)時(shí),信號(hào)最大幅度為峰峰值16mV,為ISD33000 系列相同。
反相模擬輸入(ANA IN-) 差分驅(qū)動(dòng)時(shí),這是錄音信號(hào)的反相輸入端。信號(hào)通過(guò)耦合電容輸入,最大幅度為峰峰值16mV
音頻輸出(AUD OUT) 提供音頻輸出,可驅(qū)動(dòng)5KΩ的負(fù)載。
片選(SS) 此端為低,即向該ISD4004 芯片發(fā)送指令,兩條指令之間為高電平。
串行輸入(MOSI) 此端為串行輸入端,主控制器應(yīng)在串行時(shí)鐘上升沿之前半個(gè)周期將數(shù)據(jù)放到本端,供ISD 輸入。
串行輸出(MISO) ISD 的串行輸出端。ISD 未選中時(shí),本端呈高阻態(tài)。
串行時(shí)鐘(SCLK) ISD 的時(shí)鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI 和MISO 的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。
中斷(/INT) 本端為漏極開(kāi)路輸出。ISD 在任何操作(包括快進(jìn))中檢測(cè)到EOM 或OVF 時(shí),本端變低并保持。中斷狀態(tài)在下一個(gè)SPI 周期開(kāi)始時(shí)清除。中斷狀態(tài)也可用RINT 指令讀取。OVF 標(biāo)志----指示ISD的錄、放操作已到達(dá)存儲(chǔ)器的未尾。EOM 標(biāo)志----只在放音中檢測(cè)到內(nèi)部的EOM 標(biāo)志時(shí),此狀態(tài)位才置1。
行地址時(shí)鐘(RAC) 漏極開(kāi)路輸出。每個(gè)RAC 周期表示ISD 存儲(chǔ)器的操作進(jìn)行了一行(ISD4004 系列中的
存貯器共2400 行)。該信號(hào)175ms 保持高電平,低電平為25ms。快進(jìn)模式下,RAC 的218.75μs 是高電平,31.25μs 為低電平。該端可用于存儲(chǔ)管理技術(shù)。
外部時(shí)鐘(XCLK) 本端內(nèi)部有下拉元件。芯片內(nèi)部的采樣時(shí)鐘在出廠前已調(diào)校,誤差在 +1%內(nèi)。商業(yè)級(jí)芯片在整個(gè)溫度和電壓范圍內(nèi), 頻率變化在+2.25%內(nèi)。工業(yè)級(jí)芯片在整個(gè)溫度和電壓范圍內(nèi),頻率變化在-6/+4%內(nèi),此時(shí)建議使用穩(wěn)壓電源。若要求更高精度,可從本端輸入外部時(shí)鐘(如前表所列)。由于內(nèi)部的防混淆及平滑濾波器已設(shè)定,故上述推薦的時(shí)鐘頻率不應(yīng)改變。輸入時(shí)鐘的占空比無(wú)關(guān)緊要,因內(nèi)部首先進(jìn)行了分頻。在不外接地時(shí)鐘時(shí),此端必須接地。
自動(dòng)靜噪(AMCAP) 當(dāng)錄音信號(hào)電平下降到內(nèi)部設(shè)定的某一閾值以下時(shí),自動(dòng)靜噪功能使信號(hào)衰弱,這樣有助于養(yǎng)活無(wú)信號(hào)(靜音)時(shí)的噪聲。通常本端對(duì)地接1mF 的電容,構(gòu)成內(nèi)部信號(hào)電平峰值檢測(cè)電路的一部分。檢出的峰值電平與內(nèi)部設(shè)定的閾值作比較,決定自動(dòng)靜噪功能的翻轉(zhuǎn)點(diǎn)。大信號(hào)時(shí),自動(dòng)靜噪電路不衰減,靜音時(shí)衰減6dB。1mF 的電容也影響自動(dòng)靜噪電路對(duì)信號(hào)幅度的響應(yīng)速度。本端接VCCA 則禁止自動(dòng)靜噪。
ISD4004 工作于SPI 串行接口。SPI 協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI 移位寄存器在SCLK 的下降沿動(dòng)作,因此對(duì)ISD4004 而言,在時(shí)鐘上升沿鎖存MOSI 引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO 引腳。協(xié)議的具體內(nèi)容為:
1.所有串行數(shù)據(jù)傳輸開(kāi)始于SS 下降沿。
2.SS 在傳輸期間必須保持為低電平,在兩條指令之間則保持為高電平。
3.數(shù)據(jù)在時(shí)鐘上升沿移入,在下降沿移出。
4.SS 變低,輸入指令和地址后,ISD 才能開(kāi)始錄放操作。
5.指令格式是(8 位控制碼)加(16 位地址碼)。
6.ISD 的任何操作(含快進(jìn))如果遇到EOM 或OVF,則產(chǎn)生一個(gè)中斷,該中斷狀態(tài)在下一個(gè)SPI 周期開(kāi)始時(shí)被清除。
7.使用"讀"指令使中斷狀態(tài)位移出ISD 的MISO 引腳時(shí),控制及地址數(shù)據(jù)也應(yīng)同步從MOSI 端移入。因此要注意移入的數(shù)據(jù)是否與器件當(dāng)前進(jìn)行的操作兼容。當(dāng)然,也允許在一個(gè)SPI 周期里,同時(shí)執(zhí)行讀狀態(tài)和開(kāi)始新的操作(即新移入的數(shù)據(jù)與器件當(dāng)前的操作可以不兼容)。
8.所有操作在運(yùn)行位(RUN)置1 時(shí)開(kāi)始,置0 時(shí)結(jié)束。
9.所有指令都在SS 端上升沿開(kāi)始執(zhí)行。
用戶不必知道信息的確切地址,就能快進(jìn)跳過(guò)一條信息。信息快進(jìn)只用于放音模式。放音速度是正
常的160 倍,遇到EOM 后停止,然后內(nèi)部地址計(jì)數(shù)器加1,指向下條信息的開(kāi)始處。
器件延時(shí)TPUD(8kHz 采樣時(shí),約為25 毫秒)后才能開(kāi)始操作。因此,用戶發(fā)完上電指令后,必須等待
TPUD,才能發(fā)出一條操作指令。
例如,從00 從處發(fā)音,應(yīng)遵循如下時(shí)序:
1. 發(fā)POWERUP 命令;
2. 等待TPUD(上電延時(shí));
3. 發(fā)地址值為00 的SETPLAY 命令;
4. 發(fā)PLAY 命令。
器件會(huì)從此00 地址開(kāi)始放音,當(dāng)出現(xiàn)EOM 時(shí),立即中斷,停止放音。
如果從00 處錄音,則按以下時(shí)序:
1. 發(fā)POWER UP 命令;
2. 等待TPUD(上電延時(shí));
3. 發(fā)POWER UP 命令
4. 等待2 倍TPUD;
5. 發(fā)地址值為00 的SETREC 命令;
6. 發(fā)REC 命令。
器件便從00 地址開(kāi)始錄音,一直到出現(xiàn)OVF(存貯器末尾)時(shí),錄音停止。
ISD4002/4003/4004芯片參數(shù)表
型號(hào) |
存儲(chǔ)時(shí)間 (秒) |
可分 段數(shù) |
信息分辯 率(毫秒) |
采樣頻 率(HZ) |
濾波器 帶寬(HZ) |
控制碼 地址位 |
ISD4002-120 |
120 |
600 |
200 |
8.0K |
3.4K |
5 11 |
ISD4002-180 |
180 |
600 |
300 |
5.3k |
2.3k |
5 11 |
ISD4002-240 |
240 |
600 |
400 |
4.0k |
1.7k |
5 11 |
ISD4003-04 |
240 |
1200 |
200 |
8.0K |
3.4K |
5 11 |
ISD4003-06 |
360 |
1200 |
300 |
5.3K |
2.3K |
5 11 |
ISD4003-08 |
480 |
1200 |
400 |
4.0K |
1.7K |
5 11 |
ISD4004-08 |
480 |
2400 |
200 |
8.0K |
3.4K |
8 16 |
ISD4004-16 |
960 |
2400 |
400 |
4.0K |
1.7K |
8 16 |
以上芯片由ISD3340K編程拷貝機(jī)編程、拷貝。 |
************
// 主程序
//
// 功能:1.錄音時(shí),按住AN鍵,LED點(diǎn)亮開(kāi)始錄音,松開(kāi)AN即可停止錄音
// 再次按下AN鍵,LED點(diǎn)亮開(kāi)始錄第二段音,依次類推,直到芯片溢出。
// 按stop鍵芯片復(fù)位
// 2.放音時(shí),按一下AN鍵,即播放一段語(yǔ)音。 按stop鍵芯片復(fù)位。
//************************************************************************
#include
sbit SS =P1^0; //片選
sbit MOSI=P1^1; //數(shù)據(jù)輸入
sbit MISO=P1^2; //數(shù)據(jù)輸出
sbit SCLK=P1^3; //ISD4004時(shí)鐘
sbit INT =P1^4; //中斷
sbit LED =P1^7; //指示燈
sbit LED1=P1^6; //指示燈:亮是錄音/不亮是放音
sbit PR =P3^3; //錄音和放音選擇開(kāi)關(guān)
sbit STOP=P3^4; //復(fù)位
sbit AN =P3^5; //執(zhí)行
void delay(unsigned int time) //延遲n微秒
{
while(time!=0)
{
time--;
}
}
void delayms(unsigned int time) //延遲n毫秒
{
TMOD=0x01;
for(time;time>0;time--)
{
TH0=0xfc;
TL0=0x18;
TR0=1;
while(TF0!=1)
{;}
TF0=0;
TR0=0;
}
}
void isd_send(unsigned char isdx)//spi串行發(fā)送子程序,8位數(shù)據(jù)
{
unsigned char isx_counter;
SS=0;//ss=0,打開(kāi)spi通信端
SCLK=0;
for(isx_counter=0;isx_counter<8;isx_counter )//先發(fā)低位再發(fā)高位,依次發(fā)送。
{
if((isdx&0x01)==1)
MOSI=1;
else
MOSI=0;
isdx=isdx>>1;
SCLK=1;
delay(2);
SCLK=0;
delay(2);
}
}
void isd_stop()//stop指令(停止當(dāng)前操作)
{
delay(10);
isd_send(0x30);
SS=1;
delayms(50);
}
void isd_powerup()//發(fā)送上電指令
{
delay(10);
SS=0;
isd_send(0x20);
SS=1;
delayms(50);
}
void isd_stopwrdn()//發(fā)送掉電指令
{
delay(10);
isd_send(0x10);
SS=1;
delayms(50);
}
void isd_play()//發(fā)送play指令
{
LED=0;
isd_send(0xf0);
SS=1;
}
void isd_rec()//發(fā)送rec指令
{
LED=0;
isd_send(0xb0);
SS=1;
}
void isd_setplay(unsigned char adl,unsigned char adh)//發(fā)送setplay指令
{
delayms(1);
isd_send(adl); //發(fā)送放音起始地址低位
delay(2);
isd_send(adh); //發(fā)送放音起始地址高位
delay(2);
isd_send(0xe0); //發(fā)送setplay指令字節(jié)
SS=1;
}
void isd_setrec(unsigned char adl,unsigned char adh)//發(fā)送setrec指令
{
delayms(1);
isd_send(adl); //發(fā)送放音起始地址低位
delay(2);
isd_send(adh); //發(fā)送放音起始地址高位
delay(2);
isd_send(0xa0); //發(fā)送setplay指令字節(jié)
SS=1;
}
void isd_overflow()//芯片溢出,LED閃爍提醒停止錄音
{
while(AN==0)
{
LED=1;
delayms(300);
LED=0;
delayms(300);
}
}
unsigned char chk_isdovf()//檢查芯片是否溢出(讀OVF,并返回OVF值)
{
SS=0;
delay(2);
SCLK=0;
delay(2);
SCLK=1;
SCLK=0;
delay(2);
if(MISO==1)
{
SCLK=0;
SS=1; //關(guān)閉spi通信端
isd_stop(); //發(fā)送stop指令
return 1; //OVF為1,返回1
}
else
{
SCLK=0;
SS=1; //關(guān)閉spi通信端
isd_stop(); //發(fā)送stop指令
return 0; //OVF為0,返回0
}
}
void main(void)
{
unsigned char ovflog;
while(1)
{
if(PR==0) {delayms(8);LED1=~LED1;while(PR==0);}
if(LED1==0)//如果PR=0則轉(zhuǎn)入錄音部分
{
if(AN==0)
{
isd_powerup(); //AN鍵按下,ISD上電并延遲50ms
isd_stopwrdn();
isd_powerup();
LED1=0;//表示錄音模式
delayms(500); //延遲500ms錄音
isd_setrec(0x00,0x00); //發(fā)送0x0000h地址的setplay指令
do
{
isd_rec(); //發(fā)送rec指令
while(AN==0) //等待錄音完畢
{
if(INT==0) //如果芯片溢出,進(jìn)行LED閃爍提示,
isd_overflow(); //如果取消錄音(松開(kāi)AN鍵)則停止錄音,芯片復(fù)位
}
if(INT==0)
break;
LED=1; //錄音完畢,LED熄滅
isd_stop(); //發(fā)送停止命令
while(AN==1) //如果AN再次按下,開(kāi)始錄制下一段語(yǔ)音
{
if(isd_stop==0) //如果按下STOP按鍵,則芯片復(fù)位
break;
if(AN==0)
delayms(500);
}
}
while(AN==0);
}
}
if(LED1==1)//如果PR=0則轉(zhuǎn)入放音部分 //如果PR==1則轉(zhuǎn)入放音部分
{
if(AN==0)
{
isd_powerup(); //AN鍵按下,ISD上電并延遲50ms
isd_stopwrdn();
isd_powerup();
LED1=1;//表示錄音模式
while(AN==0)
{;}
isd_setplay(0x00,0x00); //發(fā)送setplay指令,從0x0000地址開(kāi)始放音
do
{
isd_play(); //發(fā)送放音指令
delay(20);
while(INT==1) //等待放音完畢的EOM中斷信號(hào)
{;}
LED=1;
isd_stop(); //放音完畢,發(fā)送stop指令
if (ovflog=chk_isdovf()) //檢查芯片是否溢出 ,如溢出則停止放音,芯片復(fù)位
break;
while(AN==1) //等待AN鍵再次按下
{
if(isd_stop==0)
break;
if(AN==0)
delayms(20);
}
}
while(AN==0); // AN鍵再次按下,播放下一段語(yǔ)音
// isd_stop();
// isd_stopwrdn();
}
}
}
?SPI(串行外設(shè)接口)
ISD4004 工作于SPI 串行接口。SPI 協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI 移位寄存器在SCLK 的下降沿動(dòng)作,因此對(duì)ISD4004 而言,在時(shí)鐘止升沿鎖存MOSI 引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO 引腳。協(xié)議的具體內(nèi)容為:
1.所有串行數(shù)據(jù)傳輸開(kāi)始于SS 下降沿。
2.SS 在傳輸期間必須保持為低電平,在兩條指令之間則保持為高電平。
3.數(shù)據(jù)在時(shí)鐘上升沿移入,在下降沿移出。
4.SS 變低,輸入指令和地址后,ISD 才能開(kāi)始錄放操作。
5.指令格式是(8 位控制碼)加(16 位地址碼)。
6.ISD 的任何操作(含快進(jìn))如果遇到EOM 或OVF,則產(chǎn)生一個(gè)中斷,該中斷狀態(tài)在下一個(gè)SPI 周期開(kāi)始時(shí)被清除。
7.使用"讀"指令使中斷狀態(tài)位移出ISD 的MISO 引腳時(shí),控制及地址數(shù)據(jù)也應(yīng)同步從MOSI 端移入。因此要注意移入的數(shù)據(jù)是否與器件當(dāng)前進(jìn)行的操作兼容。當(dāng)然,也允許在一個(gè)SPI 周期里,同時(shí)執(zhí)行讀狀態(tài)和開(kāi)始新的操作(即新移入的數(shù)據(jù)與器件當(dāng)前的操作可以不兼容)。
8.所有操作在運(yùn)行位(RUN)置1 時(shí)開(kāi)始,置0 時(shí)結(jié)束。
9.所有指令都在SS 端上升沿開(kāi)始執(zhí)行。
用戶不必知道信息的確切地址,就能快進(jìn)跳過(guò)一條信息。信息快進(jìn)只用于放音模式。放音速度是正
常的160 倍,遇到EOM 后停止,然后內(nèi)部地址計(jì)數(shù)器加1,指向下條信息的開(kāi)始處。
器件延時(shí)TPUD(8kHz 采樣時(shí),約為25 毫秒)后才能開(kāi)始操作。因此,用戶發(fā)完上電指令后,必須等待
TPUD,才能發(fā)出一條操作指令。
例如,從00 從處發(fā)音,應(yīng)遵循如下時(shí)序:
1. 發(fā)POWERUP 命令;
2. 等待TPUD(上電延時(shí));
3. 發(fā)地址值為00 的SETPLAY 命令;
4. 發(fā)PLAY 命令。
器件會(huì)從此00 地址開(kāi)始放音,當(dāng)出現(xiàn)EOM 時(shí),立即中斷,停止放音。
如果從00 處錄音,則按以下時(shí)序:
1. 發(fā)POWER UP 命令;
2. 等待TPUD(上電延時(shí));
3. 發(fā)POWER UP 命令
4. 等待2 倍TPUD;
5. 發(fā)地址值為00 的SETREC 命令;
6. 發(fā)REC 命令。
器件便從00 地址開(kāi)始錄音,一直到出現(xiàn)OVF(存貯器末尾)時(shí),錄音停止。
ISD4002/4003/4004芯片參數(shù)表
型號(hào) | 存儲(chǔ)時(shí)間 (秒) | 可分 段數(shù) | 信息分辯 率(毫秒) | 采樣頻 率(HZ) | 濾波器 帶寬(HZ) | 控制碼+地址位 |
ISD4002-120 | 120 | 600 | 200 | 8.0K | 3.4K | 5+11 |
ISD4002-180 | 180 | 600 | 300 | 5.3k | 2.3k | 5+11 |
ISD4002-240 | 240 | 600 | 400 | 4.0k | 1.7k | 5+11 |
ISD4003-04 | 240 | 1200 | 200 | 8.0K | 3.4K | 5+11 |
ISD4003-06 | 360 | 1200 | 300 | 5.3K | 2.3K | 5+11 |
ISD4003-08 | 480 | 1200 | 400 | 4.0K | 1.7K | 5+11 |
ISD4004-08 | 480 | 2400 | 200 | 8.0K | 3.4K | 8+16 |
ISD4004-16 | 960 | 2400 | 400 | 4.0K | 1.7K | 8+16 |
以上芯片由ISD3340K編程拷貝機(jī)編程、拷貝。 |
************
// 主程序
//
// 功能:1.錄音時(shí),按住AN鍵,LED點(diǎn)亮開(kāi)始錄音,松開(kāi)AN即可停止錄音
// 再次按下AN鍵,LED點(diǎn)亮開(kāi)始錄第二段音,依次類推,直到芯片溢出。
// 按stop鍵芯片復(fù)位
// 2.放音時(shí),按一下AN鍵,即播放一段語(yǔ)音。 按stop鍵芯片復(fù)位。
//************************************************************************
#include <reg52.h>
sbit SS =P1^0; //片選
sbit MOSI=P1^1; //數(shù)據(jù)輸入
sbit MISO=P1^2; //數(shù)據(jù)輸出
sbit SCLK=P1^3; //ISD4004時(shí)鐘
sbit INT =P1^4; //中斷
sbit LED =P1^7; //指示燈
sbit LED1=P1^6; //指示燈:亮是錄音/不亮是放音
sbit PR =P3^3; //錄音和放音選擇開(kāi)關(guān)
sbit STOP=P3^4; //復(fù)位
sbit AN =P3^5; //執(zhí)行
void delay(unsigned int time) //延遲n微秒
{
while(time!=0)
{
time--;
}
}
void delayms(unsigned int time) //延遲n毫秒
{
TMOD=0x01;
for(time;time>0;time--)
{
TH0=0xfc;
TL0=0x18;
TR0=1;
while(TF0!=1)
{;}
TF0=0;
TR0=0;
}
}
void isd_send(unsigned char isdx)//spi串行發(fā)送子程序,8位數(shù)據(jù)
{
unsigned char isx_counter;
SS=0;//ss=0,打開(kāi)spi通信端
SCLK=0;
for(isx_counter=0;isx_counter<8;isx_counter++)//先發(fā)低位再發(fā)高位,依次發(fā)送。
{
if((isdx&0x01)==1)
MOSI=1;
else
MOSI=0;
isdx=isdx>>1;
SCLK=1;
delay(2);
SCLK=0;
delay(2);
}
}
void isd_stop()//stop指令(停止當(dāng)前操作)
{
delay(10);
isd_send(0x30);
SS=1;
delayms(50);
}
void isd_powerup()//發(fā)送上電指令
{
delay(10);
SS=0;
isd_send(0x20);
SS=1;
delayms(50);
}
void isd_stopwrdn()//發(fā)送掉電指令
{
delay(10);
isd_send(0x10);
SS=1;
delayms(50);
}
void isd_play()//發(fā)送play指令
{
LED=0;
isd_send(0xf0);
SS=1;
}
void isd_rec()//發(fā)送rec指令
{
LED=0;
isd_send(0xb0);
SS=1;
}
void isd_setplay(unsigned char adl,unsigned char adh)//發(fā)送setplay指令
{
delayms(1);
isd_send(adl); //發(fā)送放音起始地址低位
delay(2);
isd_send(adh); //發(fā)送放音起始地址高位
delay(2);
isd_send(0xe0); //發(fā)送setplay指令字節(jié)
SS=1;
}
void isd_setrec(unsigned char adl,unsigned char adh)//發(fā)送setrec指令
{
delayms(1);
isd_send(adl); //發(fā)送放音起始地址低位
delay(2);
isd_send(adh); //發(fā)送放音起始地址高位
delay(2);
isd_send(0xa0); //發(fā)送setplay指令字節(jié)
SS=1;
}
void isd_overflow()//芯片溢出,LED閃爍提醒停止錄音
{
while(AN==0)
{
LED=1;
delayms(300);
LED=0;
delayms(300);
}
}
unsigned char chk_isdovf()//檢查芯片是否溢出(讀OVF,并返回OVF值)
{
SS=0;
delay(2);
SCLK=0;
delay(2);
SCLK=1;
SCLK=0;
delay(2);
if(MISO==1)
{
SCLK=0;
SS=1; //關(guān)閉spi通信端
isd_stop(); //發(fā)送stop指令
return 1; //OVF為1,返回1
}
else
{
SCLK=0;
SS=1; //關(guān)閉spi通信端
isd_stop(); //發(fā)送stop指令
return 0; //OVF為0,返回0
}
}
void main(void)
{
unsigned char ovflog;
while(1)
{
if(PR==0) {delayms(8);LED1=~LED1;while(PR==0);}
if(LED1==0)//如果PR=0則轉(zhuǎn)入錄音部分
{
if(AN==0)
{
isd_powerup(); //AN鍵按下,ISD上電并延遲50ms
isd_stopwrdn();
isd_powerup();
LED1=0;//表示錄音模式
delayms(500); //延遲500ms錄音
isd_setrec(0x00,0x00); //發(fā)送0x0000h地址的setplay指令
do
{
isd_rec(); //發(fā)送rec指令
while(AN==0) //等待錄音完畢
{
if(INT==0) //如果芯片溢出,進(jìn)行LED閃爍提示,
isd_overflow(); //如果取消錄音(松開(kāi)AN鍵)則停止錄音,芯片復(fù)位
}
if(INT==0)
break;
LED=1; //錄音完畢,LED熄滅
isd_stop(); //發(fā)送停止命令
while(AN==1) //如果AN再次按下,開(kāi)始錄制下一段語(yǔ)音
{
if(isd_stop==0) //如果按下STOP按鍵,則芯片復(fù)位
break;
if(AN==0)
delayms(500);
}
}
while(AN==0);
}
}
if(LED1==1)//如果PR=0則轉(zhuǎn)入放音部分 //如果PR==1則轉(zhuǎn)入放音部分
{
if(AN==0)
{
isd_powerup(); //AN鍵按下,ISD上電并延遲50ms
isd_stopwrdn();
isd_powerup();
LED1=1;//表示錄音模式
while(AN==0)
{;}
isd_setplay(0x00,0x00); //發(fā)送setplay指令,從0x0000地址開(kāi)始放音
do
{
isd_play(); //發(fā)送放音指令
delay(20);
while(INT==1) //等待放音完畢的EOM中斷信號(hào)
{;}
LED=1;
isd_stop(); //放音完畢,發(fā)送stop指令
if (ovflog=chk_isdovf()) //檢查芯片是否溢出 ,如溢出則停止放音,芯片復(fù)位
break;
while(AN==1) //等待AN鍵再次按下
{
if(isd_stop==0)
break;
if(AN==0)
delayms(20);
}
}
while(AN==0); // AN鍵再次按下,播放下一段語(yǔ)音
// isd_stop();
// isd_stopwrdn();
}
}
}
格式:pdf
大?。?span id="h62ziy5" class="single-tag-height">169KB
頁(yè)數(shù): 17頁(yè)
評(píng)分: 4.7
A、銅制閥門(mén)(公稱壓力) 適用于公稱直徑 DN≤50的管道系統(tǒng),其中 1、給水系統(tǒng)(冷水系統(tǒng)、熱水系統(tǒng)、中水系統(tǒng)) 1)管徑≤ DN25的管道上:若有調(diào)節(jié)流量要求時(shí),選用銅截止閥;否則,選用銅 閘閥; 2)管徑 DN 32≤DN≤DN50的管道上:銅閘閥。 2、消防水系統(tǒng)(包括消火栓系統(tǒng)、噴灑系統(tǒng)、消防水泡系統(tǒng)): 1)管徑≤ DN50的管道上:銅閘閥。 3、空調(diào)水系統(tǒng) : 1)管徑 DN≤25的管道上(連接風(fēng)機(jī)盤(pán)管的支管):銅閘閥或銅球閥; 2)管徑 32≤DN≤50的管道上:采用銅閘閥; 3)風(fēng)機(jī)盤(pán)管進(jìn)出水處:不銹鋼波紋連接管。 4、采暖系統(tǒng): 1)管徑≤ DN25的管道上:若有調(diào)節(jié)流量要求時(shí),選用銅截止閥;否則,選用銅 閘閥; 2)管徑 DN≤50的管道上:銅閘閥; 3)采暖入戶小室采用黃銅鎖閉閘閥。 5、蒸汽系統(tǒng) 1)管徑 DN≤50的管道上銅截止閥。 B、鋼制閥門(mén)(球墨鑄鐵或鑄鋼
格式:pdf
大?。?span id="gmk3gl1" class="single-tag-height">169KB
頁(yè)數(shù): 26頁(yè)
評(píng)分: 4.5
崗位描述范文 文秘崗位描述文 秘 崗 位 描 述尊敬的各位領(lǐng)導(dǎo):大家好!我叫 XXX,在醫(yī)院辦公室從事文秘工作。 醫(yī)院辦公室工作綜合性強(qiáng),職能多樣,承擔(dān)著上情下達(dá)、會(huì)議組 織、職工體檢、后勤保障、網(wǎng)絡(luò)維護(hù)等職責(zé),下面我介紹下自己的崗 位職責(zé):一、崗位職責(zé): 1、聽(tīng)從辦公室主任的領(lǐng)導(dǎo),完成各項(xiàng)工作任 務(wù),協(xié)助辦公室主任做好日常行政事務(wù); 2、負(fù)責(zé)醫(yī)院各類公文、 總結(jié)、 請(qǐng)示、匯報(bào)等文字材料的撰寫(xiě)及上報(bào)工作; 3、責(zé)醫(yī)院文件檔案的收集、 整理、保管、統(tǒng)計(jì)、清理和提閱,歸檔工作;對(duì)歸檔文件,以件為單 位進(jìn)行系統(tǒng)、科學(xué)地分類整理,以年度為單位排序、存放,方便領(lǐng)導(dǎo) 及時(shí)調(diào)取。 4、協(xié)助、籌備醫(yī)院重大活動(dòng)和會(huì)務(wù)安排。 全面而細(xì)致的做好會(huì)前準(zhǔn)備工作和會(huì)后的整理工作,為會(huì)議的順 利進(jìn)行提供全力保障。 5、接聽(tīng)電話,做好記錄。 需要轉(zhuǎn)達(dá)時(shí)要認(rèn)真記錄對(duì)方的身份和要轉(zhuǎn)達(dá)的內(nèi)容,根據(jù)具體情 況,清楚、準(zhǔn)確、迅速地