写了一个程序,发现把for(a=8;a>0;a--)改成for(a=0;a<8;a++)后显示不正常了。
下面是程序的其中一段
void write_byte(uchar dat)
{
uchar a;
ACC=dat;
RST=1;
for(a=8;a>0;a--) //这里
{
IO=ACC0;
SCLK=0;
SCLK=1;
ACC=ACC>>1;
}
}
然后在KEIL里写了个简单的程序想验证,结果发现执行完成后aa=0而bb=8
void main()
{
unsigned char ii,aa,jj,bb;
aa=0; bb=0;
for(ii=0;ii<8;ii++)
aa++;
for(jj=8;jj>0;jj--)
bb++;
}
求各位指点,是不是我犯了什么低级错误还是基础知识不扎实导致弄错了。
PS:最近用学习板试程序,老是卡壳,好郁闷,恳请各位大大开导
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
#include <STC89.H>
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x07f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0123456789ABCDEF 共阴
void delay(uchar c)
{
uchar x,y;
for(x=0;x<c;x++)
for(y=0;y<110;y++);
}
void main()
{
unsigned char ii,aa,jj,bb;
aa=1; bb=0;
for(ii=0;ii<8;ii++)
aa++;
for(jj=8;jj>0;jj--)
bb++;
while(1)
{
P24=0;
P23=0;
P22=0;
P0=table[aa];
delay(5);
P24=0;
P23=0;
P22=1;
P0=table[bb];
delay(5);
}
}
一周热门 更多>