当前位置: 首页 > news >正文

单片机原理及应用:流水灯的点亮

流水灯是一种简单的单片机控制电路,由许多LED组成,电路工作时LED会按顺序点亮,类似于流水的效果。

下面是运行在keil上的代码,分别使用了数组,移位符和库函数来表示。

//数组法
#include <reg52.h>     //头文件		
#define uchar unsigned char	
uchar tab[16]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f , 0xbf , 0xdf , 0xef , 0xf7 ,  0xfb , 0xfd , 0xfe };
//因为采用了共阳极接法,所以要点亮哪个灯就给哪一位赋0
//8个灯,对应两个十六进制数的八个数位
//从右到左,再从左到右,奇偶位,内外位修改数字顺序即可
void  delay(  )
{	uchar i,j;for(i=0; i<255; i++)//为了让人眼看清灯的闪烁而延时for(j=0; j<255; j++);
}void  main(  )			//主函数		
{	uchar i;P1 = 0xff;          //熄灭所有LED,避免上电亮灯while (1)			//永真{	for(i=0;i<16; i++){	P1=tab[i]; 	//改变P1口的电位delay( ); 	//延时函数}}
}//移位符
#include <reg52.h>     		//包含reg52.h头文件
#define uchar unsigned char
void  Delay()           
{uchar i, j;for (i=0;i<255;i++)for (j=0;j<255;j++);
}
void main()
{ uchar i, temp;P1 = 0xff;               	//在移位符中会舍弃数位,所以必须赋初值while(1){temp = 0x01;             	//为了赋值方便,取反码给要点亮的灯赋1for (i=0;i<8;i++)			//奇偶位,i改4,<<2{P1 = ~ temp;      	//temp值取反送P1口temp = temp << 1 ; 	//左移一位Delay()}temp = 0x80;             for (i=0;i<8;i++)			//奇偶位,i改4,>>2{P1 = ~ temp;      	//temp值取反送P1口temp = temp >> 1 ; 	//右移一位Delay();}}}//库函数
#include <reg52.h>		
#include <intrins.h>	//调用函数库	
#define uchar unsigned charvoid  delay()           	
{uchar i,j;for (i=0;i<255;i++)for (j=0;j<255;j++);
}
void main()
{ uchar i,temp;P1 = 0xff;               while (1){	temp=0x7f;			for(i=0; i<8; i++)		  //奇偶项i改成4,temp后改成2{  P1=temp;		delay(  );  				temp=_cror_( temp,1) ;//r代表right,右移		}temp=0xfe;for(i=0; i<8; i++)		  //奇偶项i改成4,temp后改成2{ P1=temp;				  delay(  );				temp=_crol_( temp,1) ; //l代表left,左移		}} 
}

编译时要注意修改晶振频率并创建hex文件。

 

点亮效果呈现在proteus上,大家也可以根据仿真电路图去挑选自己需要的元器件组建不同功能的电路。

流水灯演示

谢谢大家。

相关文章:

单片机原理及应用:流水灯的点亮

流水灯是一种简单的单片机控制电路&#xff0c;由许多LED组成&#xff0c;电路工作时LED会按顺序点亮&#xff0c;类似于流水的效果。 下面是运行在keil上的代码&#xff0c;分别使用了数组&#xff0c;移位符和库函数来表示。 //数组法 #include <reg52.h> //头文…...

蓝桥杯宝藏排序算法(冒泡、选择、插入)

冒泡排序: def bubble_sort(li): # 函数方式for i in range(len(li)-1):exchangeFalsefor j in range(len(li)-i-1):if li[j]>li[j1]:li[j],li[j1]li[j1],li[j]exchangeTrueif not exchange:return 选择排序: 从左往右找到最小的元素&#xff0c;放在起始位置…...

使用@jiaminghi/data-view实现一个数据大屏

<template><div class"content bg"><!-- 全局容器 --><!-- <dv-full-screen-container> --><!-- 第二行 --><div class"module-box" style"align-items: start; margin-top: 10px"><!-- 左 -->…...

神经网络:池化层知识点

1.CNN中池化的作用 池化层的作用是对感受野内的特征进行选择&#xff0c;提取区域内最具代表性的特征&#xff0c;能够有效地减少输出特征数量&#xff0c;进而减少模型参数量。按操作类型通常分为最大池化(Max Pooling)、平均池化(Average Pooling)和求和池化(Sum Pooling)&a…...

微服务常见的配置中心简介

微服务架构中&#xff0c;常见的配置中心包括以下几种&#xff1a; Spring Cloud Config&#xff1a; Spring Cloud Config是官方推荐的配置中心解决方案&#xff0c;它支持将配置文件存储在Git、SVN等版本控制系统中。通过提供RESTful API&#xff0c;各个微服务可以远程获取和…...

银河麒麟v10 rpm安装包 安装mysql 8.35

银河麒麟v10 rpm安装包 安装mysql 8.35 1、卸载mariadb2、下载Mysql安装包3、安装Mysql 8.353.1、安装Mysql 8.353.3、安装后配置 1、卸载mariadb 由于银河麒麟v10系统默认安装了mariadb 会与Mysql相冲突&#xff0c;因此首先需要卸载系统自带的mariadb 查看系统上默认安装的M…...

一篇文章带你搞定CTFMice基本操作

CTF比赛是在最短时间内拿到最多的flag&#xff0c;mice必须要有人做&#xff0c;或者一支战队必须留出一块时间专门写一些mice&#xff0c;web&#xff0c;pwn最后的一两道基本都会有难度&#xff0c;这时候就看mice的解题速度了&#xff01; 说实话&#xff0c;这是很大一块&…...

Spring security之授权

前言 本篇为大家带来Spring security的授权&#xff0c;首先要理解一些概念&#xff0c;有关于&#xff1a;权限、角色、安全上下文、访问控制表达式、方法级安全性、访问决策管理器 一.授权的基本介绍 Spring Security 中的授权分为两种类型&#xff1a; 基于角色的授权&…...

模式识别与机器学习(十一):Bagging

1.原理 Bagging [Breiman, 1996a] 是井行式集成学习方法最著名的代表.从名字即可看出&#xff0c;它直接基于自助采样法(bootstrap sampling)。给定包含m 个样本的数据集&#xff0c;我们先随机取出一个样本放入采样集中&#xff0c;再把该样本放回初始数据集&#xff0c;使得…...

数据压缩(哈夫曼编码)

【问题描述】在数据压缩问题中&#xff0c;需要将数据文件转换成由二进制字符0、1组成的二进制串&#xff0c;称之为编码&#xff0c;已知待压缩的数据中包含若干字母&#xff08;A-Z&#xff09;&#xff0c;为获得更好的空间效率&#xff0c;请设计有效的用于数据压缩的二进制…...

移动安全APP--Frida+模拟器,模拟器+burp联动

最近测APP被通报了&#xff0c;问题点测得比较深&#xff0c;涉及到frida和burp抓包&#xff0c;一般在公司可能会有网络的限制&#xff0c;手机没办法抓包&#xff0c;我就直接在模拟器上试了&#xff0c;就在这记录一下安装过程。 目录 一、Frida安装 二、burp与逍遥模拟器…...

MATLAB遗传算法工具箱的三种使用方法

MATLAB中有三种调用遗传算法的方式&#xff1a; 一、遗传算法的开源文件 下载“gatbx”压缩包文件&#xff0c;解压后&#xff0c;里面有多个.m文件&#xff0c;可以看到这些文件的编辑日期都是1998年&#xff0c;很古老了。 这些文件包含了遗传算法的基础操作&#xff0c;包含…...

复习linux——时间同步服务

加密和安全当前都离不开时间的同步&#xff0c;否则各种网络服务可能不能正常运行 时间错误可能导致证书应用出错 时间同步服务 多主机协作工作时,各个主机的时间同步很重要&#xff0c;时间不一致会造成很多重要应用故障&#xff0c;利用NTP协议使网络中的各个计算机时间达到…...

如何在Linux设置JumpServer实现无公网ip远程访问管理界面

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 4A 规范的专业运维安全审计系统。JumpS…...

【Git】在 IDEA 中合并多个 commit 为一个

文章目录 1 未提交到远程分支1.1 需求说明1.2 reset 操作1.3 再次 push 2 已经提交到远程分支2.1 需求说明2.2 rebase 操作2.3 强制 push 分两种情况&#xff1a; 一种是本地提交还没推到远程&#xff0c;这种好处理另一种是已经提交到远程分支&#xff0c;这个略麻烦 1 未提…...

性能实战(一) --- clock_gettime造成系统整体cpu过高定位过程

问题背景 有一台linux服务器测试环境cpu经常到达80%,造成系统卡顿,部分功能不可用. 分析步骤 1.使用perf制作cpu火焰图 通过制作cpu火焰图,发现很多进程都存在大量的clock_gettime系统调用. 2. 使用bcc工具funclatency`进一步查看clock_gettime的调用次数 # /usr/share/bc…...

Ai 会替代人类工作吗?

目录 一、分析 二、一些案例 三、总结 一、分析 人工智能&#xff08;AI&#xff09;的发展和应用正在改变我们的生活和工作方式。在某些领域&#xff0c;AI已经显示出了强大的能力和潜力&#xff0c;可以比人类更快、更准确地完成任务。然而&#xff0c;是否会完全取代人类…...

神经网络:深度学习基础

1.反向传播算法&#xff08;BP&#xff09;的概念及简单推导 反向传播&#xff08;Backpropagation&#xff0c;BP&#xff09;算法是一种与最优化方法&#xff08;如梯度下降法&#xff09;结合使用的&#xff0c;用来训练人工神经网络的常见算法。BP算法对网络中所有权重计算…...

如何在Windows上搭建WebDAV服务并通过内网穿透实现公网访问

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav&#xff0c;并且结合cpolar的内网穿透工具实现在公网访…...

【Transformer框架代码实现】

Transformer Transformer框架注意力机制框架导入必要的库Input Embedding / Out EmbeddingPositional EmbeddingTransformer EmbeddingScaleDotProductAttention(self-attention)MultiHeadAttention 多头注意力机制EncoderLayer 编码层Encoder多层编码块&#xff0f;前馈网络层…...

飞书机器人告警配置避坑指南:夜莺监控常见报错解决方案

飞书机器人告警配置避坑指南&#xff1a;夜莺监控常见报错解决方案 深夜的告警风暴里&#xff0c;飞书机器人突然罢工是什么体验&#xff1f;上周三凌晨2点&#xff0c;当我面对满屏的Key Words Not Found和sign match fail报错时&#xff0c;终于理解了为什么运维工程师的咖啡…...

Android项目中的Gradle文件详解:从基础配置到高级技巧

Android项目中的Gradle文件详解&#xff1a;从基础配置到高级技巧 在Android开发的世界里&#xff0c;Gradle文件就像是一个项目的"大脑"&#xff0c;它控制着构建过程的方方面面。对于有一定经验的Android开发者来说&#xff0c;深入理解Gradle文件的配置不仅能够提…...

ClickHouse数据报表实战:如何把分组后的明细‘压缩’成一行摘要(附完整SQL)

ClickHouse数据报表实战&#xff1a;高效聚合多行文本的工程化解决方案 在数据分析与报表生成的实际业务场景中&#xff0c;我们经常遇到这样的需求&#xff1a;需要将同一维度下的多条文本明细&#xff08;如用户行为日志、错误信息、月份列表等&#xff09;合并成一条简洁的摘…...

Catalyst API 认证管理:处理 OAuth Token 失效问题

在使用 Catalyst API 进行数据操作时,OAuth Token 的管理是至关重要的。特别是当你尝试插入新记录到 Catalyst Datastore 表时,可能会遇到 “INVALID OAUTH TOKEN” 错误。本文将详细介绍如何有效地处理这一问题,并提供一个实际的示例来演示解决方案。 问题描述 在尝试使用…...

intv_ai_mk11 GPU算力优化部署:7B模型在CSDN GPU实例上的高效运行方案

intv_ai_mk11 GPU算力优化部署&#xff1a;7B模型在CSDN GPU实例上的高效运行方案 1. 项目背景与价值 intv_ai_mk11是基于Llama架构的7B参数AI对话模型&#xff0c;专为中文场景优化设计。在CSDN GPU实例上部署这类中型模型时&#xff0c;面临的主要挑战是如何在有限显存条件…...

实战复盘:从帕鲁杯应急响应赛题看企业级安全事件调查全流程

企业级安全事件调查实战指南&#xff1a;从CTF赛题到真实攻防溯源 在网络安全领域&#xff0c;应急响应能力直接决定了企业遭受攻击后的损失程度。去年某大型电商平台因未能及时识别攻击链&#xff0c;导致用户数据持续泄露长达三周&#xff0c;最终造成数亿元的直接损失。这类…...

it-tools:Docker一键部署,中文界面即开即用

1. 为什么选择Docker部署it-tools&#xff1f; 最近在帮团队搭建开发环境时&#xff0c;发现很多同事都在反复安装各种零散的小工具——JSON格式化、时间戳转换、密码生成器...既占用本地资源又难以统一管理。直到发现了it-tools这个神器&#xff0c;它把200实用工具打包成Web应…...

Janus-Pro-7B入门指南:零基础Python调用与第一个AI应用创建

Janus-Pro-7B入门指南&#xff1a;零基础Python调用与第一个AI应用创建 你是不是对AI大模型充满好奇&#xff0c;想亲手试试调用一个强大的模型&#xff0c;但又觉得门槛太高&#xff0c;被各种复杂的部署和配置劝退&#xff1f;别担心&#xff0c;今天我们就来彻底解决这个问…...

DriverStore Explorer:突破Windows驱动管理瓶颈,释放系统空间提升80%存储效率

DriverStore Explorer&#xff1a;突破Windows驱动管理瓶颈&#xff0c;释放系统空间提升80%存储效率 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 诊断存储异常&#xff1a;设…...

HDSceneColor节点]原理解析与实际应用

渲染管线兼容性详解HD Scene Color节点的可用性完全取决于所使用的渲染管线&#xff0c;这是开发者在选择和使用该节点时必须首先考虑的因素。高清渲染管线&#xff08;HDRP&#xff09;支持HDRP是Unity针对高端平台和高端硬件设计的高保真渲染解决方案HD Scene Color节点专为H…...