51单片机:LED流水灯(仿真+代码)_数码管led灯仿真图-程序员宅基地

技术标签: LED  单片机  

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

先给大家看一下仿真软件的电路(软件为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的数值。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/void_much/article/details/99719705

智能推荐

什么是XMl和ORM_xljorm-程序员宅基地

文章浏览阅读259次。这几天在学MyBatis时,常常用到.xml配置文件,具体来了解一它是干什么的。什么是 XML?XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准XML 与 H..._xljorm

软件工程第二章作业_请按照描述画出机票预定系统数据流图中的订票加工-程序员宅基地

文章浏览阅读3.1k次。软件工程作业(第二章)软件工程作业第二章2-1在软件开发的早期阶段为什么要进行可行性分析研究应该从哪些方面研究目标系统的可行性2-2 为方便储户某银行拟开发计算机储蓄系统储户填写的存款单或取款单由业务员键入系统如果是存款系统记录存款人姓名住址存款类型存款日期利率等信息并印出存款单给储户如果是取款系统计算利息并印出利息清单给储户请画出此系统的数据流图2-3为方便旅客某航空公司拟开发一个机票预定系_请按照描述画出机票预定系统数据流图中的订票加工

v-model和$refs区别_vue ref和v-model-程序员宅基地

文章浏览阅读1.3k次,点赞4次,收藏2次。showEditDialog (userInfo) { this.editForm.loginAcct = userInfo.loginAcct this.editForm.email = userInfo.email this.editForm.telephone = userInfo.telephone this.editDialogVisible = true }, editDialogClose () { this.$re._vue ref和v-model

STM8S_004_UART基本收发数据_stm8电子胸牌代码-程序员宅基地

文章浏览阅读1.2w次,点赞6次,收藏17次。Ⅰ、写在前面做软件开发的人都知道打印信息的重要,说到打印信息,我们就不得不说UART串口打印。做单片机开发的人,打印信息主要的来源就是UART串口打印。因此,关于UART相关的知识就比较重要。 printf、scanf这种标准的函数不只是可以在电脑上可以使用,在我们单片机上也同样可以使用,本文只讲述关于UART的基础知识,关于printf、scanf这一块后面将再次给大家整理一篇文章。 本文将结合_stm8电子胸牌代码

利用opencv多线程读取多路rtsp视频流_opencv rtsp 多路-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏37次。#include <opencv2/opencv.hpp>#include <iostream>#include <string>#include <thread>using namespace cv;using namespace std;Mat img=Mat(Size(1280,480),CV_8UC3);void camera..._opencv rtsp 多路

poj3061---Subsequence_int t = lower_ bound(sum + s,sum + n,sum[s] + s) --程序员宅基地

文章浏览阅读495次。SubsequenceTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9358 Accepted: 3767DescriptionA sequence of N positive integers (10 < N < 100 000), each of t_int t = lower_ bound(sum + s,sum + n,sum[s] + s) - sum;

随便推点

【Android 应用开发】GitHub 优秀的 Android 开源项目-程序员宅基地

文章浏览阅读8.5w次,点赞16次,收藏460次。文章转载自 : http://blog.csdn.net/zhixiang2010/article/details/18032871 作者 : Elysee2014主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、Ed

leetcode笔记_([first, second] = [second, first])-程序员宅基地

文章浏览阅读548次。输入处理详细可以看这个网址:https://ac.nowcoder.com/acm/contest/5652输入如下:a,c,bbf,ddddnowcoder输出如下:a,bb,cdddd,fnowcoder#include <bits/stdc++.h>#include <sstream>#include <string>#include <stdio.h>using namespace std;int main(){ _([first, second] = [second, first])

使用sqlt手工创建sql_profile(r4笔记第37天)-程序员宅基地

文章浏览阅读180次。在生产环境中有一些sql语句出现问题,大多是一些很紧急的问题,可能有些sql语句出现了执行计划的问题,通过hint能够做很大的改进,但是如果想让变更尽快生效,可以使用sq..._sqltprofile.sql

spring定时任务详解spring schedule和spring-quartz-程序员宅基地

文章浏览阅读3.1w次,点赞26次,收藏115次。从实现的技术上来分类,java定时任务目前主要有三种:Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行;而且作业类需要集成java.util.TimerTask,一般用的较少。 Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照..._spring schedule

PyQt5——打包资源文件_py qt import logo_rc-程序员宅基地

文章浏览阅读2.8k次。打包资源文件使用PyQt5生成的应用程序引用图片资源的主要方法有两种第一种方法:将资源转换为Python文件,然后引用Python文件第二种方法:在程序中通过相对路径引用外部图片资源使用Qt Designer 加载资源文件在Qt Designer中设计界面时是不能直接加入图片或图标资源的,而是需要在PyQt5开发目录下编辑.qrc文件新建一个资源文件apprcc.qrc&..._py qt import logo_rc

Java学习笔记(IO流 二)_commit('setaccess', data.permissions);可以用什么代替-程序员宅基地

文章浏览阅读96次。知识点总结于毕向东Java基础视频教程25天版本,侵权请联系删除。IO流(二)IO流(二)FIle类概述常用方法递归IO流(二)FIle类概述用来将文件或者文件夹封装成对象。File 是文件和目录路径名的抽象表示形式,即File类的对象代表一个文件或一个目录(文件夹)的路径,而不是文件本身。方便对文件与文件夹的属性信息进行操作。File对象可以作为参数传递给流的构造函数。构造方法:File(String pathname):通过将给定的字符串类型的路径名称转换为抽象路径名来创建新的F_commit('setaccess', data.permissions);可以用什么代替