索引数据地址

您好: 我用的是新华龙的F340的单片机,数据线接的P3口,片选信号线接P0.6,A0接P0.7,那么在程序起先CH375HM_INDEX和CH375HM_DATA分别应该定义多少呢,还有想弱弱的问一下,想暂时调试看结果的话除了这个改动外,别的相对于例子程序外没有什么改的吧

1.模块上的RD,WR,A0,CS,数据线要是直接挂在单片机总线上,根据A0,CS计算下总线地址.A0=0索引端口,A0=1数据端口.要不是挂在总线上,就不用计算这个地址,直接用模拟I/O口进行读写操做, 2.只要根据你的单片机改下硬件定义,中断脚和三个读写子函数就可以了.


请问“直接用模拟I/O口进行读写操做”,不明白啊


就是根据时序要求,直接对这些I/O口进行操作,例如: void CH375HM_INDEX_WR ( unsigned char Index) { CH375HM_D0_D7 = Index; CH375HM_A0 = 0; CH375HM_DATA_DIR_OUT( ); /* 设置并口方向为输出 */ CH375HM_RD = 1; 如果I/O默认电平是高电平,那么这是可选操作 CH375HM_CS = 0; CH375HM_WR = 0;

CH375HM_CS =0; //对于高速单片机,该指令用于延时,以便向CH375_WR产生宽度至少为80nS的低电平脉冲

CH375HM_WR = 1; CH375HM_CS = 1; CH375HM_A0 = 1; CH375HM_DATA_DIR_IN( ); /* 禁止数据输出 */

}

void CH375HM_DATA_WR (unsigned char dat ) { CH375HM_D0_D7 = dat; CH375HM_DATA_DIR_OUT( ); CH375HM_A0 = 1; CH375HM_CS = 0; CH375HM_WR = 0;

CH375HM_CS = 0; // 对于高速单片机,该指令用于延时,以便向CH375_WR产生宽度至少为80nS的低电平脉冲

CH375HM_WR = 1; CH375HM_CS = 1; CH375HM_DATA_DIR_IN( ); /* 禁止数据输出 */ }

unsigned char CH375HM_DATA_RD( void ) {

unsigned char dat; CH375HM_DATA_DIR_IN(); CH375HM_A0 = 1; CH375HM_CS = 0; CH375HM_RD = 0;

CH375HM_CS=0; //对于高速单片机,该指令用于延时,以便向CH375_RD产生宽度至少为80nS的低电平脉冲

dat = CH375HM_D0_D7 CH375HM_CS = 1; CH375HM_A0 = 0; return( dat );

}


只有登录才能回复,可以选择微信账号登录