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


相关推荐

  • 《大白AI周报》精华内容整理汇总「建议收藏」

    《大白AI周报》精华内容整理汇总「建议收藏」在人工智能学习中,大家或多或少都会关注一些公众号,但随着每天信息量的暴增,碎片化的内容让大家应接不暇。如何挖掘有价值的内容,如何快速查阅自己需要的内容,是一个头疼的问题。因此大白每周都会将人工智能领域,几十个公众号每周发布的精华内容汇总起来。同时进行系统的分类,让大家对于人工智能行业每周的技术动态**可以一目了然,希望对大家有帮助。《大白AI周报》每周精华文章链接:每周日报的内容还是有点多,大白将其中的更加系统性,或者对项目来说,更有针对性的文章,整理到本文中,方便大家更好的查看。整理汇总:江大白

    2022年8月31日
    8
  • 【CBIR】基于内容的图像检索技(CBIR)术相术介绍「建议收藏」

    【CBIR】基于内容的图像检索技(CBIR)术相术介绍「建议收藏」基于内容的图像检索技(CBIR)术相术介绍转载之:kezunhai 出处:http://blog.csdn.net/kezunhai        近20年来,计算机与信号处理领域如火如荼地发展着,随着普通计算机的性能不断地提高,人们对计算机处理信息的能力及要求不断地提高。传统的基于文本检索技术已经难以满足人们的需求,图片作为人们对周围世界的感知媒

    2025年10月22日
    4
  • SQLserver字符串转日期_sqlserver合并字符串

    SQLserver字符串转日期_sqlserver合并字符串框架用的是mybatis。sqlserver:CONVERT(datetime,#{transaction_date_time},20), mysql: DATE_FORMAT(#{transaction_date_time},’%Y-%m-%d%H:%i:%S’)

    2022年10月8日
    2
  • 2008 SCI 影响因子(Impact Factor)

    2008 SCI 影响因子(Impact Factor)

    2021年11月14日
    53
  • leetcode -1864. 构成交替字符串需要的最小交换次数[通俗易懂]

    leetcode -1864. 构成交替字符串需要的最小交换次数[通俗易懂]给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 “010” 和 “1010” 属于交替字符串,但 “0100” 不是。任意两个字符都可以进行交换,不必相邻 。示例 1:输入:s = “111000”输出:1解释:交换位置 1 和 4:”111000″ -> “101010” ,字符串变为交替字符串。示例 2:输入:s =

    2022年8月11日
    9
  • Java中super()的使用[通俗易懂]

    Java中super()的使用[通俗易懂]目录1.super()的使用实例一一一子类重写父类的方法2.super()的使用实例一一一子类重写父类的变量3.super()的使用实例一一一在子类的构造方法中4.关于构造方法中super()第一种情况:编译不通过第二种情况:编译不通过第三种情况:成功编译通过1.super()的使用实例一一一子类重写父类的方法publicclassA{…

    2022年6月11日
    31

发表回复

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

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