AT93C56
void at93c56_write(u_char addr,u_char mybyte) { u_char i; at93c56_ewen(); CS=0;SK=0;CS=1;DI=1;SK=1;SK=0; DI=0;SK=1;SK=0;DI=1;SK=1;SK=0; for(i=0;i<8;i++) { DI=addr&0x80; SK=1;SK=0;addr<<=1; } for(i=0;i<8;i++) { DI=mybyte&0x80; SK=1;SK=0;mybyte<<=1; } CS=0;D=1;CS=1; SK=0; while(!D) { SK=1;SK=0; } SK=0;CS=0; at93c56_ewds(); P3_4=0; } 上面的是它的写入程序 下面为读出: u_char at93c56_read(u_char addr) { u_char i,result; CS=0;SK=0;CS=1;DI=1;SK=1;SK=0; DI=1;SK=1;SK=0;DI=0;SK=1;SK=0;
for(i=0;i<8;i++) { DI=addr&0x80; SK=1;SK=0;addr<<=1; } CS=0;D=1;CS=1; SK=0; while(!D) { SK=1;SK=0; } SK=1;SK=0; result=0; for(i=0;i<8;i++) { result<<=1; result=result|D; SK=1;SK=0; } CS=0; P3_5=0; return(result); }
主程序
void main() { at93c56_write(0x04,0x01); fanyangan=at93c56_read(0x04); while(1); }
返回结果不正确 fanyangan为0XFF
还希望有用过的大哥大姐们指导一二 小弟不胜感激
|