AT89C51,流水灯,同时亮着两个灯流动的效果

这篇文章介绍了使用C51语言和52系列单片机通过循环左移(_crol_)和右移(_cror_)操作,控制P1口的LED灯逐位点亮和熄灭的示例。通过定时延时实现位移效果,展示了基本的硬件编程和定时控制技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<reg52.h>       //52系列单片机头文件
#include <intrins.h>    //包含_crol_(循环左移)函数所在的头文件
void delay(int z);      //声明子函数
unsigned char temp;     //定义一个变量,用来给P1口赋值
int i,j;
void main()
{
	temp=0xfc;          //赋初值11111100
	P1=temp;            //先点亮第一个发光二极管
	while(1)            //大循环
	{
		for(i=6;i>0;i--)         //控制亮点从低位往高位移动7次
		{
			delay(500);          //延时500毫秒
			temp=_crol_(temp,1); //将temp循环左移一位后再赋给temp
            P1=temp;         //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
		}
		for(j=;j>0;j--)         //控制亮点从高位往低位移动7次
		{
			delay(500);          //延时500毫秒
			temp=_cror_(temp,1); //将temp循环右移一位后再赋给temp
            P1=temp;          //将移位后的值赋给P1口,从高位到地位逐个点亮发光二极管      
		}
	}
}

void delay(int z)
{
	unsigned int x,y;
	for(x=z;x>0;x--)              //延时z毫秒
		for(y=110;y>0;y--);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值