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)
上一篇 2022年5月26日 下午11:00
下一篇 2022年5月26日 下午11:00


相关推荐

  • TTL转RS232电路–分享原理图和参考资料

    RS232串口经常用到,本文分享下RS232协议方面基本点,并介绍一种简单的串口TTL(3.3V)电平转换为RS232电平的电路,这个电路是经过制板验证过的。使用芯片MAX3232E(tssop16封装),电源用3.3V,电路如下图MAX3232是支持两路uart转成RS232,分享的电路只接了一路,如有需要可以接两路另外上面电路是没有做隔离的,如果要做成隔离式的,可以加上光电开关。…

    2022年4月6日
    75
  • 普通IC、M1、UID、CUID、FUID、UFUID卡的区别

    普通IC、M1、UID、CUID、FUID、UFUID卡的区别普通 IC 卡 0 扇区不可以修改 其他扇区可反复擦写 我们使用的电梯卡 门禁卡等智能卡发卡商所使用的都是 M1 卡 可以理解为物业发的原卡 UID 卡普通复制卡 可以重复擦写所有扇区 主要应用在 IC 卡复制上 遇到带有防火墙的读卡器就会失效 CUID 卡可擦写防屏蔽卡 可以重复擦写所有扇区 UID 卡复制无效的情况下使用 可以绕过防火墙 FUID 卡不可擦写防屏蔽卡 此卡的特点 0 扇区只能

    2026年3月19日
    2
  • WdatePicker使用方法

    WdatePicker使用方法转载 https www cnblogs com goloving p 7163697 html 只需要引入 js 文件即可 自己试了个小实例 复制代码 DOCTYPE tml 会员名 出生日期 复制代码 其中 class Wdate 加与不加 会在页面上有所差异 加上 class 的如图示会有个时间的小图

    2026年3月17日
    2
  • matlab求解下面的线性规划和整数规划[通俗易懂]

    matlab求解下面的线性规划和整数规划[通俗易懂]matlab求解下面的线性规划和整数规划  本篇博客主要讲了用matlab实际求解整数规划问题,目前还没有时间去自己实现整数规划算法,只能通过调用MATLAB的函数去实现。题目代码第一小题%线性规划代码%authorCanlongf=[-3,-2];A=[2,3;1,0.5];b=[14;4.5];C=[];d=[];xm=[0;0];xM=1e+10*[…

    2022年7月12日
    17
  • sql 中 between 的边界问题 —- between 边界:闭区间,not between 边界:开区间

    sql 中 between 的边界问题 —- between 边界:闭区间,not between 边界:开区间BETWEEN 用以查询确定范围的值 这些值可以是数字 文本或日期 BETWEEN 运算符是闭区间的 包括开始和结束值 如下 我有一个表只有 4 行数据 用 between 查 是包含前后边界值的 notbetween 则是不包含前后边界的补记 日期边界问题 如 2010 04 2116 42 39 2010 04 2316 42

    2026年3月17日
    2
  • Dash + PhpStorm使用教程

    Dash + PhpStorm使用教程nbsp nbsp nbsp Dashformac 是使用与 MacOS 平台的软件编程文档管理工具 可以浏览 API 文档 以及管理代码片段工具 Dash 自带了丰富的 API 文档 涉及各种主流的编程语言和框架 nbsp nbsp nbsp nbsp nbsp Dash 提供的文档查看和代码管理工具 能极大提高程序员开发效率 nbsp nbsp nbsp nbsp nbsp Dash 官网 https kapeli com dash nbsp nbsp nbsp nbsp nbsp Idea 系列的 PhpStorm amp amp am

    2026年3月17日
    1

发表回复

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

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