X25020驱动程序(C语言) /*------------------------------------------------------ 版 本:V2.2 作 者:梁衍龙 论坛名字:淡水清风 版 权:www.mcuzb.com 创作时间:2002年8月 联系方式:slzsw_lyl_2@163.com ========================================================*/ #include "reg51.h" #include "intrins.h" sbit X25_cs=P1^1;//片选接口 sbit X25_sk=P1^0;//时钟接口 sbit X25_si=P1^2;//数据输入接口 sbit X25_so=P1^3;//数据输出接口 void Write_Byte(unsigned char IData) { unsigned char i; for(i=0;i<8;i++) { X25_cs=0; NOP(); X25_sk=0; IData<<=1; NOP(); X25_si=CY; NOP(); X25_sk=1; NOP(); } } unsigned char Read_Byte(unsigned char Adress) { unsigned char count,i; Write_Byte(0x03); Write_Byte(Adress); for(i=0;i<8;i++) { X25_sk=1; count<<=1; X25_sk=0; if(X25_so) count++; } X25_cs=1; return(count); } void WREN() { Write_Byte(0x06); NOP(); X25_cs=1; } unsigned char WriteInData(unsigned char Address,unsigned char DataByte) { unsigned char mark ; WREN(); Write_Byte(0x02); Write_Byte(Address); Write_Byte(DataByte); //NOP(); X25_cs=1; lag(3000); mark=Read_Byte(Address); if(DataByte==mark) SystemError=0; if(mark!=DataByte) SystemError=1; // return(SystemError); } //虽然是一读一写,但是其中暗藏杀机,让人很难调通。一定注意接口的位置!呵呵!不信你就按普通的SPI程序方法写写试试!