帮我看下这个C51的程序

来源:百度知道 编辑:UC知道 时间:2024/06/17 09:12:39
#include <reg51.h>
#include <stdio.h>
#define uchar unsigned char
sbit DIN=p2^0;
sbit CLK=P2^1;
sbit LOAD=p2^2;
void send (uchar add ,uchar dat)
{ uchar ads,i,j;
LOAD=0;
i=0;
while(i<16)
{if(i<8)
{ads=add;}
else
{ads=dat;}
for(j=8;j>=1;j--)
{DIN=ads&0x80;
ads<<1;
CLK=1;
CLK=0;}
i=i+8;}
LOAD=1;}

其中i=i+8这句执行完后,再从哪开始?

当执行完i=i+8后,
如果i<16,则执行:
{if(i<8)
{ads=add;}
else
{ads=dat;}
for(j=8;j>=1;j--)
{DIN=ads&0x80;
ads<<1;
CLK=1;
CLK=0;}
当i>=16时,执行:
LOAD=1;}
然后返回主程序

没缩进看起来很累,i=i+8是while最后一句吧,执行之后回到while开始判断i<16