51单片机:LED流水灯(仿真+代码)

51单片机:LED流水灯(仿真+代码)这次用单片机做个简单的流水灯。先给大家看一下仿真软件的电路(软件为Proteus)上图就是用仿真软件制作的线路原理图AT89C51RC2:单片机BUTTON:按键CAP:电容CRYSTAL:晶振LED-GERRN:LED灯(绿色)RES:电阻接下来是程序部分(软件为keil)#include”reg51.h” //此文件中定义了单片机的一些特殊功能寄存器#include…

大家好,又见面了,我是你们的朋友全栈君。

这次用单片机做个简单的流水灯。

先给大家看一下仿真软件的电路(软件为Proteus)
在这里插入图片描述
上图就是用仿真软件制作的线路原理图
AT89C51RC2:单片机
BUTTON:按键
CAP:电容
CRYSTAL:晶振
LED-GERRN:LED灯(绿色)
RES:电阻

接下来是程序部分(软件为keil)

#include"reg51.h"		 //此文件中定义了单片机的一些特殊功能寄存器
#include"intrins.h"		//因为要用到左右移函数,所以加入这个头文件

void delay1ms(unsigned char c)  //c=1时,大约为1ms
{  
	unsigned char a,b;  
	for(c ;c>0;c--)  
		for(b=142;b>0;b--)  
			for(a=2;a>0;a--);  
}

void main()
{
	unsigned char led,i; //设定两个变量
	led=0xfe;  //硬件图上我们是负极连接单片机,所以输出0才能点亮LED,0xfe=1111 1110  
	delay1ms(100); //大约延时100ms	
	while(1)
	{										  	
		for(i=0;i<7;i++)	    //把0移到最右边需要7次
		{
			P2=led;   //P2口的8个引脚输出为0xfe
			delay1ms(100); 
			led=_crol_(led,1);	//左移函数,将led左移一位   _crol_(“变量”,“位数”)
		}
		for(i=0;i<7;i++)    //同上for的作用
		{
			P2=led;	
			delay1ms(100);
			led=_cror_(led,1);	 	//右移函数,将led右移一位
		}										
	}		
}

PS:
程序中必须先赋值,再移位,不然在执行的时候最两边的灯是不亮的。
流水灯的快慢取决于delay的数值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140900.html原文链接:https://javaforall.net

(3)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html清空所有cookie,document.cookie使用详解

    html清空所有cookie,document.cookie使用详解概念相关:cookie是存于用户硬盘上的一个文件,对应一个域名,当浏览器再次访问这个域名时,便使用这个cookie。cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。cookie是浏览器相关的。即使访问的是同一个页面,不同浏览器之间所保存的cookie也是不能互相访问的。cookie安全性不够高。所有的cookie都是以纯文本的形式记录于文件中,因此如果要保存用户名密码等信息…

    2022年7月11日
    14
  • js算法初窥07(算法复杂度)

    算法复杂度是我们来衡量一个算法执行效率的一个度量标准,算法复杂度通常主要有时间复杂度和空间复杂度两种。时间复杂度就是指算法代码在运行最终得到我们想要的结果时所消耗的时间,而空间复杂度则是指算法中用来存

    2022年3月25日
    38
  • Linux node 安装教程[通俗易懂]

    Linux node 安装教程[通俗易懂]1、下载node2、上传到linux服务器/usr/local目录下3、将tar.xz解压成tar文件xz-dnode-xxxx.tar.xz4、将tar文件解压成文件夹tar-xvfnode-xxxx.tar5、改文件夹的名字,改成nodejsmvnode-xxxnode6、检测是否安装成功7、建立软连接ln-s/usr/local/nodejs/bin/node/usr/local/binln-s/usr/local/nodejs/bin/npm

    2022年9月12日
    3
  • 自动定时执行任务、定时任务执行的几种实现方法

    自动定时执行任务、定时任务执行的几种实现方法自动定时执行任务,常见的方法有三种:Windows任务计划程序WindowsService定时执行软件(例如:定时执行专家)这三种方法大多数人都用过,我在这里只做一个比较简单的介绍和小结,

    2022年7月2日
    30
  • springcloud详细教程_史上最简单的画

    springcloud详细教程_史上最简单的画SpringCloudBus将分布式的节点和轻量的消息代理连接起来。这可以用于广播配置文件的更改或者其他的管理工作。一个关键的思想就是,消息总线可以为微服务做监控,也可以作为应用程序之间相互通讯。本文要讲述的是用AMQP实现通知微服务架构的配置文件的更改。一、准备工作本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中配置spring-cloud-starter-bus-amq

    2025年7月26日
    4
  • 远程连接windows2003桌面无法使用剪切板的有效解决方法

    远程连接windows2003桌面无法使用剪切板的有效解决方法

    2021年11月17日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号