●單片8 至16 分鐘語音錄放
●內(nèi)置微控制器串行通信接口
●3V 單電源工作
●多段信息處理
●工作電流25-30mA,維持電流1μA
●不耗電信息保存100 年(典型值)
●高質(zhì)量、自然的語音還原技術
●10 萬次錄音周期(典型值)
●自動靜噪功能
●片內(nèi)免調(diào)整時鐘,可選用外部時鐘
型 號 |
時 間 |
輸入采樣 |
典型帶寬 |
最大段數(shù) |
最小段長 |
外部鐘頻 |
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,單片錄放時間8 至16 分鐘,音質(zhì)好,適用于移動電話及其他便攜式電子產(chǎn)品中。芯片采用CMOS 技術,內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動靜噪及高密度多電平閃爍存貯陳列。芯片設計是基于所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI 或Microwire)送入。芯片采用多電平直接模擬量存儲技術, 每個采樣值直接存貯在片內(nèi)FLASH存貯器中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"。采樣頻率可為 4.0,5.3,6.4,8.0kHz,頻率越低,錄放時間越長,而音質(zhì)則有所下降,片內(nèi)信息存于FLASH存貯器中,可在斷電情況下保存100 年(典型值),反復錄音10 萬次。
●單片8 至16 分鐘語音錄放
●內(nèi)置微控制器串行通信接口
●3V 單電源工作
●多段信息處理
●工作電流25-30mA,維持電流1μA
●不耗電信息保存100 年(典型值)
●高質(zhì)量、自然的語音還原技術
●10 萬次錄音周期(典型值)
●自動靜噪功能
●片內(nèi)免調(diào)整時鐘,可選用外部時鐘
型 號 | 時 間 | 輸入采樣 | 典型帶寬 | 最大段數(shù) | 最小段長 | 外部鐘頻 |
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,單片錄放時間8 至16 分鐘,音質(zhì)好,適用于移動電話及其他便攜式電子產(chǎn)品中。芯片采用CMOS 技術,內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動靜噪及高密度多電平閃爍存貯陳列。芯片設計是基于所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI 或Microwire)送入。芯片采用多電平直接模擬量存儲技術, 每個采樣值直接存貯在片內(nèi)FLASH存貯器中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"。采樣頻率可為 4.0,5.3,6.4,8.0kHz,頻率越低,錄放時間越長,而音質(zhì)則有所下降,片內(nèi)信息存于FLASH存貯器中,可在斷電情況下保存100 年(典型值),反復錄音10 萬次。
電源:(VCCA,VCCD) 為使噪聲最小,芯片的模擬和數(shù)字電路使用不同的電源總線,并且分別引到外封裝的不同管腳上,模擬和數(shù)字電源端最好分別走線,盡可能在靠近供電端處相連,而去耦電容應盡量靠近器件。
地線:(VSSA,VSSD) 芯片內(nèi)部的模擬和數(shù)字電路也使用不同的地線。
同相模擬輸入(ANA IN ) 這是錄音信號的同相輸入端。輸入放大器可用單端或差分驅動。單端輸入時,信號由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3KΩ電阻輸入阻抗決定了芯片頻帶的低端截止頻率。差分驅動時,信號最大幅度為峰峰值16mV,為ISD33000 系列相同。
反相模擬輸入(ANA IN-) 差分驅動時,這是錄音信號的反相輸入端。信號通過耦合電容輸入,最大幅度為峰峰值16mV
音頻輸出(AUD OUT) 提供音頻輸出,可驅動5KΩ的負載。
片選(SS) 此端為低,即向該ISD4004 芯片發(fā)送指令,兩條指令之間為高電平。
串行輸入(MOSI) 此端為串行輸入端,主控制器應在串行時鐘上升沿之前半個周期將數(shù)據(jù)放到本端,供ISD 輸入。
串行輸出(MISO) ISD 的串行輸出端。ISD 未選中時,本端呈高阻態(tài)。
串行時鐘(SCLK) ISD 的時鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI 和MISO 的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。
中斷(/INT) 本端為漏極開路輸出。ISD 在任何操作(包括快進)中檢測到EOM 或OVF 時,本端變低并保持。中斷狀態(tài)在下一個SPI 周期開始時清除。中斷狀態(tài)也可用RINT 指令讀取。OVF 標志----指示ISD的錄、放操作已到達存儲器的未尾。EOM 標志----只在放音中檢測到內(nèi)部的EOM 標志時,此狀態(tài)位才置1。
行地址時鐘(RAC) 漏極開路輸出。每個RAC 周期表示ISD 存儲器的操作進行了一行(ISD4004 系列中的
存貯器共2400 行)。該信號175ms 保持高電平,低電平為25ms??爝M模式下,RAC 的218.75μs 是高電平,31.25μs 為低電平。該端可用于存儲管理技術。
外部時鐘(XCLK) 本端內(nèi)部有下拉元件。芯片內(nèi)部的采樣時鐘在出廠前已調(diào)校,誤差在 1%內(nèi)。商業(yè)級芯片在整個溫度和電壓范圍內(nèi), 頻率變化在 2.25%內(nèi)。工業(yè)級芯片在整個溫度和電壓范圍內(nèi),頻率變化在-6/ 4%內(nèi),此時建議使用穩(wěn)壓電源。若要求更高精度,可從本端輸入外部時鐘(如前表所列)。由于內(nèi)部的防混淆及平滑濾波器已設定,故上述推薦的時鐘頻率不應改變。輸入時鐘的占空比無關緊要,因內(nèi)部首先進行了分頻。在不外接地時鐘時,此端必須接地。
自動靜噪(AMCAP) 當錄音信號電平下降到內(nèi)部設定的某一閾值以下時,自動靜噪功能使信號衰弱,這樣有助于養(yǎng)活無信號(靜音)時的噪聲。通常本端對地接1mF 的電容,構成內(nèi)部信號電平峰值檢測電路的一部分。檢出的峰值電平與內(nèi)部設定的閾值作比較,決定自動靜噪功能的翻轉點。大信號時,自動靜噪電路不衰減,靜音時衰減6dB。1mF 的電容也影響自動靜噪電路對信號幅度的響應速度。本端接VCCA 則禁止自動靜噪。
只要接在普通I/O口就可以了,任意接,主要是編程時你要知道你接的哪個口就行了。
報價大概在25~40元元一千克。鋁合金密度低,但強度比較高,接近或超過優(yōu)質(zhì)鋼,塑性好,可加工成各種型材,具有優(yōu)良的導電性、導熱性和抗蝕性,工業(yè)上廣泛使用,使用量僅次于鋼。 &...
科勒蹲便器K-4004T-0 369.00 科勒后排水蹲便器  ...
電源:(VCCA,VCCD) 為使噪聲最小,芯片的模擬和數(shù)字電路使用不同的電源總線,并且分別引到外封裝的不同管腳上,模擬和數(shù)字電源端最好分別走線,盡可能在靠近供電端處相連,而去耦電容應盡量靠近器件。
地線:(VSSA,VSSD) 芯片內(nèi)部的模擬和數(shù)字電路也使用不同的地線。
同相模擬輸入(ANA IN+) 這是錄音信號的同相輸入端。輸入放大器可用單端或差分驅動。單端輸入時,信號由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3KΩ電阻輸入阻抗決定了芯片頻帶的低端截止頻率。差分驅動時,信號最大幅度為峰峰值16mV,為ISD33000 系列相同。
反相模擬輸入(ANA IN-) 差分驅動時,這是錄音信號的反相輸入端。信號通過耦合電容輸入,最大幅度為峰峰值16mV
音頻輸出(AUD OUT) 提供音頻輸出,可驅動5KΩ的負載。
片選(SS) 此端為低,即向該ISD4004 芯片發(fā)送指令,兩條指令之間為高電平。
串行輸入(MOSI) 此端為串行輸入端,主控制器應在串行時鐘上升沿之前半個周期將數(shù)據(jù)放到本端,供ISD 輸入。
串行輸出(MISO) ISD 的串行輸出端。ISD 未選中時,本端呈高阻態(tài)。
串行時鐘(SCLK) ISD 的時鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI 和MISO 的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。
中斷(/INT) 本端為漏極開路輸出。ISD 在任何操作(包括快進)中檢測到EOM 或OVF 時,本端變低并保持。中斷狀態(tài)在下一個SPI 周期開始時清除。中斷狀態(tài)也可用RINT 指令讀取。OVF 標志----指示ISD的錄、放操作已到達存儲器的未尾。EOM 標志----只在放音中檢測到內(nèi)部的EOM 標志時,此狀態(tài)位才置1。
行地址時鐘(RAC) 漏極開路輸出。每個RAC 周期表示ISD 存儲器的操作進行了一行(ISD4004 系列中的
存貯器共2400 行)。該信號175ms 保持高電平,低電平為25ms??爝M模式下,RAC 的218.75μs 是高電平,31.25μs 為低電平。該端可用于存儲管理技術。
外部時鐘(XCLK) 本端內(nèi)部有下拉元件。芯片內(nèi)部的采樣時鐘在出廠前已調(diào)校,誤差在 +1%內(nèi)。商業(yè)級芯片在整個溫度和電壓范圍內(nèi), 頻率變化在+2.25%內(nèi)。工業(yè)級芯片在整個溫度和電壓范圍內(nèi),頻率變化在-6/+4%內(nèi),此時建議使用穩(wěn)壓電源。若要求更高精度,可從本端輸入外部時鐘(如前表所列)。由于內(nèi)部的防混淆及平滑濾波器已設定,故上述推薦的時鐘頻率不應改變。輸入時鐘的占空比無關緊要,因內(nèi)部首先進行了分頻。在不外接地時鐘時,此端必須接地。
自動靜噪(AMCAP) 當錄音信號電平下降到內(nèi)部設定的某一閾值以下時,自動靜噪功能使信號衰弱,這樣有助于養(yǎng)活無信號(靜音)時的噪聲。通常本端對地接1mF 的電容,構成內(nèi)部信號電平峰值檢測電路的一部分。檢出的峰值電平與內(nèi)部設定的閾值作比較,決定自動靜噪功能的翻轉點。大信號時,自動靜噪電路不衰減,靜音時衰減6dB。1mF 的電容也影響自動靜噪電路對信號幅度的響應速度。本端接VCCA 則禁止自動靜噪。
ISD4004 工作于SPI 串行接口。SPI 協(xié)議是一個同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI 移位寄存器在SCLK 的下降沿動作,因此對ISD4004 而言,在時鐘上升沿鎖存MOSI 引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO 引腳。協(xié)議的具體內(nèi)容為:
1.所有串行數(shù)據(jù)傳輸開始于SS 下降沿。
2.SS 在傳輸期間必須保持為低電平,在兩條指令之間則保持為高電平。
3.數(shù)據(jù)在時鐘上升沿移入,在下降沿移出。
4.SS 變低,輸入指令和地址后,ISD 才能開始錄放操作。
5.指令格式是(8 位控制碼)加(16 位地址碼)。
6.ISD 的任何操作(含快進)如果遇到EOM 或OVF,則產(chǎn)生一個中斷,該中斷狀態(tài)在下一個SPI 周期開始時被清除。
7.使用"讀"指令使中斷狀態(tài)位移出ISD 的MISO 引腳時,控制及地址數(shù)據(jù)也應同步從MOSI 端移入。因此要注意移入的數(shù)據(jù)是否與器件當前進行的操作兼容。當然,也允許在一個SPI 周期里,同時執(zhí)行讀狀態(tài)和開始新的操作(即新移入的數(shù)據(jù)與器件當前的操作可以不兼容)。
8.所有操作在運行位(RUN)置1 時開始,置0 時結束。
9.所有指令都在SS 端上升沿開始執(zhí)行。
用戶不必知道信息的確切地址,就能快進跳過一條信息。信息快進只用于放音模式。放音速度是正
常的160 倍,遇到EOM 后停止,然后內(nèi)部地址計數(shù)器加1,指向下條信息的開始處。
器件延時TPUD(8kHz 采樣時,約為25 毫秒)后才能開始操作。因此,用戶發(fā)完上電指令后,必須等待
TPUD,才能發(fā)出一條操作指令。
例如,從00 從處發(fā)音,應遵循如下時序:
1. 發(fā)POWERUP 命令;
2. 等待TPUD(上電延時);
3. 發(fā)地址值為00 的SETPLAY 命令;
4. 發(fā)PLAY 命令。
器件會從此00 地址開始放音,當出現(xiàn)EOM 時,立即中斷,停止放音。
如果從00 處錄音,則按以下時序:
1. 發(fā)POWER UP 命令;
2. 等待TPUD(上電延時);
3. 發(fā)POWER UP 命令
4. 等待2 倍TPUD;
5. 發(fā)地址值為00 的SETREC 命令;
6. 發(fā)REC 命令。
器件便從00 地址開始錄音,一直到出現(xiàn)OVF(存貯器末尾)時,錄音停止。
ISD4002/4003/4004芯片參數(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編程拷貝機編程、拷貝。 |
************
// 主程序
//
// 功能:1.錄音時,按住AN鍵,LED點亮開始錄音,松開AN即可停止錄音
// 再次按下AN鍵,LED點亮開始錄第二段音,依次類推,直到芯片溢出。
// 按stop鍵芯片復位
// 2.放音時,按一下AN鍵,即播放一段語音。 按stop鍵芯片復位。
//************************************************************************
#include
sbit SS =P1^0; //片選
sbit MOSI=P1^1; //數(shù)據(jù)輸入
sbit MISO=P1^2; //數(shù)據(jù)輸出
sbit SCLK=P1^3; //ISD4004時鐘
sbit INT =P1^4; //中斷
sbit LED =P1^7; //指示燈
sbit LED1=P1^6; //指示燈:亮是錄音/不亮是放音
sbit PR =P3^3; //錄音和放音選擇開關
sbit STOP=P3^4; //復位
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,打開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指令(停止當前操作)
{
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; //關閉spi通信端
isd_stop(); //發(fā)送stop指令
return 1; //OVF為1,返回1
}
else
{
SCLK=0;
SS=1; //關閉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則轉入錄音部分
{
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) //如果芯片溢出,進行LED閃爍提示,
isd_overflow(); //如果取消錄音(松開AN鍵)則停止錄音,芯片復位
}
if(INT==0)
break;
LED=1; //錄音完畢,LED熄滅
isd_stop(); //發(fā)送停止命令
while(AN==1) //如果AN再次按下,開始錄制下一段語音
{
if(isd_stop==0) //如果按下STOP按鍵,則芯片復位
break;
if(AN==0)
delayms(500);
}
}
while(AN==0);
}
}
if(LED1==1)//如果PR=0則轉入放音部分 //如果PR==1則轉入放音部分
{
if(AN==0)
{
isd_powerup(); //AN鍵按下,ISD上電并延遲50ms
isd_stopwrdn();
isd_powerup();
LED1=1;//表示錄音模式
while(AN==0)
{;}
isd_setplay(0x00,0x00); //發(fā)送setplay指令,從0x0000地址開始放音
do
{
isd_play(); //發(fā)送放音指令
delay(20);
while(INT==1) //等待放音完畢的EOM中斷信號
{;}
LED=1;
isd_stop(); //放音完畢,發(fā)送stop指令
if (ovflog=chk_isdovf()) //檢查芯片是否溢出 ,如溢出則停止放音,芯片復位
break;
while(AN==1) //等待AN鍵再次按下
{
if(isd_stop==0)
break;
if(AN==0)
delayms(20);
}
}
while(AN==0); // AN鍵再次按下,播放下一段語音
// isd_stop();
// isd_stopwrdn();
}
}
}
?SPI(串行外設接口)
ISD4004 工作于SPI 串行接口。SPI 協(xié)議是一個同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI 移位寄存器在SCLK 的下降沿動作,因此對ISD4004 而言,在時鐘止升沿鎖存MOSI 引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO 引腳。協(xié)議的具體內(nèi)容為:
1.所有串行數(shù)據(jù)傳輸開始于SS 下降沿。
2.SS 在傳輸期間必須保持為低電平,在兩條指令之間則保持為高電平。
3.數(shù)據(jù)在時鐘上升沿移入,在下降沿移出。
4.SS 變低,輸入指令和地址后,ISD 才能開始錄放操作。
5.指令格式是(8 位控制碼)加(16 位地址碼)。
6.ISD 的任何操作(含快進)如果遇到EOM 或OVF,則產(chǎn)生一個中斷,該中斷狀態(tài)在下一個SPI 周期開始時被清除。
7.使用"讀"指令使中斷狀態(tài)位移出ISD 的MISO 引腳時,控制及地址數(shù)據(jù)也應同步從MOSI 端移入。因此要注意移入的數(shù)據(jù)是否與器件當前進行的操作兼容。當然,也允許在一個SPI 周期里,同時執(zhí)行讀狀態(tài)和開始新的操作(即新移入的數(shù)據(jù)與器件當前的操作可以不兼容)。
8.所有操作在運行位(RUN)置1 時開始,置0 時結束。
9.所有指令都在SS 端上升沿開始執(zhí)行。
用戶不必知道信息的確切地址,就能快進跳過一條信息。信息快進只用于放音模式。放音速度是正
常的160 倍,遇到EOM 后停止,然后內(nèi)部地址計數(shù)器加1,指向下條信息的開始處。
器件延時TPUD(8kHz 采樣時,約為25 毫秒)后才能開始操作。因此,用戶發(fā)完上電指令后,必須等待
TPUD,才能發(fā)出一條操作指令。
例如,從00 從處發(fā)音,應遵循如下時序:
1. 發(fā)POWERUP 命令;
2. 等待TPUD(上電延時);
3. 發(fā)地址值為00 的SETPLAY 命令;
4. 發(fā)PLAY 命令。
器件會從此00 地址開始放音,當出現(xiàn)EOM 時,立即中斷,停止放音。
如果從00 處錄音,則按以下時序:
1. 發(fā)POWER UP 命令;
2. 等待TPUD(上電延時);
3. 發(fā)POWER UP 命令
4. 等待2 倍TPUD;
5. 發(fā)地址值為00 的SETREC 命令;
6. 發(fā)REC 命令。
器件便從00 地址開始錄音,一直到出現(xiàn)OVF(存貯器末尾)時,錄音停止。
ISD4002/4003/4004芯片參數(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編程拷貝機編程、拷貝。 |
************
// 主程序
//
// 功能:1.錄音時,按住AN鍵,LED點亮開始錄音,松開AN即可停止錄音
// 再次按下AN鍵,LED點亮開始錄第二段音,依次類推,直到芯片溢出。
// 按stop鍵芯片復位
// 2.放音時,按一下AN鍵,即播放一段語音。 按stop鍵芯片復位。
//************************************************************************
#include <reg52.h>
sbit SS =P1^0; //片選
sbit MOSI=P1^1; //數(shù)據(jù)輸入
sbit MISO=P1^2; //數(shù)據(jù)輸出
sbit SCLK=P1^3; //ISD4004時鐘
sbit INT =P1^4; //中斷
sbit LED =P1^7; //指示燈
sbit LED1=P1^6; //指示燈:亮是錄音/不亮是放音
sbit PR =P3^3; //錄音和放音選擇開關
sbit STOP=P3^4; //復位
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,打開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指令(停止當前操作)
{
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; //關閉spi通信端
isd_stop(); //發(fā)送stop指令
return 1; //OVF為1,返回1
}
else
{
SCLK=0;
SS=1; //關閉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則轉入錄音部分
{
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) //如果芯片溢出,進行LED閃爍提示,
isd_overflow(); //如果取消錄音(松開AN鍵)則停止錄音,芯片復位
}
if(INT==0)
break;
LED=1; //錄音完畢,LED熄滅
isd_stop(); //發(fā)送停止命令
while(AN==1) //如果AN再次按下,開始錄制下一段語音
{
if(isd_stop==0) //如果按下STOP按鍵,則芯片復位
break;
if(AN==0)
delayms(500);
}
}
while(AN==0);
}
}
if(LED1==1)//如果PR=0則轉入放音部分 //如果PR==1則轉入放音部分
{
if(AN==0)
{
isd_powerup(); //AN鍵按下,ISD上電并延遲50ms
isd_stopwrdn();
isd_powerup();
LED1=1;//表示錄音模式
while(AN==0)
{;}
isd_setplay(0x00,0x00); //發(fā)送setplay指令,從0x0000地址開始放音
do
{
isd_play(); //發(fā)送放音指令
delay(20);
while(INT==1) //等待放音完畢的EOM中斷信號
{;}
LED=1;
isd_stop(); //放音完畢,發(fā)送stop指令
if (ovflog=chk_isdovf()) //檢查芯片是否溢出 ,如溢出則停止放音,芯片復位
break;
while(AN==1) //等待AN鍵再次按下
{
if(isd_stop==0)
break;
if(AN==0)
delayms(20);
}
}
while(AN==0); // AN鍵再次按下,播放下一段語音
// isd_stop();
// isd_stopwrdn();
}
}
}
格式:pdf
大?。?span id="zln9rfp" class="single-tag-height">117KB
頁數(shù): 3頁
評分: 4.4
格式:pdf
大?。?span id="jbbhlhp" class="single-tag-height">117KB
頁數(shù): 6頁
評分: 4.6
針對4004鋁合金板材邊部裂口的現(xiàn)象,從鑄造質(zhì)量、銑面質(zhì)量、鑄錠質(zhì)量全分析、板材質(zhì)量等方面對比了三種不同的生產(chǎn)工藝生產(chǎn)的4004鋁合金扁鑄錠的異同點。由試驗結果可以看出鑄造前的變質(zhì)處理是必要的,投料時使用工業(yè)硅塊和Al-Si中間合金對鑄錠質(zhì)量影響不大。