基于K9F6408U0A和SPDS202A的數碼錄音系統設計原理
表1 命令選擇信號線(xiàn)的功能
TADD7~TADD0為8位數據線(xiàn)。它在工作時(shí),主控制器的SPDS202A發(fā)送三個(gè)字節的數據,其中,第一個(gè)字節總是0FFh,第二個(gè)字節為命令碼低字節,第三個(gè)字節命令碼高字節;然后再由主控制器接收從SPDS202A返回的兩個(gè)字節的數據。二者之間的通信程序如下(用C51編寫(xiě)):
Void Mcu_202_Comm(void) /*MUC和SPDS202A通信程序*/
{via=0xFF; /*第一字節送0FFh*/
SendOneData( ); /*調用發(fā)送一字節數據子程序*/
Via=CMDL; /*第二字節送命令碼低字節*/
SendOneData( );
Via_CMDH; /*第三字節送命令碼高字節*/
SendOneData( );
ECHOL=ReadOneData( ); /*讀返回數據*/
ECHOH=ReadOneData( );
}
下面以錄音功能的實(shí)現程序為例,可以很清楚地說(shuō)明系統是如何工作的。
Void Record(void)
{CMDL=0x00; /*發(fā)送錄音命令碼*/
CMDH=0x10;
Mcu_202_Comm( );
If(Err=1) /*如果發(fā)生錯誤,則返回*/
{Err=0;
return;
}
}
可以看出,系統是通過(guò)主控制器向SPDS202A發(fā)送一系列控制命令碼來(lái)實(shí)現其功能的。
4 復制功能的實(shí)現
為了能夠保存和備份所錄信息,應當考慮實(shí)現一種拷貝功能,即將一片 K9F6408U0A 上的信息完全復制到另一片上。實(shí)現這一功能的硬件接口電路如圖3所示。圖中,兩片 K9F6408U0A 除片選線(xiàn)分開(kāi)外,其余信號線(xiàn)均復用。采用如下程序可實(shí)現復制功能:
void Copy(void)
{FCEB2=1;
FCEB1=0; /*選中第一片FLASH*/
For(RowAdd2=0;RowAdd264;RowAdd2+ +)
{for(RowAdd1=0;RowAdd1256;RowAdd1+ +)
{BlockErase ( );} /*調用塊擦除子函數,將第一片FLASH內容擦除*/
}
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( ); /*調用從第一片FLASH讀數據子函數*/
CE2=1;
CE1=0;
SendData( );/*調用向第二片FLASH頁(yè)寄存器送數據子函數*/
評論