【51单片机】编程小技巧(二)——for 循环参数的妙用

本文介绍了如何巧妙运用for循环参数在C语言中实现数字显示和流水灯效果。通过变量i作为循环计数器,不仅可以遍历数组进行LCD显示,还能控制LED灯的亮灭,实现流水灯的动态效果。代码示例中详细展示了递增和递减型for循环的应用,以供下载测试。
摘要由CSDN通过智能技术生成


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);
   	 }
   }
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值