No.23198 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2003/4/3 16:16:42 发贴者IP:61.150.12.29 标题:guest:请看一下我的5045为什么写不进去? 摘要:No.23198请看一下我的5045为什么写不进去? #include <at89x52.h> #include <intrins.h> #include <ABSACC.h> #define uchar unsigned char #define uint unsigned int sbit SO=P2^4; /*5045输出*/ sbit SI=P2^3; /*5045输入*/ sbit SCK=P2^2; /*5045时钟*/ sbit SCS=P3^5; /*5045片选*/ /****************************************************************************** 向 X25045 发送命令 (8 bit) (初始:SCS = 0), SCK上升沿锁存数据 ******************************************************************************/ void sent_X25045( uchar n ) { uchar i; for ( i=0x80; i> =0x01; i=i> > 1 ) { SCK = 0; /* SCK=0 */ if ( ( n & i ) == 0 ) SI = 0; else SI = 1; /* 置SI */ SCK = 1; /* SCK=1 */ SI=0; /* 清SI */ } } /****************************************************************************** 从 X25045 读出数据 (8 bit) (初始:SCS = 0), SCK下降沿输出数据 ******************************************************************************/ uchar get_X25045() { uchar i,n; n=0x00; for ( i=0x80; i> =0x01; i=i> > 1 ) { SCK = 1; SO = 1; /* 置 SO 为读 */ SCK = 0; if ( SO == 1 ) n = ( n | i ); } return( n ); } /****************************************************************************** 读 X25045 状态寄存器 (8 bit) ******************************************************************************/ uchar rdsr_X25045() { uchar n; SCK = 0; SCS = 0; sent_X25045( 0x05 ); /* RDSR => X25045 */ n = get_X25045( ); SCK = 0; SCS = 1; return( n ); } /****************************************************************************** 写 X25045 等待完成 ******************************************************************************/ void wrok_X25045() { uchar i; for ( i=0; i <=99; i++ ) { if ( ( rdsr_X25045() & 0x01 ) == 0x00 ) break; } } /****************************************************************************** 写 X25045 ......
>>返回讨论的主题
|