文章目录
for 循环参数的妙用
一般的for循环格式
unsigned char i; //声明一个变量
//递增型
for(i=0;i<8;i++) //循环8次
{
//do something
}
//递减型
for(i=8;i++;i--)
{
//do something
}
众所周知 i 是一个变量,范围是0~255 。但是,它除了在for循环中作为参数,还可以在for()循环中调用
举个例子
1. 显示数字
main.c
unsigned char i; //声明一个变量
unsigned char such[8]={
10,20,30,40,50,60,70,80
}; //声明一个数组
//递增型
for(i=0;i<8;i++) //循环8次,依次在lcd显示数组的数字;
{
lcd_ShowNuw(0,0,such[i],16); //显示数组第i个值
Delay_ms(500); //延时0.5秒
}
2. 流水灯(可以下载测试)
main.c
#include "reg52.h"
unsigned char LED_Port[8]={
0x01, //16进制转换为二进制,即led所在端口第一个位输出高电平,点亮。
0x02, //16进制转换为二进制,即led所在端口第二个位输出高电平,点亮。
0x04, //16进制转换为二进制,即led所在端口第三个位输出高电平,点亮。
0x08, //16进制转换为二进制,即led所在端口第四个位输出高电平,点亮。
0x10, //16进制转换为二进制,即led所在端口第五个位输出高电平,点亮。
0x20, //16进制转换为二进制,即led所在端口第六个位输出高电平,点亮。
0x40, //16进制转换为二进制,即led所在端口第七个位输出高电平,点亮。
0x80 //16进制转换为二进制,即led所在端口第八个位输出高电平,点亮。
} ; //声明一个LED控制数组,8个LED分布在P端口的0~7口(兼容普中A2)
//延时函数
void delay (unsigned int t)
{
while(t--);
}
void main()
{
char i;
while(1)
{
//递增型
for(i=0;i<8;i++)
{
P2 = LED_Port[i]; //使P2端口输出LED_Port数组第i个值,借此来控制灯的亮灭,实现流水灯
delay(5000);
}
//递减型
for(i=7;i>-1;i--)
{
P2 = LED_Port[i];
delay(5000);
}
}
}