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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubunru 7.10 source.list 标准的官方的

    ubunru 7.10 source.list 标准的官方的

    2021年5月2日
    126
  • shell中if elif_shell编程if语句格式

    shell中if elif_shell编程if语句格式测试shell脚本编程时,写了如下代码:在对if-elif-else分支进行数值判断时,发现一个奇怪的现象:如果使用testconditon(即[condition])进行判定,当第一条if条件为假时,无论代码中的elif语句条件是否为真,都输出elif分支下的语句;查看输出结果,发现输出结果显然与期望值不一样为了能够得到预期结果,发现如果采用双圆括号是进行判断,可得到预期结…

    2022年8月18日
    8
  • numpy转torch.tensor_tensorflow numpy

    numpy转torch.tensor_tensorflow numpy要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就好处理了。下面一个小程序讲述了将tensor转化为numpy数组,以及又重新还原为tensor:importtensorflowastfimg1=tf.constant(value=[[[[1],[2],[3],[4…

    2022年10月9日
    2
  • java流程图平行四边形_编程技巧之流程图「建议收藏」

    我们写的程序都是有逻辑顺序的,即是有流程的,流程图的作用则是对这种逻辑顺序的一种描述,是对解决问题的方法、思路或者算法的图形化的展示。流程图采用的符号Axure里的流程图形状组件面板下面这的内容介绍来自(https://www.douban.com/note/310371289/)1、矩形作用:一般用作要执行的处理(process),在程序流程图中做执行框。在axure中如果是画页面框架图,那么也…

    2022年4月16日
    65
  • js的sort排序方法_sort对象排序

    js的sort排序方法_sort对象排序sort()方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。语法:array.sort(fun);参数fun可选。规定排序顺序。必须是函数。注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。如果想按照其他规则进行排序,就需要提供比较函数,该函数要比较两个值,然后返回…

    2022年8月12日
    10
  • 霍尼韦尔与浙江石化扩大合作,助力中国最大石化项目进一步建设[通俗易懂]

    霍尼韦尔与浙江石化扩大合作,助力中国最大石化项目进一步建设[通俗易懂]霍尼韦尔在第二届中国国际进口博览会上宣布,浙江石油化工有限公司(以下称“浙江石化”)将在其位于浙江省舟山的炼化一体化二期项目采用霍尼韦尔一系列先进技术,包括工艺技术、催化剂、关键设备和控制自动化技术。舟山炼化一体化项目是中国国家经济最新发展规划中的数个大型石化产业基地之一。合作内容包括:霍尼韦尔UOPMD/ECMD塔盘,用于两套240万吨芳烃装置中的精馏和汽提环节,为客户提供出色的性能和经济效…

    2022年10月16日
    4

发表回复

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

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