首页 > 其他分享 >led的点亮和流水灯的制作

led的点亮和流水灯的制作

时间:2023-04-27 17:58:34浏览次数:33  
标签:P2 右移 led 点亮 int void while 流水

先给出led的电路图

每个led灯连着VCC,默认为高电平

可以看到led灯对应连着P20到P27共8个灯

所以只要将P20到P27对应的引脚置为低电平即可

具体来说就是

P2_0 = 0//头文件里面定义了相关的文件等价于P2的第0位

想实现流水灯的话

首先是延时函数

一个基本语句的执行时间为10us

然后1s = 1000ms = 1000000us

所以要延时1s的话就必须执行100000个基本语句

所以可以写个函数

void deley(int x) {
    while (x--) {}
}

然后需要多少秒就乘1e5,然后填入参数即可

然后为了代码简洁,肯定要用for循环

所以要换种形式来让led灯亮

就是直接操作P2来达到这个效果(而不是具体到某一位)

那么初始状态是左边的第一个灯亮着,其余都暗着

对应的二进制数为11111110

十六进制为0xFE

然后就一直往右移即可

想要灯的显示效果一直右移

那么可以先左移,然后再加一即可达到这个效果

那么如果想要灯光效果左移捏

同理,一直右移,然后加一即可,但是注意这个加一加的是第8位上的1,所以加的是0x80

代码如下:

#include <at89c51RC2.h>

sbit led = P2 ^ 7;

void delay(int x)
{
	while (x)
		x--;
}

void main()
{
	int i;
	P2 = 0xFE;
	delay(50000);
	while (1)
	{
		for (i = 1; i <= 7; i++)
		{
			P2 <<= 1;
			P2 += 1;
			delay(50000);
		}
		// for (i = 1; i <= 7; i++)
		// {
		// 	P2 >>= 1;
		// 	P2 += 0x80;
		// 	delay(50000);
		// }
	}
}
   

标签:P2,右移,led,点亮,int,void,while,流水
From: https://www.cnblogs.com/rickly233/p/17359776.html

相关文章

  • Linux(Centos7)failed to start lsb bring up/down 反其道解决
    VM虚拟机里装的CentOS7,之前用的好好的,突然就连不上网了。使用命令:systemctlrestartnetwork.service提示错误:  注:网截图了,用网友的按提示输入:systemctlstarusnetwork里面有行错误提示: failedtostartlsbbringup/down网上找了一圈,大部分说是 ......
  • SpringBoot2 hikari关于 Failed to validate connection com.mysql.cj.jdbc.Connectio
    项目启动不报错,如果静默15分钟没有数据库操作就报上述错误WARN不影响程序运行Failedtovalidateconnectioncom.mysql.cj.jdbc.ConnectionImpl@16244d67(Nooperationsallowedafterconnectionclosed.).PossiblyconsiderusingashortermaxLifetimevalue.发现Spri......
  • net::ERR_FAILED 413
    后台收不到post请求,前端报错413具体情况如下: 开始以为是跨域又有问题,进一步发现是上传的图片文件过大。Node.js环境中koa框架使用还不熟练。参考笔记-node.jskoa框架。请求体过大报413错误-简书(jianshu.com)引入koa-bodyparser 挂载配置,将文件大小设置为不超过10MB......
  • tomcat报错 removeGeneratedClassFiles failed
    1,tomcat切换用户重启后报错如下:Aug29,20142:14:47PMorg.apache.jasper.compiler.CompilerremoveGeneratedClassFilesWARNING:Failedtodeletegeneratedclassfile[/home/joeyon/test/work/Catalina/localhost/_/org/apache/jsp/WEB_INFO/c/common/errorIos_jsp.class]......
  • DDP运行报错(单卡无错):ERROR:torch.distributed.elastic.multiprocessing.api:failed (e
    使用DDP时出现错误,但是单卡跑无错误。错误记录如下:RuntimeError:Expectedtohavefinishedreductionintheprioriterationbeforestartinganewone.Thiserrorindicatesthatyourmodulehasparametersthatwerenotusedinproducingloss.Youcanenableunu......
  • jenkins流水线发布前端代码
    pipeline{agent{label'hw'}environment{VERSION=sh(script:"echo`date'+%Y%m%d%H%M%S'`",returnStdout:true).trim()}stages{stage('克隆代码'){steps{......
  • 解决npm install各种报错的6种方案 Error: Command failed: cmd.exe autoreconf -ivf
    报错示例:Error:Commandfailed:C:\Windows\system32\cmd.exe/s/c"autoreconf-ivf"gifsiclepre-buildtestfailedPSG:\code_all\my_webpack_webgl2021-5-17-dev_01\three151-demo>npminstallnpmnoticeBeginningOctober4,2021,allconnect......
  • ubuntu22.4.1 部署Postgres12 、PostGIS、TimescaleDB
    参考文章https://www.postgresql.org/download/linux/ubuntu/一、postgres数据库安装#Createthefilerepositoryconfiguration:1.sudosh-c'echo"debhttp://apt.postgresql.org/pub/repos/apt$(lsb_release-cs)-pgdgmain">/etc/apt/sources.list.d/pgdg.l......
  • Ubuntu:PostgreSql安装PostGis、TimeScaleDB插件
    Ubuntu:PostgreSql安装PostGis、TimeScaleDB插件https://docs.timescale.com/self-hosted/latest/install/installation-linux/ Installingself-hostedTimescaleDBonDebian-basedsystemsAtthecommandprompt,asroot,addthePostgreSQLthirdpartyrepository......
  • 解决Some index files failed to download.They have been ignored, or old ones used
    使用pingwww.baidu.com测试一下网络,如果出现:ping:www.baidu.com:Temporaryfailureinnameresolution就是网络问题了以下是解决办法,修改两处后重启即可,下面详细说明第一处修改的地方:sudovim/etc/systemd/resolved.conf修改DNS如下:[Resolve]DNS=8.8.8.8#FallbackD......