新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于K9F6408U0A和SPDS202A的數(shù)碼錄音系統(tǒng)設(shè)計(jì)原理

基于K9F6408U0A和SPDS202A的數(shù)碼錄音系統(tǒng)設(shè)計(jì)原理

作者: 時(shí)間:2011-09-18 來源:網(wǎng)絡(luò) 收藏

表1 命令選擇信號(hào)線的功能


TADD7~TADD0為8位數(shù)據(jù)線。它在工作時(shí),主控制器的SPDS202A發(fā)送三個(gè)字節(jié)的數(shù)據(jù),其中,第一個(gè)字節(jié)總是0FFh,第二個(gè)字節(jié)為命令碼低字節(jié),第三個(gè)字節(jié)命令碼高字節(jié);然后再由主控制器接收從SPDS202A返回的兩個(gè)字節(jié)的數(shù)據(jù)。二者之間的通信程序如下(用C51編寫):

Void Mcu_202_Comm(void) /*MUC和SPDS202A通信程序*/

{via=0xFF; /*第一字節(jié)送0FFh*/

SendOneData( ); /*調(diào)用發(fā)送一字節(jié)數(shù)據(jù)子程序*/

Via=CMDL; /*第二字節(jié)送命令碼低字節(jié)*/

SendOneData( );

Via_CMDH; /*第三字節(jié)送命令碼高字節(jié)*/

SendOneData( );

ECHOL=ReadOneData( ); /*讀返回?cái)?shù)據(jù)*/

ECHOH=ReadOneData( );

}

下面以錄音功能的實(shí)現(xiàn)程序?yàn)槔?,可以很清楚地說明系統(tǒng)是如何工作的。

Void Record(void)

{CMDL=0x00; /*發(fā)送錄音命令碼*/

CMDH=0x10;

Mcu_202_Comm( );

If(Err=1) /*如果發(fā)生錯(cuò)誤,則返回*/

{Err=0;

return;

}

}

可以看出,系統(tǒng)是通過主控制器向SPDS202A發(fā)送一系列控制命令碼來實(shí)現(xiàn)其功能的。

4 復(fù)制功能的實(shí)現(xiàn)

為了能夠保存和備份所錄信息,應(yīng)當(dāng)考慮實(shí)現(xiàn)一種拷貝功能,即將一片 K9F6408U0A 上的信息完全復(fù)制到另一片上。實(shí)現(xiàn)這一功能的硬件接口電路如圖3所示。圖中,兩片 K9F6408U0A 除片選線分開外,其余信號(hào)線均復(fù)用。采用如下程序可實(shí)現(xiàn)復(fù)制功能:

void Copy(void)

{FCEB2=1;

FCEB1=0; /*選中第一片*/

For(RowAdd2=0;RowAdd264;RowAdd2+ +)

{for(RowAdd1=0;RowAdd1256;RowAdd1+ +)

{BlockErase ( );} /*調(diào)用塊擦除子函數(shù),將第一片內(nèi)容擦除*/

}

for(F1RowAdd2=0,F2RowAdd2=0;(F1RowAdd264)

(F2RowAdd264);F1RowAdd2+ +,

F2RowAdd2+ +)

For(F1RowAdd1=0,F2RowAdd1=0;

(F1RowAdd1256) (F2RowAdd2256);

F1RowAdd1+ +,F2RowAdd1+ +)

For(F1ColAdd=0,F2ColAdd=0;(F1ColAdd256) (F2ColAdd256);F1ColAdd=F1COAdd+128;F2ColAdd=F2ColAdd+128)

{CE1=1;

CE2=0;

SetPointer=0x00;

F1RdData( ); /*調(diào)用從第一片讀數(shù)據(jù)子函數(shù)*/

CE2=1;

CE1=0;

SendData( );/*調(diào)用向第二片F(xiàn)LASH頁(yè)送數(shù)據(jù)子函數(shù)*/



關(guān)鍵詞: 數(shù)碼錄音 FLASH 寄存器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉