51单片机(流水灯)

刚开始接触51单片机学习的同学都会先完成流水灯的小程序设计。

流水灯就是一组灯,然后在控制系统的控制下按照设定的顺序和时间来发亮和熄灭,这样就能形成一定的视觉效果,很多街上的店面和招牌上面就安了流水灯,看上去更美观。

1.  实验目的

a. 理解左移 RL、右移 RR 指令的功能。
b. 延时程序 DELAY 的具体执行过程、延时量控制等。
c. 掌握通过设置程序的跳转来实现程序循环的方法。
d.   能自左向右——自右向左——自左向右反复循环来控制一只发光管如反弹状
移动。
e.   能通过一组 I/O 口组合实现 8只 LED 的流水灯效果。
2.  电路原理图
利用preteus仿真。

 它能从上到下,再从下到上交替点亮。需要程序的读者自取。

#include<reg51.h>

#define uchar unsigned char
#define uint unsigned int

void delay(uint n)		// 延时函数,大约延时 n ms
{
	uchar i,j;
	for (i = 0 ; i < n ; i ++)
	{
		for (j = 0 ; j < 123 ; j ++);
	}
}

void main()
{
	uint i ;
	P3 = 0x00; //0000 0000	 初始化P1端口,使之输出低电平
	while (1)
	{
		for ( i = 0 ; i < 8 ; i ++ )
		{
		 	P3 = ( 0x01 << i ) ;
			delay(255) ;
		}
		for ( i = 0 ; i < 8 ; i ++ )
		{
			P3 = ( 0x80 >> i ) ;
			delay(255) ;
		}
	}
}

  • 16
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值