#include <reg52.H>#include <intrins.H>#define uchar unsigned char#define uint unsigned intsbit stcp=P1^0;sbit shcp=P1^1;sbit ds=P1^2;sbit stcp_vcc=P0^0;sbit shcp_vcc=P0^1;sbit ds_vcc=P0^2;
void sh595vcc(uchar l){ uchar k,num; num=l; for(k=0;k<8;k++) { shcp_vcc=0; ds_vcc=num&0x80; num<<=1; shcp_vcc=1; } stcp_vcc=0; _nop_(); _nop_(); stcp_vcc=1;}
void sh595(uchar h){ uchar k,num; num=h; for(k=0;k<8;k++) { shcp=0; ds=num&0x80; num<<=1; shcp=1; }}
void out595(){ stcp=0; //_nop_(); //_nop_(); stcp=1;}void send2byte(uchar dat1,uchar dat2){ sh595(dat1); sh595(dat2); }
void delayms(uint i)//延时函数{ unsigned int j; for(;i>0;i--) for(j=100;j>0;j--);}
void main(){ uchar i; while(1) { for(i=0;i<8;i++) { sh595vcc(0x08); send2byte(~0x08,0xff);out595(); delayms(10); send2byte(0xff,0xff);out595(); delayms(10); } }}
运行结果如上图
如果不要 send2byte(0xff,0xff);out595();这句的运行结果如下图
请高手帮忙解决一下这是什么问题;
以下是电路图
æè¯è¿ç¹äº®4个è§ä¹æ¯ä¸æ ·ç.å¨ææ«æå°±ä¼åºç°,éæå°±ä¸ä¼åºç°è¿ç§æ åµ..