找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1209|回復(fù): 1
收起左側(cè)

C語言為什么上升時循環(huán)變量用遞減,用遞增不行;下降時循環(huán)變量用遞增,用遞減不行。

[復(fù)制鏈接]
ID:707309 發(fā)表于 2020-3-26 21:33 | 顯示全部樓層 |閱讀模式
高手幫我解釋一下。
#include<reg51.h>
#define lie P1
#define hang P2
#define uchar unsigned char
uchar d[][8]=
{
{0x38,0x38,0x38,0xfe,0x7c,0x38,0x10,0x00},
{0x10,0x38,0x7c,0xfe,0x38,0x38,0x38,0x00}
};
uchar speed=30;
uchar scan;
sbit key1=P3^0;
sbit key2=P3^1;
void Delayms(uchar x)
{int i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
void up(uchar word,uchar counts)
{char i,j,k,l;
for(l=0;l<counts;l++)
for(j=7;j>=0;j--)
for(k=0;k<speed;k++)
{scan=0x01;
for(i=7;i>=0;i--)
{lie=0x00;
hang=~scan;
if(i>j) lie=d[word][8+(j-i)];
else lie=d[word][j-i];
Delayms(2);
scan<<=1;
}
}
}
void down(uchar word,uchar counts)
{char i,j,k,l;
for(l=0;l<counts;l++)
for(j=0;j<8;j++)
for(k=0;k<speed;k++)
{scan=0x80;
for(i=0;i<8;i++)
{lie=0x00;
hang=~scan;
if(i>j) lie=d[word][8+(j-i)];
else lie=d[word][j-i];
Delayms(2);
scan>>=1;
}
}
}

main()
{P3=0xff;
while(1)
{if (key1==0)up(0,3);
if (key2==0)down(1,3);
Delayms(2);
lie=0x00;}}


回復(fù)

使用道具 舉報

ID:697917 發(fā)表于 2020-3-27 09:13 | 顯示全部樓層
有這說法?自己設(shè)置初始值,判斷條件,沒聽說有著說法啊。為什么不行
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表