新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于K9F6408U0A和SPDS202A的数码录音系统设计原理

基于K9F6408U0A和SPDS202A的数码录音系统设计原理

作者:时间:2011-09-18来源:网络收藏

表1 命令选择信号线的功能


TADD7~TADD0为8位数据线。它在工作时,主控制器的SPDS202A发送三个字节的数据,其中,第一个字节总是0FFh,第二个字节为命令码低字节,第三个字节命令码高字节;然后再由主控制器接收从SPDS202A返回的两个字节的数据。二者之间的通信程序如下(用C51编写):

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

{via=0xFF; /*第一字节送0FFh*/

SendOneData( ); /*调用发送一字节数据子程序*/

Via=CMDL; /*第二字节送命令码低字节*/

SendOneData( );

Via_CMDH; /*第三字节送命令码高字节*/

SendOneData( );

ECHOL=ReadOneData( ); /*读返回数据*/

ECHOH=ReadOneData( );

}

下面以录音功能的实现程序为例,可以很清楚地说明系统是如何工作的。

Void Record(void)

{CMDL=0x00; /*发送录音命令码*/

CMDH=0x10;

Mcu_202_Comm( );

If(Err=1) /*如果发生错误,则返回*/

{Err=0;

return;

}

}

可以看出,系统是通过主控制器向SPDS202A发送一系列控制命令码来实现其功能的。

4 复制功能的实现

为了能够保存和备份所录信息,应当考虑实现一种拷贝功能,即将一片 K9F6408U0A 上的信息完全复制到另一片上。实现这一功能的硬件接口电路如图3所示。图中,两片 K9F6408U0A 除片选线分开外,其余信号线均复用。采用如下程序可实现复制功能:

void Copy(void)

{FCEB2=1;

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

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

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

{BlockErase ( );} /*调用块擦除子函数,将第一片内容擦除*/

}

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( ); /*调用从第一片读数据子函数*/

CE2=1;

CE1=0;

SendData( );/*调用向第二片FLASH页送数据子函数*/



评论


相关推荐

技术专区

关闭